File tree Expand file tree Collapse file tree 1 file changed +12
-4
lines changed
Expand file tree Collapse file tree 1 file changed +12
-4
lines changed Original file line number Diff line number Diff line change @@ -261,11 +261,19 @@ func (c *Config) Save() {
261261 configDir , err := filepath .Abs (os .Getenv ("HOME" ) + "/.ssh/config" )
262262 checkError (err )
263263
264- _ , err = os .Stat (configDir )
265- checkError (err )
264+ // make sure dir exists
265+ dir := filepath .Dir (configDir )
266+ if _ , err = os .Stat (dir ); err != nil {
267+ os .MkdirAll (dir , os .ModePerm )
268+ }
266269
267- err = os .Rename (configDir , configDir + string (time .Now ().Format (time .RFC3339 )))
268- checkError (err )
270+ // backup old dir
271+ if _ , err = os .Stat (configDir ); err == nil {
272+ err = os .Rename (configDir , configDir + string (time .Now ().Format (time .RFC3339 )))
273+ if err != nil {
274+ log .Fatalf ("Failed to rename old config file %v.\n " , configDir )
275+ }
276+ }
269277
270278 f , err := os .OpenFile (configDir , os .O_RDWR | os .O_CREATE , 0755 )
271279 checkError (err )
You can’t perform that action at this time.
0 commit comments