1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- 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
- }
|