diff --git a/copyparty/__main__.py b/copyparty/__main__.py index 88f3fdec..87203f87 100644 --- a/copyparty/__main__.py +++ b/copyparty/__main__.py @@ -553,6 +553,7 @@ def run_argparse(argv, formatter): ap2.add_argument("--no-mutagen", action="store_true", help="use FFprobe for tags instead; will catch more tags") ap2.add_argument("--no-mtag-ff", action="store_true", help="never use FFprobe as tag reader; is probably safer") ap2.add_argument("--mtag-mt", metavar="CORES", type=int, default=cores, help="num cpu cores to use for tag scanning") + ap2.add_argument("--mtag-v", action="store_true", help="verbose tag scanning; print errors from mtp subprocesses and such") ap2.add_argument("-mtm", metavar="M=t,t,t", type=u, action="append", help="add/replace metadata mapping") ap2.add_argument("-mte", metavar="M,M,M", type=u, help="tags to index/display (comma-sep.)", default="circle,album,.tn,artist,title,.bpm,key,.dur,.q,.vq,.aq,vc,ac,res,.fps,ahash,vhash") diff --git a/copyparty/mtag.py b/copyparty/mtag.py index 454fd43f..60a7584f 100644 --- a/copyparty/mtag.py +++ b/copyparty/mtag.py @@ -493,7 +493,7 @@ class MTag(object): cmd = [fsenc(x) for x in cmd] rc, v, err = runcmd(cmd, **args) - retchk(rc, cmd, err, self.log, 5) + retchk(rc, cmd, err, self.log, 5, self.args.mtag_v) v = v.strip() if not v: continue diff --git a/copyparty/util.py b/copyparty/util.py index e41bce83..a01fdfdb 100644 --- a/copyparty/util.py +++ b/copyparty/util.py @@ -1423,11 +1423,11 @@ def mchkcmd(argv, timeout=10): raise sp.CalledProcessError(rv, (argv[0], b"...", argv[-1])) -def retchk(rc, cmd, serr, logger=None, color=None): +def retchk(rc, cmd, serr, logger=None, color=None, verbose=False): if rc < 0: rc = 128 - rc - if rc < 126: + if not rc or rc < 126 and not verbose: return s = None @@ -1440,6 +1440,8 @@ def retchk(rc, cmd, serr, logger=None, color=None): s = "invalid program" elif rc == 127: s = "program not found" + elif verbose: + s = "unknown" else: s = "invalid retcode"