cmd/touch.py

35 lines
897 B
Python
Raw Normal View History

'''
Create the file, or update the last modified timestamp.
'''
import argparse
import os
import sys
from voussoirkit import pipeable
from voussoirkit import winglob
def touch_argparse(args):
patterns = [pattern for arg in args.patterns for pattern in pipeable.input(arg)]
for pattern in patterns:
filenames = winglob.glob(pattern)
if len(filenames) == 0 and not winglob.is_glob(pattern):
open(pattern, 'a').close()
pipeable.stdout(pattern)
for filename in filenames:
os.utime(filename)
pipeable.stdout(filename)
def main(argv):
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument('patterns', nargs='+')
parser.set_defaults(func=touch_argparse)
args = parser.parse_args(argv)
return args.func(args)
if __name__ == '__main__':
raise SystemExit(main(sys.argv[1:]))