Rather than aborting completely if a path specified on the command line
doesn't exist, report it as a non-fatal error instead.
(Heavily modified by apenwarr from David Roda's original patch.)
Signed-off-by: David Roda <davidcroda@gmail.com>
Signed-off-by: Avery Pennarun <apenwarr@gmail.com>
paths = index.reduce_paths(extra)
if opt.update:
- if not paths:
+ if not extra:
o.fatal('update (-u) requested but no paths given')
for (rp,path) in paths:
update_index(rp)
yield (path, pst)
continue
except OSError, e:
- add_error(e)
+ add_error('recursive_dirlist: %s' % e)
continue
try:
pfile = OsFile(path)
xpaths = []
for p in paths:
rp = realpath(p)
- st = os.lstat(rp)
- if stat.S_ISDIR(st.st_mode):
- rp = slashappend(rp)
- p = slashappend(p)
- xpaths.append((rp, p))
+ try:
+ st = os.lstat(rp)
+ if stat.S_ISDIR(st.st_mode):
+ rp = slashappend(rp)
+ p = slashappend(p)
+ xpaths.append((rp, p))
+ except OSError, e:
+ add_error('reduce_paths: %s' % e)
xpaths.sort()
paths = []