Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
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"])
Ejemplo n.º 4
0
    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)
Ejemplo n.º 5
0
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"])
Ejemplo n.º 6
0
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])
Ejemplo n.º 7
0
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])
Ejemplo n.º 8
0
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)
Ejemplo n.º 9
0
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)
Ejemplo n.º 10
0
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:])
Ejemplo n.º 11
0
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:])
Ejemplo n.º 12
0
 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()
Ejemplo n.º 13
0
 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:])
Ejemplo n.º 14
0
 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()
Ejemplo n.º 15
0
 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:])
Ejemplo n.º 16
0
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)
Ejemplo n.º 17
0
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)
Ejemplo n.º 18
0
 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)
Ejemplo n.º 19
0
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)
Ejemplo n.º 20
0
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:])
Ejemplo n.º 21
0
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:])
Ejemplo n.º 22
0
 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
Ejemplo n.º 23
0
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
Ejemplo n.º 24
0
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)
Ejemplo n.º 25
0
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)
Ejemplo n.º 26
0
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)
Ejemplo n.º 27
0
 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
Ejemplo n.º 28
0
            '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:
Ejemplo n.º 29
0
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)