diff options
Diffstat (limited to 'ethutil/path.go')
-rw-r--r-- | ethutil/path.go | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/ethutil/path.go b/ethutil/path.go new file mode 100644 index 000000000..cfbc38950 --- /dev/null +++ b/ethutil/path.go @@ -0,0 +1,60 @@ +package ethutil + +import ( + "io/ioutil" + "os" + "os/user" + "strings" +) + +func ExpandHomePath(p string) (path string) { + path = p + + // Check in case of paths like "/something/~/something/" + if path[:2] == "~/" { + usr, _ := user.Current() + dir := usr.HomeDir + + path = strings.Replace(p, "~", dir, 1) + } + + return +} + +func FileExist(filePath string) bool { + _, err := os.Stat(filePath) + if err != nil && os.IsNotExist(err) { + return false + } + + return true +} + +func ReadAllFile(filePath string) (string, error) { + file, err := os.Open(filePath) + if err != nil { + return "", err + } + + data, err := ioutil.ReadAll(file) + if err != nil { + return "", err + } + + return string(data), nil +} + +func WriteFile(filePath string, content []byte) error { + fh, err := os.OpenFile(filePath, os.O_TRUNC|os.O_RDWR|os.O_CREATE, os.ModePerm) + if err != nil { + return err + } + defer fh.Close() + + _, err = fh.Write(content) + if err != nil { + return err + } + + return nil +} |