80 lines
1.4 KiB
Go
80 lines
1.4 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"os"
|
|
"os/exec"
|
|
"strings"
|
|
)
|
|
|
|
const (
|
|
star = "star"
|
|
info = "info"
|
|
approve = "approve"
|
|
revoke = "revoke"
|
|
comment = "comment"
|
|
overviewComment = "overviewComment"
|
|
deleteComment = "deleteComment"
|
|
editComment = "editComment"
|
|
reply = "reply"
|
|
listDiscussions = "listDiscussions"
|
|
)
|
|
|
|
func main() {
|
|
|
|
branchName, err := getCurrentBranch()
|
|
errCheck(err)
|
|
if branchName == "main" || branchName == "master" {
|
|
return
|
|
}
|
|
|
|
var c Client
|
|
errCheck(c.Init(branchName))
|
|
|
|
switch c.command {
|
|
case star:
|
|
errCheck(c.Star())
|
|
case approve:
|
|
errCheck(c.Approve())
|
|
case revoke:
|
|
errCheck(c.Revoke())
|
|
case comment:
|
|
errCheck(c.Comment())
|
|
case deleteComment:
|
|
errCheck(c.DeleteComment())
|
|
case editComment:
|
|
errCheck(c.EditComment())
|
|
case overviewComment:
|
|
errCheck(c.OverviewComment())
|
|
case info:
|
|
errCheck(c.Info())
|
|
case reply:
|
|
errCheck(c.Reply())
|
|
case listDiscussions:
|
|
errCheck(c.ListDiscussions())
|
|
default:
|
|
c.Usage("command")
|
|
}
|
|
}
|
|
|
|
func errCheck(err error) {
|
|
if err != nil {
|
|
log.Fatalf("Failure: %s", err)
|
|
os.Exit(1)
|
|
}
|
|
}
|
|
|
|
/* Gets the current branch */
|
|
func getCurrentBranch() (res string, e error) {
|
|
gitCmd := exec.Command("git", "rev-parse", "--abbrev-ref", "HEAD")
|
|
|
|
output, err := gitCmd.Output()
|
|
if err != nil {
|
|
return "", fmt.Errorf("Error running git rev-parse: %w", err)
|
|
}
|
|
|
|
return strings.TrimSpace(string(output)), nil
|
|
|
|
}
|