double dash
This commit is contained in:
27
main.go
27
main.go
@@ -47,13 +47,15 @@ type Script struct {
|
|||||||
wg sync.WaitGroup
|
wg sync.WaitGroup
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewCommand(scriptName string) *exec.Cmd {
|
func NewCommand(scriptName string, args ...string) *exec.Cmd {
|
||||||
if script, ok := config.Scripts[scriptName]; ok {
|
if script, ok := config.Scripts[scriptName]; ok {
|
||||||
|
fullCmd := strings.Join(append([]string{script}, args...), " ")
|
||||||
|
|
||||||
var cmd *exec.Cmd
|
var cmd *exec.Cmd
|
||||||
if runtime.GOOS == "windows" {
|
if runtime.GOOS == "windows" {
|
||||||
cmd = exec.Command("cmd", "/C", script)
|
cmd = exec.Command("cmd", "/C", fullCmd)
|
||||||
} else {
|
} else {
|
||||||
cmd = exec.Command("sh", "-c", script)
|
cmd = exec.Command("sh", "-c", fullCmd)
|
||||||
}
|
}
|
||||||
|
|
||||||
cmd.SysProcAttr = &syscall.SysProcAttr{
|
cmd.SysProcAttr = &syscall.SysProcAttr{
|
||||||
@@ -70,8 +72,8 @@ func NewCommand(scriptName string) *exec.Cmd {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewScript(scriptName string) *Script {
|
func NewScript(scriptName string, args ...string) *Script {
|
||||||
command := NewCommand(scriptName)
|
command := NewCommand(scriptName, args...)
|
||||||
|
|
||||||
if command == nil {
|
if command == nil {
|
||||||
log.Fatal("script not found")
|
log.Fatal("script not found")
|
||||||
@@ -224,15 +226,22 @@ func main() {
|
|||||||
|
|
||||||
var command string
|
var command string
|
||||||
var commandIndex int
|
var commandIndex int
|
||||||
|
var commandArgs []string
|
||||||
|
|
||||||
for i, arg := range os.Args[1:] {
|
for i, arg := range os.Args[1:] {
|
||||||
|
if arg == "--" {
|
||||||
|
commandArgs = os.Args[i+2:]
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
if strings.HasPrefix(arg, "-") {
|
if strings.HasPrefix(arg, "-") {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
command = arg
|
if command == "" {
|
||||||
commandIndex = i
|
command = arg
|
||||||
break
|
commandIndex = i
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
watchMode := false
|
watchMode := false
|
||||||
@@ -267,7 +276,7 @@ func main() {
|
|||||||
scriptName = command
|
scriptName = command
|
||||||
}
|
}
|
||||||
|
|
||||||
script = NewScript(scriptName)
|
script = NewScript(scriptName, commandArgs...)
|
||||||
|
|
||||||
if err := script.Start(); err != nil {
|
if err := script.Start(); err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
|
|||||||
Reference in New Issue
Block a user