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