mirror of
https://github.com/deadc0de6/dotdrop.git
synced 2026-02-10 08:39:15 +00:00
fixes
This commit is contained in:
9
docs/config/config-dotfiles.md
vendored
9
docs/config/config-dotfiles.md
vendored
@@ -236,8 +236,7 @@ dotfiles:
|
|||||||
- "*otherdir*"
|
- "*otherdir*"
|
||||||
```
|
```
|
||||||
|
|
||||||
When this option is enabled:
|
Note:
|
||||||
- During **install** operations, any directory matching a pattern in `dir_as_block` will be replaced as a whole, rather than updating individual files
|
- During **install** operations, any directory matching a pattern in `dir_as_block` will be replaced as a whole
|
||||||
- This option has **no effect** on **compare** operations, which will always show file-by-file differences
|
- This option has no effect on **compare** operations, which will always show file-by-file differences
|
||||||
|
- This option has no effect on dotfiles that are regular files
|
||||||
This option defaults to an empty list and can be set on any dotfile that represents a directory. It has no effect on dotfiles that are regular files.
|
|
||||||
@@ -232,9 +232,6 @@ def _dotfile_install(opts, dotfile, tmpdir=None):
|
|||||||
LinkTypes.RELATIVE, LinkTypes.ABSOLUTE
|
LinkTypes.RELATIVE, LinkTypes.ABSOLUTE
|
||||||
):
|
):
|
||||||
# nolink|relative|absolute|link_children
|
# nolink|relative|absolute|link_children
|
||||||
asblock = False
|
|
||||||
if hasattr(dotfile, 'dir_as_block'):
|
|
||||||
asblock = True
|
|
||||||
ret, err = inst.install(
|
ret, err = inst.install(
|
||||||
templ,
|
templ,
|
||||||
dotfile.src,
|
dotfile.src,
|
||||||
@@ -244,7 +241,7 @@ def _dotfile_install(opts, dotfile, tmpdir=None):
|
|||||||
is_template=is_template,
|
is_template=is_template,
|
||||||
ignore=ignores,
|
ignore=ignores,
|
||||||
chmod=dotfile.chmod,
|
chmod=dotfile.chmod,
|
||||||
dir_as_block=asblock,
|
dir_as_block=dotfile.dir_as_block,
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
# nolink
|
# nolink
|
||||||
@@ -258,9 +255,6 @@ def _dotfile_install(opts, dotfile, tmpdir=None):
|
|||||||
src = tmp
|
src = tmp
|
||||||
# make sure to re-evaluate if is template
|
# make sure to re-evaluate if is template
|
||||||
is_template = dotfile.template and Templategen.path_is_template(src)
|
is_template = dotfile.template and Templategen.path_is_template(src)
|
||||||
asblock = False
|
|
||||||
if hasattr(dotfile, "dir_as_block"):
|
|
||||||
asblock = True
|
|
||||||
ret, err = inst.install(
|
ret, err = inst.install(
|
||||||
templ,
|
templ,
|
||||||
src,
|
src,
|
||||||
@@ -271,7 +265,7 @@ def _dotfile_install(opts, dotfile, tmpdir=None):
|
|||||||
ignore=ignores,
|
ignore=ignores,
|
||||||
is_template=is_template,
|
is_template=is_template,
|
||||||
chmod=dotfile.chmod,
|
chmod=dotfile.chmod,
|
||||||
dir_as_block=asblock,
|
dir_as_block=dotfile.dir_as_block,
|
||||||
)
|
)
|
||||||
if tmp:
|
if tmp:
|
||||||
tmp = os.path.join(opts.dotpath, tmp)
|
tmp = os.path.join(opts.dotpath, tmp)
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ filesystem tree for directories
|
|||||||
|
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import fnmatch
|
|
||||||
|
|
||||||
# local imports
|
# local imports
|
||||||
from dotdrop.utils import must_ignore, dir_empty
|
from dotdrop.utils import must_ignore, dir_empty
|
||||||
@@ -19,11 +18,11 @@ class FTreeDir:
|
|||||||
directory tree for comparison
|
directory tree for comparison
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, path, ignores=None, debug=False, dir_as_block=None):
|
def __init__(self, path, ignores=None,
|
||||||
|
debug=False):
|
||||||
self.path = path
|
self.path = path
|
||||||
self.ignores = ignores
|
self.ignores = ignores
|
||||||
self.debug = debug
|
self.debug = debug
|
||||||
self.dir_as_block = dir_as_block or []
|
|
||||||
self.entries = []
|
self.entries = []
|
||||||
self.log = Logger(debug=self.debug)
|
self.log = Logger(debug=self.debug)
|
||||||
if os.path.exists(path) and os.path.isdir(path):
|
if os.path.exists(path) and os.path.isdir(path):
|
||||||
@@ -35,12 +34,6 @@ class FTreeDir:
|
|||||||
ignore empty directory
|
ignore empty directory
|
||||||
test for ignore pattern
|
test for ignore pattern
|
||||||
"""
|
"""
|
||||||
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}')
|
|
||||||
self.entries.append(self.path)
|
|
||||||
return
|
|
||||||
|
|
||||||
for root, dirs, files in os.walk(self.path, followlinks=True):
|
for root, dirs, files in os.walk(self.path, followlinks=True):
|
||||||
for file in files:
|
for file in files:
|
||||||
fpath = os.path.join(root, file)
|
fpath = os.path.join(root, file)
|
||||||
|
|||||||
Reference in New Issue
Block a user