@cryptotaxi247 / kubo / commits / 4e1c413e8

move tilde expnasion to util.

Juan Batiz-Benet committed Jul 5, 2014 at 17:34 UTC 4e1c413e8236af3f3b9d06a7c023d257b816597c
2 files changed +28 -12
config/config.go
+12 -12
@@ -2,8 +2,7 @@ package config
2
3 import (
4 "os"
5 - "os/user"
6 - "strings"
5 + u "github.com/jbenet/go-ipfs/util"
6 )
7
8 type Identity struct {
@@ -35,15 +34,10 @@ func LoadConfig(filename string) (*Config, error) {
34 filename = defaultConfigFilePath
35 }
36
38 - // expand ~/
39 - if strings.HasPrefix(filename, "~/") {
40 - usr, err := user.Current()
41 - if err != nil {
42 - return nil, err
43 - }
44 -
45 - dir := usr.HomeDir + "/"
46 - filename = strings.Replace(filename, "~/", dir, 1)
37 + // tilde expansion on config file
38 + filename, err := u.TildeExpansion(filename)
39 + if err != nil {
40 + return nil, err
41 }
42
43 // if nothing is there, write first conifg file.
@@ -52,7 +46,13 @@ func LoadConfig(filename string) (*Config, error) {
46 }
47
48 var cfg Config
55 - err := ReadConfigFile(filename, &cfg)
49 + err = ReadConfigFile(filename, &cfg)
50 + if err != nil {
51 + return nil, err
52 + }
53 +
54 + // tilde expansion on datastore path
55 + cfg.Datastore.Path, err = u.TildeExpansion(cfg.Datastore.Path)
56 if err != nil {
57 return nil, err
58 }
util/util.go
+16
@@ -4,6 +4,8 @@ import (
4 "fmt"
5 mh "github.com/jbenet/go-multihash"
6 "os"
7 + "os/user"
8 + "strings"
9 )
10
11 var Debug bool
@@ -17,6 +19,20 @@ func Hash(data []byte) (mh.Multihash, error) {
19 return mh.Sum(data, mh.SHA2_256, -1)
20 }
21
22 +// tilde expansion
23 +func TildeExpansion(filename string) (string, error) {
24 + if strings.HasPrefix(filename, "~/") {
25 + usr, err := user.Current()
26 + if err != nil {
27 + return "", err
28 + }
29 +
30 + dir := usr.HomeDir + "/"
31 + filename = strings.Replace(filename, "~/", dir, 1)
32 + }
33 + return filename, nil
34 +}
35 +
36 // Shorthand printing functions.
37 func PErr(format string, a ...interface{}) {
38 fmt.Fprintf(os.Stderr, format, a...)