mirror of
https://github.com/kemko/nomad.git
synced 2026-01-05 18:05:42 +03:00
6
vendor/github.com/hashicorp/go-getter/README.md
generated
vendored
6
vendor/github.com/hashicorp/go-getter/README.md
generated
vendored
@@ -21,8 +21,7 @@ URLs. For example: "github.com/hashicorp/go-getter" would turn into a
|
||||
Git URL. Or "./foo" would turn into a file URL. These are extensible.
|
||||
|
||||
This library is used by [Terraform](https://terraform.io) for
|
||||
downloading modules, [Otto](https://ottoproject.io) for dependencies and
|
||||
Appfile imports, and [Nomad](https://nomadproject.io) for downloading
|
||||
downloading modules and [Nomad](https://nomadproject.io) for downloading
|
||||
binaries.
|
||||
|
||||
## Installation and Usage
|
||||
@@ -233,6 +232,9 @@ The options below are available to all protocols:
|
||||
* `checksum` - Checksum to verify the downloaded file or archive. See
|
||||
the entire section on checksumming above for format and more details.
|
||||
|
||||
* `filename` - When in file download mode, allows specifying the name of the
|
||||
downloaded file on disk. Has no effect in directory mode.
|
||||
|
||||
### Local Files (`file`)
|
||||
|
||||
None
|
||||
|
||||
13
vendor/github.com/hashicorp/go-getter/client.go
generated
vendored
13
vendor/github.com/hashicorp/go-getter/client.go
generated
vendored
@@ -232,7 +232,18 @@ func (c *Client) Get() error {
|
||||
// Destination is the base name of the URL path in "any" mode when
|
||||
// a file source is detected.
|
||||
if mode == ClientModeFile {
|
||||
dst = filepath.Join(dst, filepath.Base(u.Path))
|
||||
filename := filepath.Base(u.Path)
|
||||
|
||||
// Determine if we have a custom file name
|
||||
if v := q.Get("filename"); v != "" {
|
||||
// Delete the query parameter if we have it.
|
||||
q.Del("filename")
|
||||
u.RawQuery = q.Encode()
|
||||
|
||||
filename = v
|
||||
}
|
||||
|
||||
dst = filepath.Join(dst, filename)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
9
vendor/github.com/hashicorp/go-getter/get.go
generated
vendored
9
vendor/github.com/hashicorp/go-getter/get.go
generated
vendored
@@ -18,6 +18,8 @@ import (
|
||||
"os/exec"
|
||||
"regexp"
|
||||
"syscall"
|
||||
|
||||
cleanhttp "github.com/hashicorp/go-cleanhttp"
|
||||
)
|
||||
|
||||
// Getter defines the interface that schemes must implement to download
|
||||
@@ -49,8 +51,13 @@ var Getters map[string]Getter
|
||||
// syntax is schema::url, example: git::https://foo.com
|
||||
var forcedRegexp = regexp.MustCompile(`^([A-Za-z0-9]+)::(.+)$`)
|
||||
|
||||
// httpClient is the default client to be used by HttpGetters.
|
||||
var httpClient = cleanhttp.DefaultClient()
|
||||
|
||||
func init() {
|
||||
httpGetter := &HttpGetter{Netrc: true}
|
||||
httpGetter := &HttpGetter{
|
||||
Netrc: true,
|
||||
}
|
||||
|
||||
Getters = map[string]Getter{
|
||||
"file": new(FileGetter),
|
||||
|
||||
29
vendor/github.com/hashicorp/go-getter/get_git.go
generated
vendored
29
vendor/github.com/hashicorp/go-getter/get_git.go
generated
vendored
@@ -180,17 +180,34 @@ func (g *GitGetter) fetchSubmodules(dst, sshKeyFile string) error {
|
||||
// setupGitEnv sets up the environment for the given command. This is used to
|
||||
// pass configuration data to git and ssh and enables advanced cloning methods.
|
||||
func setupGitEnv(cmd *exec.Cmd, sshKeyFile string) {
|
||||
var sshOpts []string
|
||||
const gitSSHCommand = "GIT_SSH_COMMAND="
|
||||
var sshCmd []string
|
||||
|
||||
// If we have an existing GIT_SSH_COMMAND, we need to append our options.
|
||||
// We will also remove our old entry to make sure the behavior is the same
|
||||
// with versions of Go < 1.9.
|
||||
env := os.Environ()
|
||||
for i, v := range env {
|
||||
if strings.HasPrefix(v, gitSSHCommand) {
|
||||
sshCmd = []string{v}
|
||||
|
||||
env[i], env[len(env)-1] = env[len(env)-1], env[i]
|
||||
env = env[:len(env)-1]
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
if len(sshCmd) == 0 {
|
||||
sshCmd = []string{gitSSHCommand + "ssh"}
|
||||
}
|
||||
|
||||
if sshKeyFile != "" {
|
||||
// We have an SSH key temp file configured, tell ssh about this.
|
||||
sshOpts = append(sshOpts, "-i", sshKeyFile)
|
||||
sshCmd = append(sshCmd, "-i", sshKeyFile)
|
||||
}
|
||||
|
||||
cmd.Env = append(os.Environ(),
|
||||
// Set the ssh command to use for clones.
|
||||
"GIT_SSH_COMMAND=ssh "+strings.Join(sshOpts, " "),
|
||||
)
|
||||
env = append(env, strings.Join(sshCmd, " "))
|
||||
cmd.Env = env
|
||||
}
|
||||
|
||||
// checkGitVersion is used to check the version of git installed on the system
|
||||
|
||||
16
vendor/github.com/hashicorp/go-getter/get_http.go
generated
vendored
16
vendor/github.com/hashicorp/go-getter/get_http.go
generated
vendored
@@ -36,6 +36,10 @@ type HttpGetter struct {
|
||||
// Netrc, if true, will lookup and use auth information found
|
||||
// in the user's netrc file if available.
|
||||
Netrc bool
|
||||
|
||||
// Client is the http.Client to use for Get requests.
|
||||
// This defaults to a cleanhttp.DefaultClient if left unset.
|
||||
Client *http.Client
|
||||
}
|
||||
|
||||
func (g *HttpGetter) ClientMode(u *url.URL) (ClientMode, error) {
|
||||
@@ -57,13 +61,17 @@ func (g *HttpGetter) Get(dst string, u *url.URL) error {
|
||||
}
|
||||
}
|
||||
|
||||
if g.Client == nil {
|
||||
g.Client = httpClient
|
||||
}
|
||||
|
||||
// Add terraform-get to the parameter.
|
||||
q := u.Query()
|
||||
q.Add("terraform-get", "1")
|
||||
u.RawQuery = q.Encode()
|
||||
|
||||
// Get the URL
|
||||
resp, err := http.Get(u.String())
|
||||
resp, err := g.Client.Get(u.String())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -105,7 +113,11 @@ func (g *HttpGetter) GetFile(dst string, u *url.URL) error {
|
||||
}
|
||||
}
|
||||
|
||||
resp, err := http.Get(u.String())
|
||||
if g.Client == nil {
|
||||
g.Client = httpClient
|
||||
}
|
||||
|
||||
resp, err := g.Client.Get(u.String())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
5
vendor/github.com/hashicorp/go-getter/source.go
generated
vendored
5
vendor/github.com/hashicorp/go-getter/source.go
generated
vendored
@@ -49,6 +49,11 @@ func SubdirGlob(dst, subDir string) (string, error) {
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
if len(matches) == 0 {
|
||||
return "", fmt.Errorf("subdir %q not found", subDir)
|
||||
}
|
||||
|
||||
if len(matches) > 1 {
|
||||
return "", fmt.Errorf("subdir %q matches multiple paths", subDir)
|
||||
}
|
||||
|
||||
10
vendor/vendor.json
vendored
10
vendor/vendor.json
vendored
@@ -757,16 +757,16 @@
|
||||
"revisionTime": "2017-06-02T22:43:19Z"
|
||||
},
|
||||
{
|
||||
"checksumSHA1": "aYYfKsxwxF3pz3YqKlmDVxGMrnM=",
|
||||
"checksumSHA1": "wCKbbnwvVEoKAE5TWunloLhErm4=",
|
||||
"path": "github.com/hashicorp/go-getter",
|
||||
"revision": "80eb888f740e980f6585273d48582c74b3a34f88",
|
||||
"revisionTime": "2017-09-05T20:52:06Z"
|
||||
"revision": "994f50a6f071b07cfbea9eca9618c9674091ca51",
|
||||
"revisionTime": "2017-12-04T19:28:26Z"
|
||||
},
|
||||
{
|
||||
"checksumSHA1": "9J+kDr29yDrwsdu2ULzewmqGjpA=",
|
||||
"path": "github.com/hashicorp/go-getter/helper/url",
|
||||
"revision": "80eb888f740e980f6585273d48582c74b3a34f88",
|
||||
"revisionTime": "2017-09-05T20:52:06Z"
|
||||
"revision": "994f50a6f071b07cfbea9eca9618c9674091ca51",
|
||||
"revisionTime": "2017-12-04T19:28:26Z"
|
||||
},
|
||||
{
|
||||
"checksumSHA1": "miVF4/7JP0lRwZvFJGKwZWk7aAQ=",
|
||||
|
||||
Reference in New Issue
Block a user