12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- import argparse
- import glob
- import logging
- import os
- import sys
- from .. import io
- LOG = logging.getLogger()
- def rename(fn, prefix):
- dn, bn = os.path.split(fn)
- nfn = os.path.join(dn, prefix + bn)
- cmd = 'mv -f {} {}'.format(fn, nfn)
- LOG.info('cmd ={!r}'.format(cmd))
- io.syscall(cmd)
- def run(pattern, prefix):
- for fn in glob.iglob(pattern):
- rename(fn, prefix)
- class HelpF(argparse.RawTextHelpFormatter, argparse.ArgumentDefaultsHelpFormatter):
- pass
- def parse_args(argv):
- description = 'Find all files matching "pattern" under CWD, and prefix with "prefix".'
- epilog = 'We do this because Cromwell does not properly glob dot-files.'
- parser = argparse.ArgumentParser(
- description=description,
- epilog=epilog,
- formatter_class=HelpF,
- )
- parser.add_argument(
- '--pattern',
- help='Find all files matching this, including in subdirs.')
- parser.add_argument(
- '--prefix', default='dot',
- help='Rename the matching files to have this prefix. E.g. ".foo" becomes "PREFIX.foo".')
- args = parser.parse_args(argv[1:])
- return args
- def main(argv=sys.argv):
- args = parse_args(argv)
- logging.basicConfig(level=logging.INFO)
- run(**vars(args))
- if __name__ == '__main__': # pragma: no cover
- main()
|