@@ -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
8977func 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