main.go (1034B)
1 package main 2 3 import ( 4 "fmt" 5 "os" 6 7 "github.com/exedev/git-jci/internal/jci" 8 ) 9 10 func main() { 11 if len(os.Args) < 2 { 12 printUsage() 13 os.Exit(1) 14 } 15 16 cmd := os.Args[1] 17 args := os.Args[2:] 18 19 var err error 20 switch cmd { 21 case "run": 22 err = jci.Run(args) 23 case "web": 24 err = jci.Web(args) 25 case "push": 26 err = jci.Push(args) 27 case "pull": 28 err = jci.Pull(args) 29 case "prune": 30 err = jci.Prune(args) 31 case "help", "-h", "--help": 32 printUsage() 33 return 34 default: 35 fmt.Fprintf(os.Stderr, "unknown command: %s\n", cmd) 36 printUsage() 37 os.Exit(1) 38 } 39 40 if err != nil { 41 fmt.Fprintf(os.Stderr, "error: %v\n", err) 42 os.Exit(1) 43 } 44 } 45 46 func printUsage() { 47 fmt.Println(`git-jci - Local-first CI system stored in git 48 49 Usage: git jci <command> [options] 50 51 Commands: 52 run Run CI for the current commit and store results 53 web Start a web server to view CI results 54 push Push CI results to remote 55 pull Pull CI results from remote 56 prune Remove old CI results 57 58 CI results are stored in refs/jci/<commit> namespace.`) 59 }