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...)