Add overwrite argument
This commit is contained in:
parent
5fe8f8dfd1
commit
f425fc9ccc
12
link-tool.py
12
link-tool.py
|
@ -65,8 +65,13 @@ def load_config(conf_path: str) -> Tuple[Conf, List[Link]]:
|
||||||
|
|
||||||
return conf, links
|
return conf, links
|
||||||
|
|
||||||
def make_link(links: List[Link], dry_run=False):
|
def make_link(links: List[Link], dry_run=False, overwrite=False):
|
||||||
for link in links:
|
for link in links:
|
||||||
|
if os.path.exists(link.dst):
|
||||||
|
if not overwrite:
|
||||||
|
logger.info('dst exists, skipping: {}'.format(link.dst))
|
||||||
|
return
|
||||||
|
|
||||||
if os.path.exists(link.dst):
|
if os.path.exists(link.dst):
|
||||||
logger.warning('dst exists, removing: {}'.format(link.dst))
|
logger.warning('dst exists, removing: {}'.format(link.dst))
|
||||||
if not dry_run:
|
if not dry_run:
|
||||||
|
@ -86,6 +91,8 @@ def main():
|
||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser()
|
||||||
parser.add_argument('-c', '--config', required=True,
|
parser.add_argument('-c', '--config', required=True,
|
||||||
help='configuration file')
|
help='configuration file')
|
||||||
|
parser.add_argument('-o', '--overwrite', action='store_true',
|
||||||
|
help='overwrite dst when exists')
|
||||||
parser.add_argument('-n', '--dry-run', action='store_true',
|
parser.add_argument('-n', '--dry-run', action='store_true',
|
||||||
help='dry run without actually create link')
|
help='dry run without actually create link')
|
||||||
parser.add_argument('-v', '--verbose', action='store_true',
|
parser.add_argument('-v', '--verbose', action='store_true',
|
||||||
|
@ -96,6 +103,7 @@ def main():
|
||||||
config_path = args.config
|
config_path = args.config
|
||||||
verbose = args.verbose
|
verbose = args.verbose
|
||||||
dry_run = args.dry_run
|
dry_run = args.dry_run
|
||||||
|
overwrite = args.overwrite
|
||||||
|
|
||||||
logging.basicConfig(level=logging.DEBUG if verbose else logging.INFO)
|
logging.basicConfig(level=logging.DEBUG if verbose else logging.INFO)
|
||||||
|
|
||||||
|
@ -115,7 +123,7 @@ def main():
|
||||||
logger.info('the CWD realpath: {}'.format(os.path.realpath(chdir_target)))
|
logger.info('the CWD realpath: {}'.format(os.path.realpath(chdir_target)))
|
||||||
os.chdir(chdir_target)
|
os.chdir(chdir_target)
|
||||||
|
|
||||||
make_link(links, dry_run=dry_run)
|
make_link(links, dry_run=dry_run, overwrite=overwrite)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
main()
|
main()
|
||||||
|
|
Loading…
Reference in a new issue