From 6a49b31d3578f9d2aab9c0c1c0b89d1ff1bbd811 Mon Sep 17 00:00:00 2001 From: Ziirish Date: Fri, 1 Jun 2018 14:07:35 +0200 Subject: [PATCH] better handle directory updates (fix #36) --- dotdrop/dotdrop.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/dotdrop/dotdrop.py b/dotdrop/dotdrop.py index e939468..003780b 100644 --- a/dotdrop/dotdrop.py +++ b/dotdrop/dotdrop.py @@ -197,10 +197,15 @@ def update(opts, conf, path): return False dotfile = subs[0] src = os.path.join(conf.get_abs_dotpath(opts['dotpath']), dotfile.src) - if Templategen.get_marker() in open(src, 'r').read(): + if os.path.isfile(src) and \ + Templategen.get_marker() in open(src, 'r').read(): LOG.warn('\"{}\" uses template, please update manually'.format(src)) return False - cmd = ['cp', '-R', '-L', os.path.expanduser(path), src] + # Handle directory update + src_clean = src + if os.path.isdir(src): + src_clean = os.path.join(src, '..') + cmd = ['cp', '-R', '-L', os.path.expanduser(path), src_clean] if opts['dry']: LOG.dry('would run: {}'.format(' '.join(cmd))) else: