github.com/jonasnick/go-ethereum@v0.7.12-0.20150216215225-22176f05d387/ethutil/path.go (about) 1 package ethutil 2 3 import ( 4 "io/ioutil" 5 "os" 6 "os/user" 7 "path" 8 "strings" 9 ) 10 11 func ExpandHomePath(p string) (path string) { 12 path = p 13 14 // Check in case of paths like "/something/~/something/" 15 if len(path) > 1 && path[:2] == "~/" { 16 usr, _ := user.Current() 17 dir := usr.HomeDir 18 19 path = strings.Replace(p, "~", dir, 1) 20 } 21 22 return 23 } 24 25 func FileExist(filePath string) bool { 26 _, err := os.Stat(filePath) 27 if err != nil && os.IsNotExist(err) { 28 return false 29 } 30 31 return true 32 } 33 34 func ReadAllFile(filePath string) (string, error) { 35 file, err := os.Open(filePath) 36 if err != nil { 37 return "", err 38 } 39 40 data, err := ioutil.ReadAll(file) 41 if err != nil { 42 return "", err 43 } 44 45 return string(data), nil 46 } 47 48 func WriteFile(filePath string, content []byte) error { 49 fh, err := os.OpenFile(filePath, os.O_TRUNC|os.O_RDWR|os.O_CREATE, os.ModePerm) 50 if err != nil { 51 return err 52 } 53 defer fh.Close() 54 55 _, err = fh.Write(content) 56 if err != nil { 57 return err 58 } 59 60 return nil 61 } 62 63 func AbsolutePath(Datadir string, filename string) string { 64 if path.IsAbs(filename) { 65 return filename 66 } 67 return path.Join(Datadir, filename) 68 }