package Utils import ( "os" "path/filepath" "strings" "io" "fmt" ) func GetCurrentDirectory() (string,error) { dir, err := filepath.Abs(filepath.Dir(os.Args[0])) return strings.Replace(dir, "\\", "/", -1),err } func PathExists(path string) (bool, error) { _, err := os.Stat(path) if err == nil { return true, nil } if os.IsNotExist(err) { return false, nil } return false, err } func CopyFile(dstName, srcName string) (written int64, err error) { src, err := os.Open(srcName) if err != nil { return } defer src.Close() dst, err := os.OpenFile(dstName, os.O_WRONLY|os.O_CREATE, 0644) if err != nil { return } defer dst.Close() return io.Copy(dst, src) } func MkDirIfNotExist(path string) error{ if r,err := PathExists(path); ((!r) || (err != nil)) { fmt.Printf("[StdOutLog][WARNING] Dir '%v' Not Exist! Will Create One.\r\n",path) if err := os.MkdirAll(path,0777);err != nil { fmt.Println("[StdOutLog][Fatal Error] Failed Create Dir '",path,"' : ",err) return err } } return nil } func StripSpaceAndQuote(path string) string{ s := strings.TrimSpace(path) s = strings.Trim(s,`"`) return s } func RestrictQuotedArgs(input []string) []string{ ostr := make([]string,0) inqstr := "" inQuoteFlag := false for i := 0; i < len(input); i++ { if inQuoteFlag{ if input[i][len(input[i])-1] == '"'{ inqstr += input[i][:(len(input[i])-1)] ostr = append(ostr,StripSpaceAndQuote(inqstr)) inqstr = "" inQuoteFlag = false }else{ inqstr += input[i] + " " } }else{ if input[i][0] == '"'{ if input[i][len(input[i])-1] == '"'{ ostr = append(ostr,StripSpaceAndQuote(input[i])) }else{ inQuoteFlag = true inqstr += input[i][1:] + " " } }else{ ostr = append(ostr,StripSpaceAndQuote(input[i])) } } } return ostr }