From: James Bunton Date: Mon, 19 Jul 2010 21:51:32 +0000 (+1000) Subject: Better quoting for --dump X-Git-Url: https://code.delx.au/transcoding/commitdiff_plain/09ca4dd7c92dcc0ec2e59a06e54390240ff6d220 Better quoting for --dump --- diff --git a/encode.py b/encode.py index a6f0cd8..11e8ebf 100755 --- a/encode.py +++ b/encode.py @@ -1,24 +1,29 @@ #!/usr/bin/env python -import commands import optparse -import shlex +import re import subprocess import sys import os -import tempfile import shutil +import tempfile class FatalException(Exception): pass def mkarg(arg): - quoted_arg = commands.mkarg(arg) - arg = quoted_arg[2:-1] - if len(shlex.split(arg)) == 1: + if re.match("^[a-zA-Z0-9\-\\.,/@_:=]*$", arg): return arg - else: - return quoted_arg[1:] + + if "'" not in arg: + return "'%s'" % arg + out = "\"" + for c in arg: + if c in "\\$\"`": + out += "\\" + out += c + out += "\"" + return out class Command(object): def __init__(self, profile, opts): @@ -188,7 +193,7 @@ profiles = { Profile( commands=[Mencoder, MKVMerge], vcodec="x264", - vopts="pass=%(vpass)d:bitrate=%(vbitrate)d:subq=6:frameref=6:me=umh:partitions=all:bframes=4:b_adapt:qcomp=0.7:keyint=250:threads=2", + vopts="pass=%(vpass)d:bitrate=%(vbitrate)d:subq=6:frameref=6:me=umh:partitions=all:bframes=4:b_adapt:qcomp=0.7:keyint=250", acodec="mp3lame", aopts="abr:br=%(abitrate)d", ),