69 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package ethutil
 | |
| 
 | |
| import (
 | |
| 	"io/ioutil"
 | |
| 	"os"
 | |
| 	"os/user"
 | |
| 	"path"
 | |
| 	"strings"
 | |
| )
 | |
| 
 | |
| func ExpandHomePath(p string) (path string) {
 | |
| 	path = p
 | |
| 
 | |
| 	// Check in case of paths like "/something/~/something/"
 | |
| 	if len(path) > 1 && 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
 | |
| }
 | |
| 
 | |
| func AbsolutePath(Datadir string, filename string) string {
 | |
| 	if path.IsAbs(filename) {
 | |
| 		return filename
 | |
| 	}
 | |
| 	return path.Join(Datadir, filename)
 | |
| }
 |