Improved error handling

This commit is contained in:
Alex Yatskov 2015-04-03 10:57:36 +09:00
parent 86ff7e4d45
commit 7ebecef0ee

View File

@ -40,13 +40,17 @@ func cleanPath(loc string, flags int) error {
if err := os.Remove(loc); err != nil { if err := os.Remove(loc); err != nil {
return err return err
} }
} else if flags&optClobber == optClobber { } else {
if flags&optClobber == optClobber {
if verbose { if verbose {
log.Print("Clobbering path: '%s'", loc) log.Print("Clobbering path: '%s'", loc)
} }
if err := os.RemoveAll(loc); err != nil { if err := os.RemoveAll(loc); err != nil {
return err return err
} }
} else {
return fmt.Errorf("Cannot create link; target already exists: '%s'", loc)
}
} }
} }
@ -107,7 +111,7 @@ func (this *link) install(srcDir, dstDir string, flags int) error {
} }
if flags&optVerbose == optVerbose { if flags&optVerbose == optVerbose {
log.Printf("Linking: '%s' => '%s'", srcPath, dstPath) log.Printf("Linking: '%s' to '%s'", srcPath, dstPath)
} }
return os.Symlink(srcPath, dstPath) return os.Symlink(srcPath, dstPath)