Add .bat to script names on Windows

This commit is contained in:
Gilbert Chen
2017-08-31 12:25:31 -04:00
parent 37ebbc4736
commit d7fdb5fe7f

View File

@@ -12,6 +12,7 @@ import (
"regexp" "regexp"
"strings" "strings"
"strconv" "strconv"
"runtime"
"os/exec" "os/exec"
"os/signal" "os/signal"
"encoding/json" "encoding/json"
@@ -147,18 +148,27 @@ func runScript(context *cli.Context, storageName string, phase string) bool {
preferencePath := duplicacy.GetDuplicacyPreferencePath() preferencePath := duplicacy.GetDuplicacyPreferencePath()
scriptDir, _ := filepath.Abs(path.Join(preferencePath, "scripts")) scriptDir, _ := filepath.Abs(path.Join(preferencePath, "scripts"))
scriptName := phase + "-" + context.Command.Name scriptNames := []string { phase + "-" + context.Command.Name,
storageName + "-" + phase + "-" + context.Command.Name }
script := path.Join(scriptDir, scriptName) script := ""
if _, err := os.Stat(script); err != nil { for _, scriptName := range scriptNames {
scriptName = storageName + "-" + scriptName
script = path.Join(scriptDir, scriptName) script = path.Join(scriptDir, scriptName)
if _, err = os.Stat(script); err != nil { if runtime.GOOS == "windows" {
return false script += ".bat"
}
if _, err := os.Stat(script); err == nil {
break
} else {
script = ""
} }
} }
duplicacy.LOG_INFO("SCRIPT_RUN", "Running %s script", scriptName) if script == "" {
return false
}
duplicacy.LOG_INFO("SCRIPT_RUN", "Running script %s", script)
output, err := exec.Command(script, os.Args...).CombinedOutput() output, err := exec.Command(script, os.Args...).CombinedOutput()
for _, line := range strings.Split(string(output), "\n") { for _, line := range strings.Split(string(output), "\n") {