From 78c5696d2de52dd2ff584b048f73decf46e9a9ca Mon Sep 17 00:00:00 2001 From: ale <ale@incal.net> Date: Sat, 13 Feb 2016 09:59:22 +0000 Subject: [PATCH] moved ExpandTilde to the util package --- cmd/liber/liber.go | 19 ++++++------------- util/tilde.go | 20 ++++++++++++++++++++ 2 files changed, 26 insertions(+), 13 deletions(-) create mode 100644 util/tilde.go diff --git a/cmd/liber/liber.go b/cmd/liber/liber.go index 52153c4..5712ca4 100644 --- a/cmd/liber/liber.go +++ b/cmd/liber/liber.go @@ -16,6 +16,7 @@ import ( "sync" "git.autistici.org/ale/liber" + "git.autistici.org/ale/liber/util" ) var ( @@ -152,7 +153,7 @@ func doUpdate(db *liber.Database, dir string) { } func doSync(db *liber.Database, remoteAddr string) { - storage := liber.NewFileStorage(expandTilde(*bookDir)) + storage := liber.NewFileStorage(util.ExpandTilde(*bookDir)) sc := liber.NewRemoteServer(remoteAddr) if err := db.Sync(storage, sc); err != nil { log.Fatal(err) @@ -181,8 +182,8 @@ func doSearch(db *liber.Database, query string) { } func doHttpServer(db *liber.Database, addr string) { - storage := liber.NewRWFileStorage(expandTilde(*bookDir), 2) - cache := liber.NewRWFileStorage(filepath.Join(expandTilde(*databaseDir), "cache"), 2) + storage := liber.NewRWFileStorage(util.ExpandTilde(*bookDir), 2) + cache := liber.NewRWFileStorage(filepath.Join(util.ExpandTilde(*databaseDir), "cache"), 2) server := liber.NewHttpServer(db, storage, cache, addr) log.Fatal(server.ListenAndServe()) } @@ -202,14 +203,6 @@ func b2i(b bool) int { return 0 } -func expandTilde(path string) string { - if strings.HasPrefix(path, "~/") { - curUser, _ := user.Current() - return filepath.Join(curUser.HomeDir, strings.TrimPrefix(path, "~/")) - } - return path -} - func main() { log.SetFlags(0) flag.Parse() @@ -221,7 +214,7 @@ func main() { log.Fatal("Must specify --book-dir") } - dbdir := expandTilde(*databaseDir) + dbdir := util.ExpandTilde(*databaseDir) db, err := liber.NewDb(dbdir) if err != nil { log.Fatal(err) @@ -237,7 +230,7 @@ func main() { log.SetFlags(log.Ldate | log.Ltime) } - doUpdate(db, expandTilde(*bookDir)) + doUpdate(db, util.ExpandTilde(*bookDir)) } else if *remotesync != "" { doSync(db, *remotesync) } else if *search { diff --git a/util/tilde.go b/util/tilde.go new file mode 100644 index 0000000..73c326e --- /dev/null +++ b/util/tilde.go @@ -0,0 +1,20 @@ +package util + +import ( + "os/user" + "path/filepath" + "strings" +) + +// ExpandTilde replaces an initial "~/" in the given path with the +// current user's home directory. It is intended as a convenience for +// those cases where the provided path does not come from a shell, +// which would otherwise handle the expansion. +func ExpandTilde(path string) string { + if strings.HasPrefix(path, "~/") { + if u, err := user.Current(); err == nil { + return filepath.Join(u.HomeDir, path[2:]) + } + } + return path +} -- GitLab