Add option --match-filename
This commit is contained in:
parent
8954588ab4
commit
a4d54b8ca1
10
kitsune
10
kitsune
|
@ -1,6 +1,8 @@
|
||||||
#!/usr/bin/python3
|
#!/usr/bin/python3
|
||||||
|
|
||||||
|
import argparse
|
||||||
import datetime
|
import datetime
|
||||||
|
import fnmatch
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
import stat
|
import stat
|
||||||
|
@ -23,7 +25,7 @@ def watch(args):
|
||||||
watched_dirs = []
|
watched_dirs = []
|
||||||
watched_files = {}
|
watched_files = {}
|
||||||
filename_length = 0
|
filename_length = 0
|
||||||
for a in args:
|
for a in args.files:
|
||||||
st = os.stat(a)
|
st = os.stat(a)
|
||||||
if stat.S_ISDIR(st.st_mode):
|
if stat.S_ISDIR(st.st_mode):
|
||||||
watched_dirs.append(a)
|
watched_dirs.append(a)
|
||||||
|
@ -43,6 +45,7 @@ def watch(args):
|
||||||
last_ts = st.st_mtime_ns
|
last_ts = st.st_mtime_ns
|
||||||
for de in os.scandir(d):
|
for de in os.scandir(d):
|
||||||
if de.is_file():
|
if de.is_file():
|
||||||
|
if args.match_filename is None or fnmatch.fnmatch(de.name, args.match_filename):
|
||||||
if de.path not in watched_files:
|
if de.path not in watched_files:
|
||||||
watched_files[de.path] = WatchedFile(de.path)
|
watched_files[de.path] = WatchedFile(de.path)
|
||||||
if len(de.path) > filename_length:
|
if len(de.path) > filename_length:
|
||||||
|
@ -72,6 +75,9 @@ def watch(args):
|
||||||
time.sleep(0.1)
|
time.sleep(0.1)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
args = sys.argv[1:] if len(sys.argv) > 1 else ["."]
|
ap = argparse.ArgumentParser()
|
||||||
|
ap.add_argument("--match-filename")
|
||||||
|
ap.add_argument("files", nargs="*", default=["."])
|
||||||
|
args = ap.parse_args()
|
||||||
|
|
||||||
watch(args)
|
watch(args)
|
||||||
|
|
Loading…
Reference in New Issue