Skip to content
This repository was archived by the owner on Feb 27, 2018. It is now read-only.

Commit 15e0e7f

Browse files
Sven DowideitSven Dowideit
authored andcommitted
Merge pull request #121 from SvenDowideit/remove--dir-option
simplify the cfg path to BOOT2DOCKER_DIR, $HOME/.boot2docker and $USERPROFILE/.boot2docker
2 parents 40d9a6d + 6fbf40e commit 15e0e7f

2 files changed

Lines changed: 16 additions & 25 deletions

File tree

cmds.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -416,5 +416,6 @@ func cmdDownload() int {
416416
logf("Failed to download ISO image: %s", err)
417417
return 1
418418
}
419+
logf("Success: downloaded %s\n\tto %s", url, B2D.ISO)
419420
return 0
420421
}

config.go

Lines changed: 15 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -57,33 +57,21 @@ func getCfgDir(name string) (string, error) {
5757
return b2dDir, nil
5858
}
5959

60-
// *nix
61-
if home := os.Getenv("HOME"); home != "" {
62-
dir := filepath.Join(home, name)
63-
if _, err := os.Stat(dir); err == nil {
64-
return dir, nil
65-
}
66-
}
60+
dir := ""
6761

68-
// Windows
69-
for _, env := range []string{
70-
"APPDATA",
71-
"LOCALAPPDATA",
72-
"USERPROFILE",
73-
} {
74-
if val := os.Getenv(env); val != "" {
75-
dir := filepath.Join(val, "boot2docker")
76-
if _, err := os.Stat(dir); err == nil {
77-
return dir, nil
78-
}
79-
}
62+
// *nix and MSYS Windows
63+
if dir = os.Getenv("HOME"); dir == "" {
64+
// Windows (if not running under MSYS)
65+
dir = os.Getenv("USERPROFILE")
8066
}
81-
// Fallback to current working directory as a last resort
82-
cwd, err := os.Getwd()
83-
if err != nil {
67+
if _, err := os.Stat(dir); err != nil {
68+
return "", err
69+
}
70+
dir = filepath.Join(dir, name)
71+
if err := os.MkdirAll(dir, 0755); err != nil {
8472
return "", err
8573
}
86-
return cwd, nil
74+
return dir, nil
8775
}
8876

8977
func getCfgFilename(dir string) string {
@@ -117,7 +105,9 @@ func config() (*flag.FlagSet, error) {
117105
flags.Usage = func() { usageLong(flags) }
118106

119107
flags.StringVar(&B2D.VM, "vm", "boot2docker-vm", "virtual machine name.")
120-
flags.StringVarP(&B2D.Dir, "dir", "d", dir, "boot2docker config directory.")
108+
// removed for now, requires re-parsing a new config file which is too messy
109+
//flags.StringVarP(&B2D.Dir, "dir", "d", dir, "boot2docker config directory.")
110+
B2D.Dir = dir
121111
flags.StringVar(&B2D.ISO, "iso", filepath.Join(dir, "boot2docker.iso"), "path to boot2docker ISO image.")
122112
flags.StringVar(&B2D.VMDK, "basevmdk", "", "Path to VMDK to use as base for persistent partition")
123113
vbm := "VBoxManage"
@@ -147,7 +137,7 @@ func config() (*flag.FlagSet, error) {
147137
return nil, err
148138
}
149139
// Over-ride from the profile file
150-
filename := getCfgFilename(dir)
140+
filename := getCfgFilename(B2D.Dir)
151141
if _, err := os.Lstat(filename); err == nil {
152142
if _, err := toml.DecodeFile(filename, &B2D); err != nil {
153143
return nil, err

0 commit comments

Comments
 (0)