Merge pull request #7800 from hashicorp/smb_getter

Smb getter
This commit is contained in:
Megan Marsh 2019-06-27 12:05:15 -07:00 committed by GitHub
commit 44d2198a1b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 12 additions and 0 deletions

View File

@ -7,6 +7,7 @@ import (
"fmt" "fmt"
"log" "log"
"os" "os"
"path/filepath"
"runtime" "runtime"
"strings" "strings"
@ -101,10 +102,21 @@ func init() {
// can leave the source file where it is & tell us where it is. // can leave the source file where it is & tell us where it is.
Copy: true, Copy: true,
} }
getters["smb"] = &getter.FileGetter{
Copy: true,
}
} }
} }
func (s *StepDownload) download(ctx context.Context, ui packer.Ui, source string) (string, error) { func (s *StepDownload) download(ctx context.Context, ui packer.Ui, source string) (string, error) {
if runtime.GOOS == "windows" {
// Check that the user specified a UNC path, and promote it to an smb:// uri.
if strings.HasPrefix(source, "\\\\") && len(source) > 2 && source[2] != '?' {
source = filepath.ToSlash(source[2:])
source = fmt.Sprintf("smb://%s", source)
}
}
u, err := urlhelper.Parse(source) u, err := urlhelper.Parse(source)
if err != nil { if err != nil {
return "", fmt.Errorf("url parse: %s", err) return "", fmt.Errorf("url parse: %s", err)