diff options
author | Laria Carolin Chabowski <laria@laria.me> | 2017-08-08 08:06:09 +0200 |
---|---|---|
committer | Laria Carolin Chabowski <laria@laria.me> | 2017-09-26 21:35:40 +0200 |
commit | d368a0d3e79bab4e5da4872934240489a691b875 (patch) | |
tree | 075e59e08b1f860adbdd2bdb7eac634724f8b6a9 /write_dir.go | |
parent | bab0697f0e8a98cfa28c7527ee616e954c7afe91 (diff) | |
download | petrific-d368a0d3e79bab4e5da4872934240489a691b875.tar.gz petrific-d368a0d3e79bab4e5da4872934240489a691b875.tar.bz2 petrific-d368a0d3e79bab4e5da4872934240489a691b875.zip |
Add restore-dir command
Diffstat (limited to 'write_dir.go')
-rw-r--r-- | write_dir.go | 37 |
1 files changed, 22 insertions, 15 deletions
diff --git a/write_dir.go b/write_dir.go index cc148c2..e701a56 100644 --- a/write_dir.go +++ b/write_dir.go @@ -9,38 +9,45 @@ import ( "path" ) +func abspath(p string) (string, error) { + if p[0] != '/' { + pwd, err := os.Getwd() + if err != nil { + return "", fmt.Errorf("abspath(%s): %s", p, err) + } + p = pwd + "/" + p + } + return path.Clean(p), nil +} + func WriteDir(args []string) int { - if len(args) != 1 || len(args[0]) == 0 { - subcmdUsage("write-dir", "directory", nil)() + usage := subcmdUsage("write-dir", "directory", nil) + + if len(args) != 1 { + usage() return 2 } - dir_path := args[0] - // Make path absolute - if dir_path[0] != '/' { - pwd, err := os.Getwd() - if err != nil { - fmt.Fprintf(os.Stderr, "write-dir: %s", err) - return 1 - } - dir_path = pwd + "/" + dir_path + dir_path, err := abspath(args[0]) + if err != nil { + fmt.Fprintf(os.Stderr, "write-dir: %s\n", err) + return 1 } - dir_path = path.Clean(dir_path) d, err := fs.OpenOSFile(dir_path) if err != nil { - fmt.Fprintf(os.Stderr, "write-dir: %s", err) + fmt.Fprintf(os.Stderr, "write-dir: %s\n", err) return 1 } if d.Type() != fs.FDir { - fmt.Fprintf(os.Stderr, "write-dir: %s is not a directory", dir_path) + fmt.Fprintf(os.Stderr, "write-dir: %s is not a directory\n", dir_path) return 1 } id, err := backup.WriteDir(objectstore, dir_path, d, cache.NopCache{}) if err != nil { - fmt.Fprintf(os.Stderr, "write-dir: %s", err) + fmt.Fprintf(os.Stderr, "write-dir: %s\n", err) return 1 } |