Files
gitlab.nvim/cmd/main.go
2023-04-23 17:21:13 -04:00

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
}