@@ -24,7 +24,7 @@ const (
24
24
25
25
func main () {
26
26
log .SetFlags (log .Lshortfile )
27
- buildMode := parseFlags ()
27
+ buildMode , tags := parseFlags ()
28
28
cwd , err := os .Getwd ()
29
29
if err != nil {
30
30
log .Fatal ("could not get working directory:" , err )
@@ -43,7 +43,7 @@ func main() {
43
43
const (
44
44
goBin = "go"
45
45
goBuild = "build"
46
- maxArgs = 3
46
+ maxArgs = 4
47
47
)
48
48
goArgs := make ([]string , 1 , maxArgs )
49
49
goArgs [0 ] = goBuild
@@ -58,6 +58,9 @@ func main() {
58
58
)
59
59
goArgs = append (goArgs , buildTrimFlag , linkerReleaseFlags )
60
60
}
61
+ if tags != "" {
62
+ goArgs = append (goArgs , "-tags=" + tags )
63
+ }
61
64
goArgs = append (goArgs , pkgFSPath )
62
65
cmd := exec .Command (goBin , goArgs ... )
63
66
cmd .Stdin = os .Stdin
@@ -73,7 +76,7 @@ func main() {
73
76
}
74
77
}
75
78
76
- func parseFlags () buildMode {
79
+ func parseFlags () ( buildMode , string ) {
77
80
const (
78
81
regularUsage = "standard go build with no compiler or linker flags when building"
79
82
releaseUsage = "remove extra debugging data when building"
@@ -98,11 +101,16 @@ func parseFlags() buildMode {
98
101
mode , err = generic .ParseEnum (regular , debug , arg )
99
102
return
100
103
})
101
- flagSet .VisitAll (func (f * flag.Flag ) {
102
- if f .Name == modeName {
103
- f .DefValue = mode .String ()
104
- }
105
- })
104
+ flagSet .Lookup (modeName ).DefValue = mode .String ()
105
+ var tags string
106
+ const (
107
+ tagName = "tags"
108
+ tagsUsage = "a comma-separated list of build tags" +
109
+ "\n supported in addition to Go's standard tags:" +
110
+ "\n nofuse - build without FUSE host support" +
111
+ "\n noipfs - build without IPFS guest support"
112
+ )
113
+ flagSet .StringVar (& tags , tagName , "" , tagsUsage )
106
114
if err := flagSet .Parse (os .Args [1 :]); err != nil {
107
115
log .Fatal (err )
108
116
}
@@ -115,7 +123,7 @@ func parseFlags() buildMode {
115
123
output .String (),
116
124
)
117
125
}
118
- return mode
126
+ return mode , tags
119
127
}
120
128
121
129
func commandName () string {
0 commit comments