Command-Line Interface

top-level

vee

usage: vee [-h] [-v] [--log LOG] [--profile CPROFILE_PATH]
           [--real-prefix REAL_PREFIX] [--home VEE]

VEE is a manager of versioned execution environments.

See: `vee COMMAND --help` for more on individual commands.

optional arguments:
  -h, --help            show this help message and exit
  -v, --verbose         increase verbosity; may be used multiple times
  --log LOG             dump complete log to file
  --profile CPROFILE_PATH
                        dump execution profile to disk
  --real-prefix REAL_PREFIX
                        Force a value for sys.real_prefix.
  --home VEE            path of managed environments; defaults to $VEE or the
                        directory above VEE's source

subcommands:

  setup:
    doctor       perform a self-check
    init         initialize VEE's home
    repo         manage environment repos
    self-update  update vee itself

  workflow:
    exec         execute in this environment
    update       update repos
    upgrade      upgrade packages specified by repositories, and link into environments

  development:
    add          record changes to dev packages in environment repo
    commit       commit changes to environment repo
    develop      setup development packages
    edit         open requirements.txt in $EDITOR
    push         push changes to environment repo

  plumbing:
    brew         run a homebrew command
    gc           cleanup VEE
    git          run a git command in a repository
    install      install a package; low-level
    link         link a package, or requirements.txt, into an environment
    relocate     relocate a package
    sqlite3      run a command in the database

setup

vee init

usage: vee init URL

Initialize the structures on disk before any other commands, and
optionally setup the first environment repository.

E.g.:

    vee init git@github.com:vfxetc/vee-repo primary

This is the same as:

    vee init
    vee repo clone git@github.com:vfxetc/vee-repo primary

positional arguments:
  url            URL of new repository to clone
  name           name for new repository

optional arguments:
  -h, --help     show this help message and exit
  -v, --verbose  increase verbosity; may be used multiple times

vee doctor

usage: vee doctor [--ping,--version,--revision]

Perform self-checks to make sure VEE is OK.

optional arguments:
  -h, --help     show this help message and exit
  -v, --verbose  increase verbosity; may be used multiple times
  --ping         print "pong", and exit
  --version      print VEE's version, and exit
  --revision     print VEE's revision, and exit

vee self-update

usage: vee self-update [-h] [-v]

Update VEE itself. This effectively runs `install_vee.py` with a few
default arguments, or is the same as `git pull` in the `src` directory.

optional arguments:
  -h, --help     show this help message and exit
  -v, --verbose  increase verbosity; may be used multiple times

vee repo

usage: vee repo init NAME
   or: vee repo add PATH [NAME]
   or: vee repo clone URL [NAME]
   or: vee repo set NAME
   or: vee repo delete NAME
   or: vee repo list

Manipulate environment repositories,
e.g.::

    # Start a new repo.
    $ vee repo init example

    # Add a new repo, and make it the default.
    $ vee repo clone --default git@github.com:example/myrepo

    # Change a repo's url and branch
    $ vee repo set --branch unstable myrepo

    # Delete a repo.
    $ vee repo delete myrepo

    # List all repos.
    $ vee repo list

optional arguments:
  -h, --help     show this help message and exit
  -v, --verbose  increase verbosity; may be used multiple times

subcommands:
    add          add an existing repository clone
    clone        clone a remote repository
    init         create a blank repository
    list         list local repositories
    set          set options on an existing repository

workflow

vee exec

usage: vee exec (-r REQUIREMENTS | ENVIRONMENT) COMMAND [...]

Construct an environment, and either export it or run a command in it.
e.g.::

    # Run in the default repository.
    $ vee exec $command

    # Run within a given repository.
    $ vee exec --repo named_repo $command

    # Run within a named environment.
    $ vee exec -e named_environ $command

    # Run within a constructed runtime for a set of requirements.
    $ vee exec -r requirements.txt $command

    # Export the default environment.
    $ vee exec --export
    export LD_LIBRARY_PATH="/usr/local/vee/environments/primary/master/lib:$LD_LIBRARY_PATH"
    export PATH="/usr/local/vee/environments/primary/master/bin:$PATH"
    export PYTHONPATH="/usr/local/vee/environments/primary/master/lib/python2.7/site-packages"

positional arguments:
  command               the command to run

optional arguments:
  -h, --help            show this help message and exit
  -v, --verbose         increase verbosity; may be used multiple times
  --export              export the environment instead of executing in it
  --prefix              print the prefixes that would be linked together
  -R REQUIREMENTS, --requirements REQUIREMENTS
                        requirements or requirements files to include; may be
                        comma separated
  -r REPOS, --repo REPOS
                        a repo whose HEAD to include; defaults to the default
                        repo
  -e ENVIRONMENT, --environment ENVIRONMENT
                        an environment to include
  -d, --dev             include the development environment
  --bootstrap           restore a previous dev environment (in $VEE_EXEC_ARGS)

vee update

usage: vee update [-h] [-v] [--all] [--force] [-r REPOS]

Update the environment repository (via `git pull`). This will fail if
your repositories are dirty, or have forked from their remotes.

optional arguments:
  -h, --help            show this help message and exit
  -v, --verbose         increase verbosity; may be used multiple times
  --all                 update all repos
  --force               force checkout, even if not fast-forward
  -r REPOS, --repo REPOS

vee upgrade

usage: vee upgrade [-h] [-v] [--all] [-u] [--dirty] [--relink] [--reinstall]
                   [--no-deps] [-f] [-r REPOS]
                   [subset [subset ...]]

Install packages and link into environments, as specified by repositories.

positional arguments:
  subset

optional arguments:
  -h, --help            show this help message and exit
  -v, --verbose         increase verbosity; may be used multiple times
  --all                 upgrade all repositories
  -u, --update          update before upgrading
  --dirty               build even when work tree is dirty
  --relink              relink packages
  --reinstall           reinstall packages
  --no-deps             dont touch dependencies
  -f, --force-branch-link
  -r REPOS, --repo REPOS

development

vee add

usage: vee add [-h] [-v] [--update] [--bake-installed] [--checksum] [--init]
               [--repo REPO]
               [package]

positional arguments:
  package

optional arguments:
  -h, --help        show this help message and exit
  -v, --verbose     increase verbosity; may be used multiple times
  --update          update all repos themselves
  --bake-installed  bake all installed revisions
  --checksum        checksum existing packages
  --init            create if not found in requirements
  --repo REPO

vee commit

usage: vee commit [-h] [-v] [--major] [--minor] [--patch] [--micro] [-r REPO]
                  [-m MESSAGE]

optional arguments:
  -h, --help            show this help message and exit
  -v, --verbose         increase verbosity; may be used multiple times
  --major
  --minor
  --patch
  --micro
  -r REPO, --repo REPO
  -m MESSAGE, --message MESSAGE

vee develop

usage: vee develop init [NAME]
   or: vee develop clone URL [NAME]
   or: vee develop add PATH [NAME]
   or: vee develop rm PATTERN
   or: vee develop find PATH
   or: vee develop install NAME
   or: vee develop rescan [NAME ...]
   or: vee develop setenv NAME KEY=value [...]
   or: vee develop list [--availible] [--environ]

optional arguments:
  -h, --help     show this help message and exit
  -v, --verbose  increase verbosity; may be used multiple times

subcommands:
    add          track an existing checkout
    clone        clone a remote git repository to develop
    find         recursively find existing checkouts
    git          run a git command on all dev packages
    init         init a new git repository
    install      install a tool that is managed by the default repository
    list         list all installed or availible tools
    rescan       rescan packages for changes to build environment
    setenv       set envvars within the dev execution environment

vee edit

usage: vee edit [-h] [-v] [-r [REPO]]

optional arguments:
  -h, --help            show this help message and exit
  -v, --verbose         increase verbosity; may be used multiple times
  -r [REPO], --repo [REPO]

vee push

usage: vee push [-h] [-v] [-r REPO]

optional arguments:
  -h, --help            show this help message and exit
  -v, --verbose         increase verbosity; may be used multiple times
  -r REPO, --repo REPO

plumbing

vee gc

usage: vee gc [-h] [-v] [--keep-latest KEEP_LATEST] [-e] [-p] [-n]

optional arguments:
  -h, --help            show this help message and exit
  -v, --verbose         increase verbosity; may be used multiple times
  --keep-latest KEEP_LATEST
  -e, --prune-environments
  -p, --prune-packages
  -n, --dry-run

vee install

usage: vee install [--force] {PACKAGE [OPTIONS], REQUIREMENTS_FILE}+

Install the given requirements without linking them into an environment.
This is a low-level command, and is generally unused.

Examples:

    # Install a single package.
    vee install git+git@github.com:vfxetc/sgmock

    # Install multiple packages.
    vee install git+git@github.com:vfxetc/sgmock git+git@github.com:vfxetc/sgsession \
        http:/example.org/path/to/tarball.tgz --make-install

    # Install from a requirement set.
    vee install path/to/requirements.txt

optional arguments:
  -h, --help     show this help message and exit
  -v, --verbose  increase verbosity; may be used multiple times
  --force        force install over old package

vee relocate

usage: vee relocate [-h] [-v] [-n] [--scan] [--rescan] [--spec SPEC] [path]

positional arguments:
  path

optional arguments:
  -h, --help     show this help message and exit
  -v, --verbose  increase verbosity; may be used multiple times
  -n, --dry-run
  --scan         look for installed libraires
  --rescan       redo previous scans
  --spec SPEC

vee brew

usage: vee brew COMMAND+

Run a command on VEE's Homebrew. This is sometimes nessesary to manage Homebrew
dependencies, as they are generally outside of the standard build pipeline.

E.g.::

    $ vee brew install sqlite
    ==> Installing sqlite dependency: readline
    ==> Installing sqlite

    $ vee brew list
    readline sqlite

optional arguments:
  -h, --help     show this help message and exit
  -v, --verbose  increase verbosity; may be used multiple times

vee git

usage: vee git [-r REPO] COMMAND+

Run a ``git`` command on a environment repository's git repository.
(Sorry for the name collision.)

e.g.::

    $ vee git -r primary status
    On branch master
    Your branch is behind 'origin/master' by 1 commit, and can be fast-forwarded.
      (use "git pull" to update your local branch)
    nothing to commit, working directory clean

optional arguments:
  -h, --help            show this help message and exit
  -v, --verbose         increase verbosity; may be used multiple times
  -r REPO, --repo REPO  which repo to use
  --stree               launch SourceTree

vee sqlite3

usage: vee sqlite3 [-h] [-v]

optional arguments:
  -h, --help     show this help message and exit
  -v, --verbose  increase verbosity; may be used multiple times