|
|
|
|
@ -20,17 +20,24 @@ func ConfigDir() (string, error) {
|
|
|
|
|
|
|
|
|
|
// ConfigTmpDir returns the configuration tmp directory for Packer
|
|
|
|
|
func ConfigTmpDir() (string, error) {
|
|
|
|
|
if tmpdir := os.Getenv("PACKER_TMP_DIR"); tmpdir != "" {
|
|
|
|
|
return filepath.Abs(tmpdir)
|
|
|
|
|
var tmpdir, td string
|
|
|
|
|
var found bool
|
|
|
|
|
|
|
|
|
|
if tmpdir = os.Getenv("PACKER_TMP_DIR"); tmpdir == "" {
|
|
|
|
|
for e := range []string{"TEMP", "TMP", "LOCALAPPDATA"} {
|
|
|
|
|
if tmpdir, found := os.LookupEnv(e); found {
|
|
|
|
|
td = filepath.Join(tmpdir, "packer")
|
|
|
|
|
break
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
configdir, err := configDir()
|
|
|
|
|
if err != nil {
|
|
|
|
|
return "", err
|
|
|
|
|
if tmpdir == "" {
|
|
|
|
|
td = filepath.Join(configDir(), "tmp")
|
|
|
|
|
}
|
|
|
|
|
td := filepath.Join(configdir, "tmp")
|
|
|
|
|
|
|
|
|
|
_, err = os.Stat(td)
|
|
|
|
|
if os.IsNotExist(err) {
|
|
|
|
|
if err = os.MkdirAll(td, 0755); err != nil {
|
|
|
|
|
if err = os.MkdirAll(td, 0700); err != nil {
|
|
|
|
|
return "", err
|
|
|
|
|
}
|
|
|
|
|
} else if err != nil {
|
|
|
|
|
|