change to normal folder seek
This commit is contained in:
37
main.go
37
main.go
@@ -15,11 +15,19 @@ import (
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
var runners = GetScriptsRunners()
|
||||
var baseDir string
|
||||
var runners []ScriptRunner
|
||||
|
||||
var silent, verbose, listModules, listRunners bool
|
||||
|
||||
func init() {
|
||||
var err error
|
||||
baseDir, err = exeDir()
|
||||
if err != nil {
|
||||
log.Error("Unable to determine executable folder, falling back to current directory:", err)
|
||||
baseDir = "."
|
||||
}
|
||||
|
||||
rootCmd.PersistentFlags().BoolVar(&silent, "silent", false, "suppress all output")
|
||||
rootCmd.PersistentFlags().BoolVar(&verbose, "verbose", false, "enable debug output")
|
||||
rootCmd.PersistentFlags().BoolVar(&listModules, "list", false, "list configured applications and modules")
|
||||
@@ -30,12 +38,15 @@ func init() {
|
||||
initLogger(silent, verbose && !silent)
|
||||
}
|
||||
|
||||
if !(folderExists(("./config/"))) {
|
||||
configPath := filepath.Join(baseDir, "config")
|
||||
if !folderExists(configPath) {
|
||||
log.Info("No config folder found, creating new...")
|
||||
if err := os.Mkdir("./config/", 0750); err != nil {
|
||||
if err := os.Mkdir(configPath, 0750); err != nil {
|
||||
log.Fatalln("Failed to create config folder")
|
||||
}
|
||||
}
|
||||
|
||||
runners = GetScriptsRunners()
|
||||
}
|
||||
|
||||
func initLogger(silent bool, verbose bool) {
|
||||
@@ -43,6 +54,26 @@ func initLogger(silent bool, verbose bool) {
|
||||
verboseMode = verbose
|
||||
}
|
||||
|
||||
func exeDir() (string, error) {
|
||||
exe, err := os.Executable()
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
exe, err = filepath.EvalSymlinks(exe)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return filepath.Dir(exe), nil
|
||||
}
|
||||
|
||||
func configFolder() string {
|
||||
return filepath.Join(baseDir, "config")
|
||||
}
|
||||
|
||||
func runnersFolder() string {
|
||||
return filepath.Join(baseDir, "runners")
|
||||
}
|
||||
|
||||
var rootCmd = &cobra.Command{
|
||||
Use: "dtool [application] [action] [module]",
|
||||
Short: "DengiTool",
|
||||
|
||||
Reference in New Issue
Block a user