plugeth/common/path.go

69 lines
1.1 KiB
Go
Raw Normal View History

2015-03-16 10:27:38 +00:00
package common
2014-07-01 18:08:18 +00:00
import (
2014-07-26 09:24:44 +00:00
"io/ioutil"
"os"
2014-07-01 18:08:18 +00:00
"os/user"
2015-01-04 13:20:16 +00:00
"path"
2014-07-01 18:08:18 +00:00
"strings"
)
func ExpandHomePath(p string) (path string) {
path = p
// Check in case of paths like "/something/~/something/"
if len(path) > 1 && path[:2] == "~/" {
2014-07-01 18:08:18 +00:00
usr, _ := user.Current()
dir := usr.HomeDir
path = strings.Replace(p, "~", dir, 1)
}
return
}
2014-07-26 09:24:44 +00:00
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 {
2014-09-17 13:57:07 +00:00
fh, err := os.OpenFile(filePath, os.O_TRUNC|os.O_RDWR|os.O_CREATE, os.ModePerm)
2014-07-26 09:24:44 +00:00
if err != nil {
return err
}
defer fh.Close()
_, err = fh.Write(content)
if err != nil {
return err
}
return nil
}
2015-01-04 13:20:16 +00:00
func AbsolutePath(Datadir string, filename string) string {
if path.IsAbs(filename) {
return filename
}
return path.Join(Datadir, filename)
}