1
0
Fork 0
secondly/file_ops.go

55 lines
872 B
Go
Raw Normal View History

2015-08-29 12:41:20 +00:00
package secondly
2015-08-29 10:31:56 +00:00
import (
"errors"
"io/ioutil"
"os"
"path"
)
const (
dirPerm = 0755
filePerm = 0633
)
2015-08-29 10:51:28 +00:00
var errFileNotExist = errors.New("Config file does not exist")
2015-08-29 10:31:56 +00:00
func readFile(file string) ([]byte, error) {
if ok := fileExist(file); ok {
return ioutil.ReadFile(file)
}
2015-08-29 10:51:28 +00:00
return nil, errFileNotExist
2015-08-29 10:31:56 +00:00
}
func writeFile(file string, body []byte) error {
var err error
if ok := fileExist(file); !ok {
if err = mkdirp(file); err != nil {
return err
}
2015-08-29 16:50:22 +00:00
}
2015-08-29 16:58:24 +00:00
var fd *os.File
2015-08-29 16:50:22 +00:00
if fd, err = os.OpenFile(file, os.O_TRUNC|os.O_WRONLY|os.O_CREATE, filePerm); err != nil {
2015-08-29 10:31:56 +00:00
return err
}
defer fd.Close()
if _, err := fd.Write(body); err != nil {
return err
}
return nil
}
func fileExist(file string) bool {
_, err := os.Stat(file)
return (err == nil)
}
func mkdirp(file string) error {
dir := path.Dir(file)
return os.MkdirAll(dir, dirPerm)
}