# The name of this package.
package: github.com/Masterminds/glide

# External dependencies.
import:
  # Minimal definition
  # This will use "go get [-u]" to fetch and update the package, and it will
  # attempt to keep the release at the tip of master. It does this by looking
  # for telltale signs that this is a git, bzr, or hg repo, and then acting
  # accordingly.
  - package: github.com/kylelemons/go-gypsy

  # Full definition
  # This will check out the given Git repo, set the version to master,
  # use "git" (not "go get") to manage it, and alias the package to the
  # import path github.com/Masterminds/cookoo
  - package: github.com/Masterminds/cookoo
    vcs: git
    version: master
    repo: git@github.com:Masterminds/cookoo.git

  # Here's an example with a commit hash for a version. Since repo is not
  # specified, this will use git to to try to clone
  # 'http://github.com/aokoli/goutils' and then set the revision to the given
  # hash.
  - package: github.com/aokoli/goutils
    vcs: git
    version: 9c37978a95bd5c709a15883b6242714ea6709e64

  # MASKING: This takes my fork of goamz (technosophos/goamz) and clones it
  # as if it were the crowdmob/goamz package. This is incredibly useful for
  # masking packages and/or working with forks or clones.
  #
  # Note that absolutely no namespace munging happens on the code. If you want
  # that, you'll have to do it on your own. The intent of this masking was to
  # make it so you don't have to vendor imports.
  - package: github.com/crowdmob/goamz
    vcs: git
    repo: git@github.com:technosophos/goamz.git

  # This will fetch the entire technosophos/luge package, but only
  # 'go build' the technosophos/luge/foo and technosophos/luge/bar packages.
  - package: github.com/technosophos/luge
    vcs: git
    subpackages:
      - foo
      - bar
      # Shell globs are also supported:
      - pa?e
      - [wc]*

  # Use '...' to tell glide to build ALL of the subpackages.
  - package: github.com/Masterminds/blarg
    subpackages: ...

  - package: bzr.example.com/foo/bar/trunk
    vcs: bzr
    repo: bzr://bzr.example.com/foo/bar/trunk
    # The version can be a branch, tag, commit id, or a semantic version
    # constraint parsable by https://github.com/Masterminds/semver
    version: 1.0.0

  - package: hg.example.com/foo/bar
    vcs: hg
    repo: http://hg.example.com/foo/bar
    version: ae081cd1d6cc

  # For SVN, the only valid version is a commit number. Tags and branches go in
  # the repo URL.
  - package: svn.example.com/foo/bar/trunk
    vcs: svn
    repo: http://svn.example.com/foo/bar/trunk


  # If a package is dependent on OS, you can tell Glide to only
  # fetch for certain OS or architectures.
  #
  # os can be any valid GOOS.
  # arch can be any valid GOARCH.
  - package: github.com/unixy/package
    os:
      - linux
      - darwin
    arch:
      - amd64
