def workspace_manage_software_setup_parser()

in lib/ramble/ramble/cmd/workspace.py [0:0]


def workspace_manage_software_setup_parser(subparser):
    """manage workspace software definitions"""

    subparser.add_argument(
        "--environment-name",
        "--env",
        dest="environment_name",
        metavar="ENV",
        help="Name of environment to define",
    )

    env_types = subparser.add_mutually_exclusive_group()
    env_types.add_argument(
        "--environment-packages",
        dest="environment_packages",
        help="Comma separated list of packages to add into environment",
        metavar="PKG1,PKG2,PKG2",
    )

    env_types.add_argument(
        "--external-env",
        dest="external_env_path",
        help="Path to external environment description",
        metavar="PATH",
    )

    subparser.add_argument(
        "--package-name",
        "--pkg",
        dest="package_name",
        metavar="NAME",
        help="Name of package to define",
    )

    subparser.add_argument(
        "--package-spec",
        "--pkg-spec",
        "--spec",
        dest="package_spec",
        metavar="SPEC",
        help="Value for the pkg_spec attribute in the defined package",
    )

    subparser.add_argument(
        "--compiler-package",
        "--compiler-pkg",
        "--compiler",
        dest="compiler_package",
        metavar="PKG",
        help="Value for the compiler attribute in the defined package",
    )

    subparser.add_argument(
        "--compiler-spec",
        dest="compiler_spec",
        metavar="SPEC",
        help="Value for the compiler_spec attribute in the defined package",
    )

    subparser.add_argument(
        "--package-manager-prefix",
        "--prefix",
        dest="package_manager_prefix",
        metavar="PREFIX",
        help="Prefix for defined package attributes. "
        "Resulting attributes will be {prefix}_pkg_spec.",
    )

    modify_types = subparser.add_mutually_exclusive_group()
    modify_types.add_argument(
        "--remove",
        "--delete",
        action="store_true",
        help="Whether to remove named package and environment definitions if they exist.",
    )

    modify_types.add_argument(
        "--overwrite",
        "-o",
        action="store_true",
        help="Whether to overwrite existing definitions or not.",
    )

    subparser.add_argument(
        "--dry-run",
        "--print",
        dest="dry_run",
        action="store_true",
        help="perform a dry run. Print resulting config to screen and not "
        + "to the workspace configuration file",
    )