Tolerate some other file access problems
This commit is contained in:
parent
29491e1639
commit
5d42d92598
22
kitsune
22
kitsune
|
@ -54,12 +54,18 @@ def watch(args):
|
||||||
if st.st_mtime_ns > last_ts:
|
if st.st_mtime_ns > last_ts:
|
||||||
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():
|
try:
|
||||||
if args.match_filename is None or fnmatch.fnmatch(de.name, args.match_filename):
|
if de.is_file():
|
||||||
if de.path not in watched_files:
|
if args.match_filename is None or fnmatch.fnmatch(de.name, args.match_filename):
|
||||||
watched_files[de.path] = WatchedFile(de.path, seek_to_end)
|
if de.path not in watched_files:
|
||||||
if len(de.path) > filename_length:
|
watched_files[de.path] = WatchedFile(de.path, seek_to_end)
|
||||||
filename_length = len(de.path)
|
if len(de.path) > filename_length:
|
||||||
|
filename_length = len(de.path)
|
||||||
|
except (PermissionError, OSError):
|
||||||
|
# ignore,
|
||||||
|
# or maybe remove from watched_files?
|
||||||
|
# or just mark as unavailable?
|
||||||
|
pass
|
||||||
|
|
||||||
# has any of the files changed
|
# has any of the files changed
|
||||||
for f in watched_files.values():
|
for f in watched_files.values():
|
||||||
|
@ -71,7 +77,7 @@ def watch(args):
|
||||||
if stf.st_ino != st.st_ino:
|
if stf.st_ino != st.st_ino:
|
||||||
f.reopen()
|
f.reopen()
|
||||||
st = os.stat(f.fileno)
|
st = os.stat(f.fileno)
|
||||||
except FileNotFoundError:
|
except (FileNotFoundError, PermissionError):
|
||||||
# ignore,
|
# ignore,
|
||||||
# or maybe remove from watched_files?
|
# or maybe remove from watched_files?
|
||||||
# or just mark as deleted?
|
# or just mark as deleted?
|
||||||
|
@ -94,7 +100,7 @@ def watch(args):
|
||||||
stf = os.stat(f.path)
|
stf = os.stat(f.path)
|
||||||
if stf.st_ctime_ns != f.st_ctime_ns:
|
if stf.st_ctime_ns != f.st_ctime_ns:
|
||||||
f.reopen()
|
f.reopen()
|
||||||
except FileNotFoundError:
|
except (FileNotFoundError, PermissionError):
|
||||||
# ignore,
|
# ignore,
|
||||||
# or maybe remove from watched_files?
|
# or maybe remove from watched_files?
|
||||||
# or just mark as deleted?
|
# or just mark as deleted?
|
||||||
|
|
Loading…
Reference in New Issue