本文整理汇总了Python中mercurial.util.shellquote函数的典型用法代码示例。如果您正苦于以下问题:Python shellquote函数的具体用法?Python shellquote怎么用?Python shellquote使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了shellquote函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: filter
def filter(self, filter, node, changelog, patchfile):
"""arbitrarily rewrite changeset before applying it"""
self.ui.status(_("filtering %s\n") % patchfile)
user, date, msg = (changelog[1], changelog[2], changelog[4])
fd, headerfile = tempfile.mkstemp(prefix="hg-transplant-")
fp = os.fdopen(fd, "w")
fp.write("# HG changeset patch\n")
fp.write("# User %s\n" % user)
fp.write("# Date %d %d\n" % date)
fp.write(msg + "\n")
fp.close()
try:
util.system(
"%s %s %s" % (filter, util.shellquote(headerfile), util.shellquote(patchfile)),
environ={"HGUSER": changelog[1], "HGREVISION": revlog.hex(node)},
onerr=util.Abort,
errprefix=_("filter failed"),
out=self.ui.fout,
)
user, date, msg = self.parselog(file(headerfile))[1:4]
finally:
os.unlink(headerfile)
return (user, date, msg)
示例2: filter
def filter(self, filter, node, changelog, patchfile):
'''arbitrarily rewrite changeset before applying it'''
self.ui.status(_('filtering %s\n') % patchfile)
user, date, msg = (changelog[1], changelog[2], changelog[4])
fd, headerfile = tempfile.mkstemp(prefix='hg-transplant-')
fp = os.fdopen(fd, 'w')
fp.write("# HG changeset patch\n")
fp.write("# User %s\n" % user)
fp.write("# Date %d %d\n" % date)
fp.write(msg + '\n')
fp.close()
try:
util.system('%s %s %s' % (filter, util.shellquote(headerfile),
util.shellquote(patchfile)),
environ={'HGUSER': changelog[1],
'HGREVISION': revlog.hex(node),
},
onerr=util.Abort, errprefix=_('filter failed'),
out=self.ui.fout)
user, date, msg = self.parselog(file(headerfile))[1:4]
finally:
os.unlink(headerfile)
return (user, date, msg)
示例3: uisetup
def uisetup(ui):
for cmd, path in ui.configitems('extdiff'):
path = util.expandpath(path)
if cmd.startswith('cmd.'):
cmd = cmd[4:]
if not path:
path = util.findexe(cmd)
if path is None:
path = filemerge.findexternaltool(ui, cmd) or cmd
diffopts = ui.config('extdiff', 'opts.' + cmd, '')
cmdline = util.shellquote(path)
if diffopts:
cmdline += ' ' + diffopts
elif cmd.startswith('opts.'):
continue
else:
if path:
# case "cmd = path opts"
cmdline = path
diffopts = len(shlex.split(cmdline)) > 1
else:
# case "cmd ="
path = util.findexe(cmd)
if path is None:
path = filemerge.findexternaltool(ui, cmd) or cmd
cmdline = util.shellquote(path)
diffopts = False
# look for diff arguments in [diff-tools] then [merge-tools]
if not diffopts:
args = ui.config('diff-tools', cmd+'.diffargs') or \
ui.config('merge-tools', cmd+'.diffargs')
if args:
cmdline += ' ' + args
command(cmd, extdiffopts[:], _('hg %s [OPTION]... [FILE]...') % cmd,
inferrepo=True)(savedcmd(path, cmdline))
示例4: get_filelogs_at_cl
def get_filelogs_at_cl(client, clnum):
cmd = 'p4 --client %s -G fstat -T ' \
'"depotFile,headAction,headType,headRev" ' \
'"//%s/..."@%d' % (
util.shellquote(client),
util.shellquote(client),
clnum
)
stdout = util.popen(cmd, mode='rb')
try:
result = []
for d in loaditer(stdout):
if d.get('depotFile'):
headaction = d['headAction']
if headaction in ACTION_ARCHIVE or headaction in ACTION_DELETE:
continue
depotfile = d['depotFile']
filelog = {}
filelog[clnum] = {
'action': d['headAction'],
'type': d['headType'],
}
result.append(P4Filelog(depotfile, filelog))
return result
except Exception:
raise P4Exception(stdout)
示例5: createtask
def createtask(ui, repo, defaultdesc):
"""FBONLY: create task for source control oncall"""
prompt = '''Title: [hg rage] %s on %s by %s
Description:
%s
HG: Edit task title and description. Lines beginning with 'HG:' are removed."
HG: First line is the title followed by the description.
HG: Feel free to add relevant information.
''' % (repo.root, socket.gethostname(), encoding.environ.get('LOGNAME'),
defaultdesc)
text = re.sub("(?m)^HG:.*(\n|$)", "", ui.edit(prompt, ui.username()))
lines = text.splitlines()
title = re.sub("(?m)^Title:\s+", "", lines[0])
desc = re.sub("(?m)^Description:\s+", "", '\n'.join(lines[1:]))
tag = 'hg rage'
oncall = 'source_control'
taskid = shcmd(' '.join([
'tasks',
'create',
'--title=' + util.shellquote(title),
'--pri=low',
'--assign=' + util.shellquote(oncall),
'--sub=' + util.shellquote(oncall),
'--tag=' + util.shellquote(tag),
'--desc=' + util.shellquote(desc),
])
)
tasknum = shcmd('tasks view ' + taskid).splitlines()[0].split()[0]
ui.write(
_('Task created: https://our.intern.facebook.com/intern/tasks/?t=%s\n')
% tasknum)
示例6: parse_filelist_at_cl
def parse_filelist_at_cl(client, cl=None):
cmd = 'p4 --client %s -G files //%s/[email protected]%d' %(
util.shellquote(client),
util.shellquote(client),
cl
)
stdout = util.popen(cmd, mode='rb')
for d in loaditer(stdout):
c = d.get('depotFile', None)
if c:
yield d
示例7: parse_filelist
def parse_filelist(client, startcl=None, endcl=None):
if startcl is None:
startcl = 0
cmd = 'p4 --client %s -G files -a //%s/...%s' % (
util.shellquote(client),
util.shellquote(client),
revrange(startcl, endcl))
stdout = util.popen(cmd, mode='rb')
for d in loaditer(stdout):
c = d.get('depotFile', None)
if c:
yield d
示例8: parse_where
def parse_where(client, depotname):
# TODO: investigate if we replace this with exactly one call to
# where //clientame/...
cmd = 'p4 --client %s -G where %s' % (
util.shellquote(client),
util.shellquote(depotname))
try:
stdout = ''
@retry(num=3, sleeps=0.3)
def helper():
global stdout
stdout = util.popen(cmd, mode='rb')
return marshal.load(stdout)
return helper()
except Exception:
raise P4Exception(stdout)
示例9: lsfiles
def lsfiles(ui, repo, *args, **kwargs):
cmdoptions = [
('c', 'cached', None, ''),
('d', 'deleted', None, ''),
('m', 'modified', None, ''),
('o', 'others', None, ''),
('i', 'ignored', None, ''),
('s', 'stage', None, ''),
('z', '_zero', None, ''),
]
args, opts = parseoptions(ui, cmdoptions, args)
if (opts.get('modified') or opts.get('deleted')
or opts.get('others') or opts.get('ignored')):
cmd = Command('status')
if opts.get('deleted'):
cmd['-d'] = None
if opts.get('modified'):
cmd['-m'] = None
if opts.get('others'):
cmd['-o'] = None
if opts.get('ignored'):
cmd['-i'] = None
else:
cmd = Command('files')
if opts.get('stage'):
ui.status(_("note: Mercurial doesn't have a staging area, ignoring "
"--stage\n"))
if opts.get('_zero'):
cmd['-0'] = None
cmd.append('.')
for include in args:
cmd['-I'] = util.shellquote(include)
ui.status((str(cmd)), "\n")
示例10: content
def content(self, rev):
text = None
if os.path.isfile(self.rcspath):
cmd = 'co -kk -q -p1.%d %s' % (rev, util.shellquote(self.rcspath))
with util.popen(cmd, mode='rb') as fp:
text = fp.read()
return text
示例11: _findeditor
def _findeditor(repo, files):
'''returns tuple of editor name and editor path.
tools matched by pattern are returned as (name, toolpath)
tools detected by search are returned as (name, toolpath)
tortoisehg.editor is returned as (None, tortoisehg.editor)
HGEDITOR or ui.editor are returned as (None, ui.editor)
So first return value is an [editor-tool] name or None and
second return value is a toolpath or user configured command line
'''
ui = repo.ui
# first check for tool specified by file patterns. The first file pattern
# which matches one of the files being edited selects the editor
for pat, tool in ui.configitems("editor-patterns"):
mf = match.match(repo.root, '', [pat])
toolpath = _findtool(ui, tool)
if mf(files[0]) and toolpath:
return (tool, util.shellquote(toolpath))
# then editor-tools
tools = {}
for k, v in ui.configitems("editor-tools"):
t = k.split('.')[0]
if t not in tools:
try:
priority = int(_toolstr(ui, t, "priority", "0"))
except ValueError, e:
priority = -100
tools[t] = priority
示例12: launchtool
def launchtool(cmd, opts, replace, block):
def quote(match):
key = match.group()[1:]
return util.shellquote(replace[key])
if isinstance(cmd, unicode):
cmd = hglib.fromunicode(cmd)
lopts = []
for opt in opts:
if isinstance(opt, unicode):
lopts.append(hglib.fromunicode(opt))
else:
lopts.append(opt)
args = ' '.join(lopts)
args = re.sub(_regex, quote, args)
cmdline = util.shellquote(cmd) + ' ' + args
cmdline = util.quotecommand(cmdline)
try:
proc = subprocess.Popen(cmdline, shell=True,
creationflags=qtlib.openflags,
stderr=subprocess.PIPE,
stdout=subprocess.PIPE,
stdin=subprocess.PIPE)
if block:
proc.communicate()
except (OSError, EnvironmentError), e:
QMessageBox.warning(None,
_('Tool launch failure'),
_('%s : %s') % (cmd, str(e)))
示例13: _execute
def _execute(self, cmd, *args, **kwargs):
cmdline = [self.execmd, cmd]
cmdline += args
cmdline = [util.shellquote(arg) for arg in cmdline]
cmdline += ['>', os.devnull, '2>', os.devnull]
cmdline = util.quotecommand(' '.join(cmdline))
self.ui.debug(cmdline, '\n')
return os.system(cmdline)
示例14: _parse_view
def _parse_view(self, path):
"Read changes affecting the path"
cmd = 'p4 -G changes -s submitted %s' % util.shellquote(path)
stdout = util.popen(cmd, mode='rb')
for d in loaditer(stdout):
c = d.get("change", None)
if c:
self.p4changes[c] = True
示例15: get_latest_cl
def get_latest_cl(client):
cmd = 'p4 --client %s -G changes -m 1 -s submitted' % (
util.shellquote(client))
stdout = util.popen(cmd, mode='rb')
parsed = marshal.load(stdout)
cl = parsed.get('change')
if cl:
return int(cl)
return None