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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
// Copyright 2017-2025 WIT.COM Inc. All rights reserved.
// Use of this source code is governed by the GPL 3.0
package main
import (
"go.wit.com/lib/gui/shell"
"go.wit.com/log"
)
func doSubcommand() (string, error) {
var s string
var err error
log.Info("Starting forge with subcommand:", me.argv.Cmd)
//// start standard argv subcommand processing here ////
if argv.Dev != nil {
// first find the repos or gopaths to operate on
s, err = doDev()
}
if argv.Commit != nil {
s, err = doCommit()
}
if argv.Config != nil {
s, err = doConfig()
}
if argv.Dev != nil {
s, err = doDev()
}
if argv.Fixer != nil {
s, err = doFix()
}
if argv.Clean != nil {
s, err = doClean()
}
if argv.Mode != nil {
s, err = doMode()
}
if argv.Normal != nil {
if me.forge.IsModeNormal() {
s, err = doNormalAll()
} else {
// attempt to switch into Normal mode
s, err = doNormalAttempt()
}
}
if argv.Merge != nil {
s, err = doMerge()
}
if argv.Add != nil {
doAdd()
}
if argv.Pull != nil {
doPull()
}
if argv.Show != nil {
s, err = doShow()
}
if argv.Patch != nil {
s, err = doPatch()
}
if argv.Generate != nil {
s, err = doGenerate()
}
if argv.Whatchanged != nil {
// this might be deprecated by the git devs
// I put it here because of finger memory and it's nice
// for command line completion
r := shell.RunRealtime([]string{"bash", "-c", "git log"})
s = "git whatchanged is now: todo"
err = r.Error
}
if argv.Rebuild != nil {
// attempts to download all the sources
// and binaries needed to build forge
s, err = doRebuild()
}
if argv.Verify != nil {
s, err = doVerify()
}
//// end standard argv subcommand processing here ////
// if the gui starts, it doesn't yet go to the end normally
if argv.Gui != nil {
me.myGui.Start() // loads the GUI toolkit
doGui() // start making our forge GUI
debug() // sits here forever
}
return s, err
}
|