forked from cross-cpm/xrepo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.go
67 lines (57 loc) · 1.12 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
package main
import (
"fmt"
"os"
)
func dumpUsage() {
fmt.Print(`usage: xrepo <command> <args>
commands:
checkout (co) checkout every repo to current revision
pull update every repo to newest revision
push push work revision to remote repo
status show repo status
rev list list work revision of every repo
rev save write work revision to externals file
For additional information, see https://github.com/cross-cpm/xrepo.git
`)
}
func main() {
//log.SetFlags(0)
var (
extfile = "externals.yaml"
cmd string
subcmd string
)
if _, err := os.Stat(extfile); os.IsNotExist(err) {
extfile = "externals.json"
}
if len(os.Args) > 1 {
cmd = os.Args[1]
}
if len(os.Args) > 2 {
subcmd = os.Args[2]
}
switch cmd {
case "checkout":
cliCheckout(extfile)
case "co":
cliCheckout(extfile)
case "pull":
cliPull(extfile)
case "status":
cliStatus(extfile)
case "push":
cliPush(extfile)
case "rev":
switch subcmd {
case "list":
cliRevList(extfile)
case "save":
cliRevSave(extfile)
default:
dumpUsage()
}
default:
dumpUsage()
}
}