本文整理匯總了Python中rose.popen.RosePopener.list_to_shell_str方法的典型用法代碼示例。如果您正苦於以下問題:Python RosePopener.list_to_shell_str方法的具體用法?Python RosePopener.list_to_shell_str怎麽用?Python RosePopener.list_to_shell_str使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類rose.popen.RosePopener
的用法示例。
在下文中一共展示了RosePopener.list_to_shell_str方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: process
# 需要導入模塊: from rose.popen import RosePopener [as 別名]
# 或者: from rose.popen.RosePopener import list_to_shell_str [as 別名]
def process(self):
"""Process STEM options into 'rose suite-run' options."""
# Generate options for source trees
repos = {}
if not self.opts.source:
self.opts.source = ['.']
self.opts.project = list()
for i, url in enumerate(self.opts.source):
project, url, base, rev = self._ascertain_project(url)
self.opts.source[i] = url
self.opts.project.append(project)
if project in repos:
repos[project].append(url)
else:
repos[project] = [ url ]
self._add_define_option('SOURCE_' + project.upper() + '_REV',
'"' + rev + '"')
self._add_define_option('SOURCE_' + project.upper() + '_BASE',
'"' + base + '"')
self.reporter(SourceTreeAddedAsBranchEvent(url))
for project, branches in repos.iteritems():
var = 'SOURCE_' + project.upper()
branchstring = RosePopener.list_to_shell_str(branches)
self._add_define_option(var, '"' + branchstring + '"')
# Generate the variable containing tasks to run
if self.opts.group:
if not self.opts.defines:
self.opts.defines = []
expanded_groups = []
for i in self.opts.group:
expanded_groups.extend(i.split(','))
self.opts.defines.append(SUITE_RC_PREFIX + 'RUN_NAMES=' +
str(expanded_groups))
# Load the config file and return any automatic-options
auto_opts = self._read_site_config_and_return_options()
if auto_opts:
automatic_options = auto_opts.split()
for option in automatic_options:
elements = option.split("=")
if len(elements) == 2:
self._add_define_option(elements[0],
'"' + elements[1] + '"')
# Change into the suite directory
if self.opts.conf_dir:
self.reporter(SuiteSelectionEvent(self.opts.conf_dir))
else:
thissuite = self._this_suite()
self.fs_util.chdir(thissuite)
self.reporter(SuiteSelectionEvent(thissuite))
# Create a default name for the suite; allow override by user
if not self.opts.name:
self.opts.name = self._generate_name()
return self.opts
示例2: process
# 需要導入模塊: from rose.popen import RosePopener [as 別名]
# 或者: from rose.popen.RosePopener import list_to_shell_str [as 別名]
def process(self):
"""Process STEM options into 'rose suite-run' options."""
# Generate options for source trees
repos = {}
if not self.opts.source:
self.opts.source = ['.']
self.opts.project = list()
for i, url in enumerate(self.opts.source):
project, url, base, rev = self._ascertain_project(url)
self.opts.source[i] = url
self.opts.project.append(project)
if project in repos:
repos[project].append(url)
else:
repos[project] = [ url ]
self._add_define_option('SOURCE_' + project.upper() + '_REV',
'"' + rev + '"')
self._add_define_option('SOURCE_' + project.upper() + '_BASE',
'"' + base + '"')
self.reporter(SourceTreeAddedAsBranchEvent(url))
for project, branches in repos.iteritems():
var = 'SOURCE_' + project.upper()
branchstring = RosePopener.list_to_shell_str(branches)
self._add_define_option(var, '"' + branchstring + '"')
# Generate the variable containing tasks to run
if self.opts.group:
if not self.opts.defines:
self.opts.defines = []
self.opts.defines.append(SUITE_RC_PREFIX + 'RUN_NAMES=' +
str(self.opts.group))
# Change into the suite directory
if self.opts.conf_dir:
self.fs_util.chdir(self.opts.conf_dir)
self.reporter(SuiteSelectionEvent(self.opts.conf_dir))
else:
thissuite = self._this_suite()
self.fs_util.chdir(thissuite)
self.opts.conf_dir = thissuite
self.reporter(SuiteSelectionEvent(thissuite))
# Create a default name for the suite; allow override by user
if not self.opts.name:
self.opts.name = self._generate_name()
return self.opts
示例3: write_source_vc_info
# 需要導入模塊: from rose.popen import RosePopener [as 別名]
# 或者: from rose.popen.RosePopener import list_to_shell_str [as 別名]
def write_source_vc_info(run_source_dir, output=None, popen=None):
"""Write version control information of sources used in run time.
run_source_dir -- The source directory we are interested in.
output -- An open file handle or a string containing a writable path.
If not specified, use sys.stdout.
popen -- A rose.popen.RosePopener instance for running vc commands.
If not specified, use a new local instance.
"""
if popen is None:
popen = RosePopener()
if output is None:
handle = sys.stdout
elif hasattr(output, "write"):
handle = output
else:
handle = open(output, "wb")
msg = "%s\n" % run_source_dir
_write_safely(msg, handle)
environ = dict(os.environ)
environ["LANG"] = "C"
for vcs, args_list in [
("svn", [
["info", "--non-interactive"],
["status", "--non-interactive"],
["diff", "--internal-diff", "--non-interactive"]]),
("git", [["describe"], ["status"], ["diff"]])]:
if not popen.which(vcs):
continue
cwd = os.getcwd()
os.chdir(run_source_dir)
try:
for args in args_list:
cmd = [vcs] + args
ret_code, out, _ = popen.run(*cmd, env=environ)
if out:
_write_safely(("#" * 80 + "\n"), handle)
_write_safely(("# %s\n" % popen.list_to_shell_str(cmd)),
handle)
_write_safely(("#" * 80 + "\n"), handle)
_write_safely(out, handle)
if ret_code: # If cmd fails once, it will likely fail again
break
finally:
os.chdir(cwd)