mirror of
https://github.com/mickael-kerjean/filestash.git
synced 2025-10-29 00:55:51 +08:00
52 lines
828 B
Go
52 lines
828 B
Go
package common
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"strings"
|
|
)
|
|
|
|
var MOCK_CURRENT_DIR string
|
|
|
|
func GetCurrentDir() string {
|
|
if MOCK_CURRENT_DIR != "" {
|
|
return MOCK_CURRENT_DIR
|
|
}
|
|
ex, _ := os.Executable()
|
|
return filepath.Dir(ex)
|
|
}
|
|
|
|
func GetAbsolutePath(p string) string {
|
|
return filepath.Join(GetCurrentDir(), p)
|
|
}
|
|
|
|
func IsDirectory(path string) bool {
|
|
if path == "" {
|
|
return false
|
|
}
|
|
if path[len(path) - 1:] != "/" {
|
|
return false
|
|
}
|
|
return true
|
|
}
|
|
|
|
/*
|
|
* Join 2 path together, result has a file
|
|
*/
|
|
func JoinPath(base, file string) string {
|
|
filePath := filepath.Join(base, file)
|
|
if strings.HasPrefix(filePath, base) == false {
|
|
return base
|
|
}
|
|
return filePath
|
|
}
|
|
|
|
func EnforceDirectory(path string) string {
|
|
if path == "" {
|
|
return "/"
|
|
} else if path[len(path) - 1:] == "/" {
|
|
return path
|
|
}
|
|
return path + "/"
|
|
}
|