def main(): usage = "usage: %prog PROJECT" parser = optparse.OptionParser(usage=usage) parser.add_option('--svn-repository', dest="repos", default=None, help="Import project to given repository location (this " "will also create the standard trunk/ tags/ branches/ " "hierarchy).") parser.add_option('--registry', dest="registry", default='uvcsite', help="Please specify a different registry. " "If you not want a uvcsite-plugin. ") options, args = parser.parse_args() if len(args) != 1: parser.print_usage() return 1 # create sandbox using paste.script project = args[0] commands = command.get_commands() cmd = commands['create'].load() runner = cmd('create') option_args = [] if options.repos is not None: option_args.extend(['--svn-repository', options.repos]) extra_args = [] exit_code = runner.run(option_args + ['-t', 'uvcploneaddon', project] + extra_args) sys.exit(exit_code)
def main(): usage = "usage: %prog PROJECT" parser = optparse.OptionParser(usage=usage) parser.add_option('--svn-repository', dest="repos", default=None, help="Import project to given repository location (this " "will also create the standard trunk/ tags/ branches/ " "hierarchy).") parser.add_option('--registry', dest="registry", default='uvcsite', help="Please specify a different registry. " "If you not want a uvcsite-plugin. ") options, args = parser.parse_args() if len(args) != 1: parser.print_usage() return 1 # create sandbox using paste.script project = args[0] commands = command.get_commands() cmd = commands['create'].load() runner = cmd('create') option_args = [] if options.repos is not None: option_args.extend(['--svn-repository', options.repos]) extra_args = [] exit_code = runner.run(option_args + ['-t', 'uvcaddon', project] + extra_args) sys.exit(exit_code)
def kill(path_conf): commands = command.get_commands() cmd = commands['serve'].load() runner = cmd('serve') path_env = os.path.dirname(path_conf) os.chdir(path_env) runner.run(["--stop-daemon"])
def setUp(self): """ set up some basics for the coming tests """ self.vars = [ # var('basic_var', 'This is a basic variable', # title="Basic Title", default="foo", # modes=(EXPERT, EASY)), # BooleanVar('bool_var', 'This is a boolean variable', # title="Boolean Title", default=False, page='Main', ## modes=(EASY)), DottedVar('egg', 'This is a string variable', title="String Title", default="string", page='Carl', modes=(EXPERT)),] ## TextVar('txt_var', 'This is a text variable', page='Martin', # title="Text Title", default="text", # modes=()), # DottedVar('dot_var', 'This is a dotted variable', # title="Dotted Title", default="dotted.variable")] self.template = BaseTemplate('my_name') create = get_commands()['create'].load() command = create('create') command.parse_args(['-t', 'package']) command.interactive = False self.command = command self.orig_dir = os.getcwd() self.temp_dir = tempfile.mkdtemp() cd(self.temp_dir)
def serve(path_conf, daemon=False): commands = command.get_commands() cmd = commands['serve'].load() runner = cmd('serve') path_env = os.path.dirname(path_conf) os.chdir(path_env) if daemon: runner.run(["--daemon", path_conf]) else: runner.run([path_conf])
def _create_tpl(): commands = command.get_commands() create = commands['create'].load() create = create('any name here') output_dir = tempfile.mkdtemp() # tpl = zopeskel.plone3_theme.Plone3Theme("new template") tpl = None return (tpl, create, output_dir)
def main(): usage = "usage: %prog [options] PROJECT" parser = optparse.OptionParser(usage=usage) parser.add_option('--svn-repository', dest="repos", default=None, help="Import project to given repository location (this " "will also create the standard trunk/ tags/ branches/ " "hierarchy).") parser.add_option('-v', '--verbose', action="store_true", dest="verbose", default=False, help="Be verbose.") # Options that override the interactive part of filling the templates. for var in AlchemistProject.vars: option_name = '--' + var.name.replace('_', '-') if not parser.has_option(option_name): parser.add_option(option_name, dest=var.name, help=var.description) options, args = parser.parse_args() if len(args) != 1: parser.print_usage() return 1 # create sandbox using paste.script project = args[0] commands = command.get_commands() cmd = commands['create'].load() runner = cmd('create') option_args = [] if options.repos is not None: option_args.extend(['--svn-repository', options.repos]) if not options.verbose: option_args.append('-q') # Process the options that override the interactive part of filling # the templates. extra_args = [] for var in AlchemistProject.vars: supplied_value = getattr(options, var.name) if supplied_value is not None: extra_args.append('%s=%s' % (var.name, supplied_value)) exit_code = runner.run(option_args + ['-t', 'alchemist', project] + extra_args) sys.exit(exit_code)
def paster(cmd): print "paster %s" % cmd from paste.script import command args = cmd.split() options, args = command.parser.parse_args(args) options.base_parser = command.parser command.system_plugins.extend(options.plugins or []) commands = command.get_commands() command_name = args[0] if command_name not in commands: command = command.NotFoundCommand else: command = commands[command_name].load() runner = command(command_name) runner.run(args[1:])
def setUp(self): """ set up some basics for the coming tests """ self.template = BaseTemplate('my_name') self.license_vars = { 'author': 'Frank Herbert', 'author_email': '*****@*****.**', 'license_name': 'GPL', 'project': 'my.package', } create = get_commands()['create'].load() command = create('create') command.parse_args(['-t', 'nested_namespace']) self.command = command self.command.interactive = False self.tempdir = tempfile.mkdtemp()
def paster(self, cmd, cmdplugin=None, template_vars={}): from paste.script import command args = cmd.split() options, args = command.parser.parse_args(args) options.base_parser = command.parser command.system_plugins.extend(options.plugins or []) cmmds = command.get_commands() command_name = args[0] if cmdplugin: runner = cmdplugin(command_name) else: command = cmmds[command_name].load() runner = command(command_name) if hasattr(runner, 'template_vars'): runner.template_vars.update(template_vars) runner.run(args[1:])
def main(): usage = "usage: %prog [options] PROJECT" parser = optparse.OptionParser(usage=usage) parser.add_option('--svn-repository', dest="repos", default=None, help="Import project to given repository location (this " "will also create the standard trunk/ tags/ branches/ " "hierarchy).") parser.add_option('-v', '--verbose', action="store_true", dest="verbose", default=False, help="Be verbose.") options, args = parser.parse_args() if len(args) != 1: parser.print_usage() return 1 # create sandbox using paste.script project = args[0] commands = command.get_commands() cmd = commands['create'].load() runner = cmd('create') option_args = [] if options.repos is not None: option_args.extend(['--svn-repository', options.repos]) if not options.verbose: option_args.append('-q') # Assert that the project name is a valid Python identifier if not (project_name_re.match(project).group() == project): print print "Error: The chosen project name is not a invalid " \ "package name: %s." % project print "Please choose a different project name." sys.exit(1) # Create the project else: exit_code = runner.run(option_args + ['-t', 'uvclight', project + '_project']) sys.exit(exit_code)
def main(): usage = "usage: %prog [options] PROJECT" parser = optparse.OptionParser(usage=usage) parser.add_option('--svn-repository', dest="repos", default=None, help="Import project to given repository location (this " "will also create the standard trunk/ tags/ branches/ " "hierarchy).") parser.add_option('-v', '--verbose', action="store_true", dest="verbose", default=False, help="Be verbose.") # Options that override the interactive part of filling the templates. for var in AlchemistProject.vars: option_name = '--'+var.name.replace('_', '-') if not parser.has_option(option_name): parser.add_option( option_name, dest=var.name, help=var.description) options, args = parser.parse_args() if len(args) != 1: parser.print_usage() return 1 # create sandbox using paste.script project = args[0] commands = command.get_commands() cmd = commands['create'].load() runner = cmd('create') option_args = [] if options.repos is not None: option_args.extend(['--svn-repository', options.repos]) if not options.verbose: option_args.append('-q') # Process the options that override the interactive part of filling # the templates. extra_args = [] for var in AlchemistProject.vars: supplied_value = getattr(options, var.name) if supplied_value is not None: extra_args.append('%s=%s' % (var.name, supplied_value)) exit_code = runner.run(option_args + ['-t', 'alchemist', project] + extra_args) sys.exit(exit_code)
def setUp(self): """ set up some basics for the coming tests """ self.vars = [ DottedVar( "egg", "This is a string variable", title="String Title", default="string", page="Carl", modes=(EXPERT) ) ] self.template = BaseTemplate("my_name") create = get_commands()["create"].load() command = create("create") command.parse_args(["-t", "package"]) command.interactive = False self.command = command # create a temp directory and move there, remember where we came from self.orig_dir = os.getcwd() self.temp_dir = tempfile.mkdtemp() cd(self.temp_dir)
def main(): usage = "usage: %prog [options] PROJECT" parser = optparse.OptionParser(usage=usage) parser.add_option('--svn-repository', dest="repos", default=None, help="Import project to given repository location (this " "will also create the standard trunk/ tags/ branches/ " "hierarchy).") parser.add_option('-v', '--verbose', action="store_true", dest="verbose", default=False, help="Be verbose.") options, args = parser.parse_args() if len(args) != 1: parser.print_usage() return 1 # create sandbox using paste.script project = args[0] commands = command.get_commands() cmd = commands['create'].load() runner = cmd('create') option_args = [] if options.repos is not None: option_args.extend(['--svn-repository', options.repos]) if not options.verbose: option_args.append('-q') # Assert that the project name is a valid Python identifier if not (project_name_re.match(project).group() == project): print print "Error: The chosen project name is not a invalid " \ "package name: %s." % project print "Please choose a different project name." sys.exit(1) # Create the project else: exit_code = runner.run(option_args + ['-t', 'uvclight', project+'_project']) sys.exit(exit_code)
def paster(cmd): print "paster %s" % cmd from paste.script import command #the overwite option for the create command defaults to True #but in the paste.script.command it defaults to False. #so we fixe it here if 'create' in cmd: cmd += " --overwrite=1" args = cmd.split() options, args = command.parser.parse_args(args) options.base_parser = command.parser command.system_plugins.extend(options.plugins or []) commands = command.get_commands() command_name = args[0] if command_name not in commands: command = command.NotFoundCommand else: command = commands[command_name].load() runner = command(command_name) runner.run(args[1:])
def setUp(self): """ set up some basics for the coming tests """ self.vars = [ var('basic_var', 'This is a basic variable', title="Basic Title", default="foo", modes=(EXPERT, EASY)), BooleanVar('bool_var', 'This is a boolean variable', title="Boolean Title", default=False, page='Main', modes=(EASY)), StringVar('str_var', 'This is a string variable', title="String Title", default="string", page='Carl', modes=(EXPERT)), TextVar('txt_var', 'This is a text variable', page='Martin', title="Text Title", default="text", modes=()), DottedVar('dot_var', 'This is a dotted variable', title="Dotted Title", default="dotted.variable")] self.template = BaseTemplate('my_name') create = get_commands()['create'].load() command = create('create') command.parse_args(['-t', 'nested_namespace']) self.command = command
class Runner(object): """encapsulates command-line interactions Override public API methods to change behaviors """ texts = { 'usage': USAGE, 'description': DESCRIPTION, 'dot_help': DOT_HELP, 'dotfile_header': DOTFILE_HEADER, 'help_prompt': HELP_PROMPT, 'svn_warning': SVN_WARNING, 'id_warning': ID_WARNING, } name = 'templer' dotfile = '.zopeskel' def __init__(self, name=None, versions=None, dotfile=None, texts={}): """initialize a runner with the given name""" if name is not None: self.name = name # if versions is not passed, default to getting all installed # templer packages if versions is not None: if not isinstance(versions, (list, tuple)): versions = [versions, ] else: versions = self._get_templer_packages() self.versions = versions if dotfile is not None: self.dotfile = dotfile if not isinstance(texts, dict): raise ValueError("If passed, texts argument must be a dict") self.texts.update(texts) def __call__(self, argv): """command-line interaction and template execution argv should be passed in as sys.argv[1:] """ try: template_name, output_name, opts = self._process_args(argv) except SyntaxError, e: self.usage(exit=False) msg = "ERROR: There was a problem with your arguments: %s\n" print msg % str(e) raise sys.exit(1) rez = pkg_resources.iter_entry_points( 'paste.paster_create_template', template_name) rez = list(rez) if not rez: self.usage(exit=False) print "ERROR: No such template: %s\n" % template_name sys.exit(1) template = rez[0].load() print "\n%s: %s" % (template_name, template.summary) help = getattr(template, 'help', None) if help: print template.help create = get_commands()['create'].load() command = create('create') # allow special runner processing to be bypassed in case of certain # standard paster args short_circuit = False special_args = [] if '--list-variables' in argv: special_args.append('--list-variables') short_circuit = True output_name = None if not short_circuit: if output_name: try: self._checkdots(template, output_name) except ValueError, e: print "ERROR: %s\n" % str(e) raise sys.exit(1) else: ndots = getattr(template, 'ndots', None) help = DOT_HELP.get(ndots) while True: if help: print help try: challenge = "Enter project name (or q to quit)" output_name = command.challenge(challenge) if output_name == 'q': print "\n\nExiting...\n" sys.exit(0) self._checkdots(template, output_name) except ValueError, e: print "\nERROR: %s" % e raise else: break
def main(): usage = "usage: %prog [options] PROJECT" parser = optparse.OptionParser(usage=usage) parser.add_option('--svn-repository', dest="repos", default=None, help="Import project to given repository location (this " "will also create the standard trunk/ tags/ branches/ " "hierarchy).") parser.add_option('--grokversion', dest="grokversion", default=None, help="Specify the Grok version to use. GROKVERSION is " "a string like 0.14.1, 1.0a1 or similar. If not given, " "the latest version found on the grok website is used.") parser.add_option('-v', '--verbose', action="store_true", dest="verbose", default=False, help="Be verbose.") parser.add_option('--version', action="store_true", dest="version", default=False, help="Show grokproject version.") # Options that override the interactive part of filling the templates. for var in GrokProject.vars: option_name = '--' + var.name.replace('_', '-') if not parser.has_option(option_name): parser.add_option(option_name, dest=var.name, help=var.description) options, args = parser.parse_args() if options.version: print get_version() return 0 if len(args) != 1: parser.print_usage() return 1 # create sandbox using paste.script project = args[0] commands = command.get_commands() cmd = commands['create'].load() runner = cmd('create') option_args = [] if options.repos is not None: option_args.extend(['--svn-repository', options.repos]) if not options.verbose: option_args.append('-q') # Process the options that override the interactive part of filling # the templates. extra_args = [] for var in GrokProject.vars: supplied_value = getattr(options, var.name) if supplied_value is not None: extra_args.append('%s=%s' % (var.name, supplied_value)) if options.grokversion: extra_args.append('grokversion=%s' % options.grokversion) extra_args.append('version_url=False') # = False # Assert that the project name is a valid Python identifier if not (project_name_re.match(project).group() == project): print print "Error: The chosen project name is not a invalid " \ "package name: %s." % project print "Please choose a different project name." sys.exit(1) # Create the project else: exit_code = runner.run(option_args + ['-t', 'uvcproject', project] + extra_args) sys.exit(exit_code)
def main(vars=GrokProject.vars, template_name='grok'): usage = "usage: %prog [options] PROJECT" parser = optparse.OptionParser(usage=usage) parser.add_option( '--svn-repository', dest="repos", default=None, help=( "Import project to given repository location (this " "will also create the standard trunk/ tags/ branches/ " "hierarchy).")) parser.add_option( '--version-url', dest="version_url", default=None, help=( "Specify the URL to a buildout file defining package versions. " "If not given, the latest version info found on the grok website is " "used.")) parser.add_option( '-v', '--verbose', action="store_true", dest="verbose", default=False, help="Be verbose.") parser.add_option( '--version', action="store_true", dest="version", default=False, help="Show grokproject version.") # Options that override the interactive part of filling the templates. for var in vars: option_name = '--'+var.name.replace('_', '-') if not parser.has_option(option_name): parser.add_option( option_name, dest=var.name, help=var.description) options, args = parser.parse_args() if options.version: print(get_version()) return 0 if len(args) != 1: parser.print_usage() return 1 # create sandbox using paste.script project = args[0] commands = command.get_commands() cmd = commands['create'].load() runner = cmd('create') option_args = [] if options.repos is not None: option_args.extend(['--svn-repository', options.repos]) if not options.verbose: option_args.append('-q') # Process the options that override the interactive part of filling # the templates. extra_args = [] for var in vars: supplied_value = getattr(options, var.name) if supplied_value is not None: extra_args.append('%s=%s' % (var.name, supplied_value)) if options.version_url: extra_args.append('version_url=%s' % options.version_url) # Assert that the project name is a valid Python identifier. if not project_name_re.match(project): print print("Error: The chosen project name is not a valid " \ "package name: %s." % project) print("Please choose a different project name.") sys.exit(1) existing = False try: __import__(project) existing = True except ImportError: pass if existing: print print("Error: The package '%s' is already on sys.path." % project) print("Please choose a different project name.") sys.exit(1) # Create the project. exit_code = runner.run(option_args + ['-t', template_name, project] + extra_args) sys.exit(exit_code)
def main(): usage = "usage: %prog [options] PROJECT" parser = optparse.OptionParser(usage=usage) parser.add_option( "--svn-repository", dest="repos", default=None, help="Import project to given repository location (this " "will also create the standard trunk/ tags/ branches/ " "hierarchy).", ) parser.add_option( "--grokversion", dest="grokversion", default=None, help="Specify the Grok version to use. GROKVERSION is " "a string like 0.14.1, 1.0a1 or similar. If not given, " "the latest version found on the grok website is used.", ) parser.add_option("-v", "--verbose", action="store_true", dest="verbose", default=False, help="Be verbose.") parser.add_option("--version", action="store_true", dest="version", default=False, help="Show grokproject version.") # Options that override the interactive part of filling the templates. for var in GrokProject.vars: option_name = "--" + var.name.replace("_", "-") if not parser.has_option(option_name): parser.add_option(option_name, dest=var.name, help=var.description) options, args = parser.parse_args() if options.version: print get_version() return 0 if len(args) != 1: parser.print_usage() return 1 # create sandbox using paste.script project = args[0] commands = command.get_commands() cmd = commands["create"].load() runner = cmd("create") option_args = [] if options.repos is not None: option_args.extend(["--svn-repository", options.repos]) if not options.verbose: option_args.append("-q") # Process the options that override the interactive part of filling # the templates. extra_args = [] for var in GrokProject.vars: supplied_value = getattr(options, var.name) if supplied_value is not None: extra_args.append("%s=%s" % (var.name, supplied_value)) if options.grokversion: extra_args.append("grokversion=%s" % options.grokversion) extra_args.append("version_url=False") # = False # Assert that the project name is a valid Python identifier if not (project_name_re.match(project).group() == project): print print "Error: The chosen project name is not a invalid " "package name: %s." % project print "Please choose a different project name." sys.exit(1) # Create the project else: exit_code = runner.run(option_args + ["-t", "uvcproject", project] + extra_args) sys.exit(exit_code)
def get_commands(self): commands = {} for name, command in paste_command.get_commands().iteritems(): if name.startswith('pecan-'): commands[name[6:]] = command.load() return commands
'paste.paster_create_template', template_name) rez = list(rez) if not rez: usage() print "ERROR: No such template: %s\n" % template_name return template = rez[0].load() print "\n%s: %s" % (template_name, template.summary) help = getattr(template, 'help', None) if help: print template.help create = get_commands()['create'].load() command = create('create') if output_name: try: checkdots(template, output_name) except ValueError, e: print "ERROR: %s\n" % e return else: ndots = getattr(template, 'ndots', None) help = DOT_HELP.get(ndots) while True:
def main(vars=GrokProject.vars, template_name='grok'): usage = "usage: %prog [options] PROJECT" parser = optparse.OptionParser(usage=usage) parser.add_option( '--svn-repository', dest="repos", default=None, help=("Import project to given repository location (this " "will also create the standard trunk/ tags/ branches/ " "hierarchy).")) parser.add_option( '--version-url', dest="version_url", default=None, help= ("Specify the URL to a buildout file defining package versions. " "If not given, the latest version info found on the grok website is " "used.")) parser.add_option('-v', '--verbose', action="store_true", dest="verbose", default=False, help="Be verbose.") parser.add_option('--version', action="store_true", dest="version", default=False, help="Show grokproject version.") # Options that override the interactive part of filling the templates. for var in vars: option_name = '--' + var.name.replace('_', '-') if not parser.has_option(option_name): parser.add_option(option_name, dest=var.name, help=var.description) options, args = parser.parse_args() if options.version: print get_version() return 0 if len(args) != 1: parser.print_usage() return 1 # create sandbox using paste.script project = args[0] commands = command.get_commands() cmd = commands['create'].load() runner = cmd('create') option_args = [] if options.repos is not None: option_args.extend(['--svn-repository', options.repos]) if not options.verbose: option_args.append('-q') # Process the options that override the interactive part of filling # the templates. extra_args = [] for var in vars: supplied_value = getattr(options, var.name) if supplied_value is not None: extra_args.append('%s=%s' % (var.name, supplied_value)) if options.version_url: extra_args.append('version_url=%s' % options.version_url) # Assert that the project name is a valid Python identifier. if not project_name_re.match(project): print print "Error: The chosen project name is not a valid " \ "package name: %s." % project print "Please choose a different project name." sys.exit(1) existing = False try: __import__(project) existing = True except ImportError: pass if existing: print print "Error: The package '%s' is already on sys.path." % project print "Please choose a different project name." sys.exit(1) # Create the project. exit_code = runner.run(option_args + ['-t', template_name, project] + extra_args) sys.exit(exit_code)