58 lines
1.3 KiB
Go
58 lines
1.3 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"log/slog"
|
|
"strings"
|
|
)
|
|
|
|
func RunTask(args ...string) error {
|
|
name, args := ParseCommandName(args)
|
|
|
|
// 从参数中解析出命令
|
|
switch name {
|
|
case "", "help":
|
|
return RunTaskHelp(args...)
|
|
case "make":
|
|
return RunTaskMake(args...)
|
|
case "create":
|
|
return RunTaskCreate(args...)
|
|
case "list":
|
|
return RunTaskList(args...)
|
|
case "delete":
|
|
return RunTaskDelete(args...)
|
|
case "info":
|
|
return RunTaskInfo(args...)
|
|
case "upload":
|
|
return RunTaskUpload(args...)
|
|
case "run":
|
|
return RunTaskRun(args...)
|
|
default:
|
|
err := fmt.Errorf(`unknown command "%s"`+"\n"+`Run 'saastool task help' for usage`, name)
|
|
slog.Warn(err.Error())
|
|
return err
|
|
}
|
|
}
|
|
|
|
func RunTaskHelp(args ...string) error {
|
|
fmt.Println(strings.TrimSpace(taskUsage))
|
|
return nil
|
|
}
|
|
|
|
const taskUsage = `
|
|
Usage: saastoola task COMMAND [OPTIONS]
|
|
|
|
Commands:
|
|
make Make file hash for upload task
|
|
create Create a task on server
|
|
list List tasks on server
|
|
run Run a task on server
|
|
delete Delete a task on server
|
|
info Get a task info on server
|
|
upload Upload task's file block to server
|
|
|
|
"help" is the default command.
|
|
|
|
Use "saastool task COMMAND -help" for more information about a command.
|
|
`
|