Add comment and worklog CLI commands
This commit is contained in:
132
cmd/hf/main.go
132
cmd/hf/main.go
@@ -190,6 +190,12 @@ func handleGroup(group help.Group, args []string) {
|
||||
case "propose":
|
||||
handleProposeCommand(sub.Name, remaining)
|
||||
return
|
||||
case "comment":
|
||||
handleCommentCommand(sub.Name, remaining)
|
||||
return
|
||||
case "worklog":
|
||||
handleWorklogCommand(sub.Name, remaining)
|
||||
return
|
||||
case "monitor":
|
||||
handleMonitorCommand(sub.Name, remaining)
|
||||
return
|
||||
@@ -735,6 +741,132 @@ func handleProposeCommand(subCmd string, args []string) {
|
||||
}
|
||||
}
|
||||
|
||||
func handleCommentCommand(subCmd string, args []string) {
|
||||
tokenFlag := ""
|
||||
var filtered []string
|
||||
for i := 0; i < len(args); i++ {
|
||||
switch args[i] {
|
||||
case "--token":
|
||||
if i+1 < len(args) {
|
||||
i++
|
||||
tokenFlag = args[i]
|
||||
}
|
||||
default:
|
||||
filtered = append(filtered, args[i])
|
||||
}
|
||||
}
|
||||
|
||||
switch subCmd {
|
||||
case "add":
|
||||
taskCode, content := "", ""
|
||||
for i := 0; i < len(filtered); i++ {
|
||||
switch filtered[i] {
|
||||
case "--task":
|
||||
if i+1 < len(filtered) {
|
||||
i++
|
||||
taskCode = filtered[i]
|
||||
}
|
||||
case "--content":
|
||||
if i+1 < len(filtered) {
|
||||
i++
|
||||
content = filtered[i]
|
||||
}
|
||||
default:
|
||||
output.Errorf("unknown flag: %s", filtered[i])
|
||||
}
|
||||
}
|
||||
commands.RunCommentAdd(taskCode, content, tokenFlag)
|
||||
case "list":
|
||||
taskCode := ""
|
||||
for i := 0; i < len(filtered); i++ {
|
||||
switch filtered[i] {
|
||||
case "--task":
|
||||
if i+1 < len(filtered) {
|
||||
i++
|
||||
taskCode = filtered[i]
|
||||
}
|
||||
default:
|
||||
output.Errorf("unknown flag: %s", filtered[i])
|
||||
}
|
||||
}
|
||||
commands.RunCommentList(taskCode, tokenFlag)
|
||||
default:
|
||||
output.Errorf("hf comment %s is not implemented yet", subCmd)
|
||||
}
|
||||
}
|
||||
|
||||
func handleWorklogCommand(subCmd string, args []string) {
|
||||
tokenFlag := ""
|
||||
var filtered []string
|
||||
for i := 0; i < len(args); i++ {
|
||||
switch args[i] {
|
||||
case "--token":
|
||||
if i+1 < len(args) {
|
||||
i++
|
||||
tokenFlag = args[i]
|
||||
}
|
||||
default:
|
||||
filtered = append(filtered, args[i])
|
||||
}
|
||||
}
|
||||
|
||||
switch subCmd {
|
||||
case "add":
|
||||
taskCode, desc, date := "", "", ""
|
||||
hours := 0.0
|
||||
for i := 0; i < len(filtered); i++ {
|
||||
switch filtered[i] {
|
||||
case "--task":
|
||||
if i+1 < len(filtered) {
|
||||
i++
|
||||
taskCode = filtered[i]
|
||||
}
|
||||
case "--hours":
|
||||
if i+1 < len(filtered) {
|
||||
i++
|
||||
if _, err := fmt.Sscanf(filtered[i], "%f", &hours); err != nil {
|
||||
output.Error("--hours requires a numeric value")
|
||||
}
|
||||
}
|
||||
case "--desc":
|
||||
if i+1 < len(filtered) {
|
||||
i++
|
||||
desc = filtered[i]
|
||||
}
|
||||
case "--date":
|
||||
if i+1 < len(filtered) {
|
||||
i++
|
||||
date = filtered[i]
|
||||
}
|
||||
default:
|
||||
output.Errorf("unknown flag: %s", filtered[i])
|
||||
}
|
||||
}
|
||||
commands.RunWorklogAdd(taskCode, hours, desc, date, tokenFlag)
|
||||
case "list":
|
||||
taskCode, username := "", ""
|
||||
for i := 0; i < len(filtered); i++ {
|
||||
switch filtered[i] {
|
||||
case "--task":
|
||||
if i+1 < len(filtered) {
|
||||
i++
|
||||
taskCode = filtered[i]
|
||||
}
|
||||
case "--user":
|
||||
if i+1 < len(filtered) {
|
||||
i++
|
||||
username = filtered[i]
|
||||
}
|
||||
default:
|
||||
output.Errorf("unknown flag: %s", filtered[i])
|
||||
}
|
||||
}
|
||||
commands.RunWorklogList(taskCode, username, tokenFlag)
|
||||
default:
|
||||
output.Errorf("hf worklog %s is not implemented yet", subCmd)
|
||||
}
|
||||
}
|
||||
|
||||
func handleMonitorCommand(subCmd string, args []string) {
|
||||
tokenFlag := ""
|
||||
var filtered []string
|
||||
|
||||
Reference in New Issue
Block a user