Jaypore CI

> Jaypore CI: Minimal, Offline, Local CI system.
Log | Files | Refs | README

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 }