Exemple #1
0
def execute(args, parser):
    import sys
    import json
    from os.path import isfile

    from conda.builder.share import clone_bundle


    common.ensure_name_or_prefix(args, 'clone')

    prefix = common.get_prefix(args)

    path = args.path[0]
    if not isfile(path):
        sys.exit("Error: no such file: %s" % path)

    warnings = []
    for w in clone_bundle(path, prefix):
        if args.json:
            warnings.append(w)
        else:
            print "Warning:", w

    if args.json:
        json.dump(dict(warnings=warnings), sys.stdout, indent=2)
Exemple #2
0
def execute(args, parser):
    import os
    import sys
    from os.path import abspath, exists, isfile

    import conda.plan as plan
    from conda.api import get_index

    common.ensure_name_or_prefix(args, "create")
    prefix = common.get_prefix(args, search=False)
    if exists(prefix):
        sys.exit("Error: prefix already exists: %s" % prefix)

    if args.clone:
        path = abspath(args.clone)
        if isfile(path):
            from conda.builder.share import clone_bundle

            clone_bundle(path, prefix)
            return
        else:
            from conda.misc import clone_env

            if os.sep in args.clone:
                src_prefix = path
            else:
                src_prefix = common.find_prefix_name(args.clone)
            print("src_prefix: %r" % src_prefix)
            if src_prefix is None:
                sys.exit("Error: could not find environment: %s" % args.clone)
            clone_env(src_prefix, prefix)
            args.yes = True
    else:
        if len(args.package_specs) == 0 and not args.file:
            sys.exit("Error: too few arguments, must supply command line " "package specs or --file")

    if args.file:
        specs = common.specs_from_file(args.file)
    else:
        specs = common.specs_from_args(args.package_specs)

    if args.clone and len(specs) == 0:
        return
    else:
        common.check_specs(prefix, specs)

    channel_urls = args.channel or ()

    common.ensure_override_channels_requires_channel(args)
    index = get_index(channel_urls=channel_urls, prepend=not args.override_channels)
    actions = plan.install_actions(prefix, index, specs)

    if plan.nothing_to_do(actions):
        print("No matching packages could be found, nothing to do")
        return

    print()
    print("Package plan for creating environment at %s:" % prefix)
    plan.display_actions(actions, index)

    common.confirm_yn(args)
    plan.execute_actions(actions, index, verbose=not args.quiet)

    activate_name = prefix
    if args.name:
        activate_name = args.name
    print("#")
    print("# To activate this environment, use:")
    if sys.platform == "win32":
        print("# > activate %s" % activate_name)
    else:
        print("# $ source activate %s" % activate_name)
        print("#")
        print("# To deactivate this environment, use:")
        print("# $ source deactivate")
    print("#")