1
0
mirror of https://github.com/deadc0de6/dotdrop.git synced 2026-02-04 18:34:48 +00:00
This commit is contained in:
user
2025-05-19 22:14:34 +02:00
parent 20f00ee3a0
commit f007fd8fb2
3 changed files with 26 additions and 13 deletions

View File

@@ -233,7 +233,7 @@ def _dotfile_install(opts, dotfile, tmpdir=None):
):
# nolink|relative|absolute|link_children
asblock = False
if hasattr(dotfile, 'handle_dir_as_block'):
if hasattr(dotfile, 'dir_as_block'):
asblock = True
ret, err = inst.install(
templ,
@@ -259,7 +259,7 @@ def _dotfile_install(opts, dotfile, tmpdir=None):
# make sure to re-evaluate if is template
is_template = dotfile.template and Templategen.path_is_template(src)
asblock = False
if hasattr(dotfile, "handle_dir_as_block"):
if hasattr(dotfile, "dir_as_block"):
asblock = True
ret, err = inst.install(
templ,

View File

@@ -7,6 +7,7 @@ filesystem tree for directories
import os
import fnmatch
# local imports
from dotdrop.utils import must_ignore, dir_empty
@@ -34,7 +35,6 @@ class FTreeDir:
ignore empty directory
test for ignore pattern
"""
import fnmatch
for pattern in self.dir_as_block:
if fnmatch.fnmatch(self.path, pattern):
self.log.dbg(f'dir_as_block match: {pattern} for {self.path}')

View File

@@ -5,9 +5,12 @@ Copyright (c) 2017, deadc0de6
handle the installation of dotfiles
"""
# pylint: disable=C0302
import os
import errno
import shutil
import fnmatch
# local imports
from dotdrop.logger import Logger
@@ -135,17 +138,27 @@ class Installer:
self.log.dbg(f'\"{src}\" is a directory: {isdir}')
self.log.dbg(f'dir_as_block: {dir_as_block}')
import fnmatch
treat_as_block = any(fnmatch.fnmatch(src, pattern) for pattern in dir_as_block)
self.log.dbg(f'dir_as_block patterns: {dir_as_block}, treat_as_block: {treat_as_block}')
treat_as_block = any(
fnmatch.fnmatch(src, pattern)
for pattern in dir_as_block
)
self.log.dbg(
f'dir_as_block patterns: {dir_as_block}, '
f'treat_as_block: {treat_as_block}'
)
if treat_as_block:
self.log.dbg(f'handling directory {src} as a block for installation')
ret, err, ins = self._copy_dir(templater, src, dst,
actionexec=actionexec,
noempty=noempty, ignore=ignore,
is_template=is_template,
chmod=chmod,
dir_as_block=True)
self.log.dbg(
f'handling directory {src} '
'as a block for installation'
)
ret, err, ins = self._copy_dir(
templater, src, dst,
actionexec=actionexec,
noempty=noempty, ignore=ignore,
is_template=is_template,
chmod=chmod,
dir_as_block=True
)
if self.remove_existing_in_dir and ins:
self._remove_existing_in_dir(dst, ins)
return self._log_install(ret, err)