@@ -166,6 +166,7 @@ the new filter is available in the Regolith.
166166`
167167
168168func main () {
169+
169170 // Schedule error handling
170171 var err error
171172 defer func () {
@@ -220,14 +221,19 @@ func main() {
220221 }
221222 subcommands := make ([]* cobra.Command , 0 )
222223
224+ // Add --env flag to root command
225+ var envFile string
226+ rootCmd .PersistentFlags ().StringVar (& envFile , "env" , "" , "Path to a custom .env file to load" )
227+
223228 var force bool
224229 // regolith init
225230 cmdInit := & cobra.Command {
226231 Use : "init" ,
227232 Short : "Initializes a Regolith project in current directory" ,
228233 Long : regolithInitDesc ,
229234 Run : func (cmd * cobra.Command , _ []string ) {
230- err = regolith .Init (burrito .PrintStackTrace , force )
235+ env , _ := cmd .Flags ().GetString ("env" )
236+ err = regolith .Init (burrito .PrintStackTrace , force , env )
231237 },
232238 }
233239 cmdInit .Flags ().BoolVarP (
@@ -249,7 +255,8 @@ func main() {
249255 if cmd .Flags ().Lookup ("profile" ).Changed && len (profiles ) == 0 {
250256 profiles = append (profiles , "default" )
251257 }
252- err = regolith .Install (filters , force || update , resolverRefresh , filterRefresh , profiles , burrito .PrintStackTrace )
258+ env , _ := cmd .Flags ().GetString ("env" )
259+ err = regolith .Install (filters , force || update , resolverRefresh , filterRefresh , profiles , burrito .PrintStackTrace , env )
253260 },
254261 }
255262 cmdInstall .Flags ().BoolVarP (
@@ -270,7 +277,8 @@ func main() {
270277 Short : "Installs all nonexistent or outdated filters defined in filterDefinitions list" ,
271278 Long : regolithInstallAllDesc ,
272279 Run : func (cmd * cobra.Command , _ []string ) {
273- err = regolith .InstallAll (force , update , burrito .PrintStackTrace , filterRefresh )
280+ env , _ := cmd .Flags ().GetString ("env" )
281+ err = regolith .InstallAll (force , update , burrito .PrintStackTrace , filterRefresh , env )
274282 },
275283 }
276284 cmdInstallAll .Flags ().BoolVarP (
@@ -288,10 +296,13 @@ func main() {
288296 Long : regolithRunDesc ,
289297 Run : func (cmd * cobra.Command , args []string ) {
290298 var profile string
299+ var extraFilterArgs []string
291300 if len (args ) != 0 {
292301 profile = args [0 ]
302+ extraFilterArgs = args [1 :]
293303 }
294- err = regolith .Run (profile , burrito .PrintStackTrace )
304+ env , _ := cmd .Flags ().GetString ("env" )
305+ err = regolith .Run (profile , extraFilterArgs , burrito .PrintStackTrace , env )
295306 },
296307 }
297308 subcommands = append (subcommands , cmdRun )
@@ -303,10 +314,13 @@ func main() {
303314 Long : regolithWatchDesc ,
304315 Run : func (cmd * cobra.Command , args []string ) {
305316 var profile string
317+ var extraFilterArgs []string
306318 if len (args ) != 0 {
307319 profile = args [0 ]
320+ extraFilterArgs = args [1 :]
308321 }
309- err = regolith .Watch (profile , burrito .PrintStackTrace )
322+ env , _ := cmd .Flags ().GetString ("env" )
323+ err = regolith .Watch (profile , extraFilterArgs , burrito .PrintStackTrace , env )
310324 },
311325 }
312326 subcommands = append (subcommands , cmdWatch )
@@ -323,7 +337,8 @@ func main() {
323337 }
324338 filter := args [0 ]
325339 filterArgs := args [1 :] // First arg is the filter name
326- err = regolith .ApplyFilter (filter , filterArgs , burrito .PrintStackTrace )
340+ env , _ := cmd .Flags ().GetString ("env" )
341+ err = regolith .ApplyFilter (filter , filterArgs , burrito .PrintStackTrace , env )
327342 },
328343 }
329344 subcommands = append (subcommands , cmdApplyFilter )
@@ -334,13 +349,12 @@ func main() {
334349 Short : " Print or modify the user configuration." ,
335350 Long : regolithConfigDesc ,
336351 Run : func (cmd * cobra.Command , args []string ) {
337- regolith .InitLogging (burrito .PrintStackTrace )
338- defer regolith .ShutdownLogging ()
339352 full , _ := cmd .Flags ().GetBool ("full" )
340353 delete , _ := cmd .Flags ().GetBool ("delete" )
341354 append , _ := cmd .Flags ().GetBool ("append" )
342355 index , _ := cmd .Flags ().GetInt ("index" )
343- err = regolith .ManageConfig (burrito .PrintStackTrace , full , delete , append , index , args )
356+ env , _ := cmd .Flags ().GetString ("env" )
357+ err = regolith .ManageConfig (burrito .PrintStackTrace , full , delete , append , index , args , env )
344358 },
345359 }
346360 cmdConfig .Flags ().BoolP ("full" , "f" , false , "When printing, prints the full configuration including default values." )
@@ -356,7 +370,8 @@ func main() {
356370 Short : "Cleans Regolith cache" ,
357371 Long : regolithCleanDesc ,
358372 Run : func (cmd * cobra.Command , _ []string ) {
359- err = regolith .Clean (burrito .PrintStackTrace , userCache , filterCache )
373+ env , _ := cmd .Flags ().GetString ("env" )
374+ err = regolith .Clean (burrito .PrintStackTrace , userCache , filterCache , env )
360375 },
361376 }
362377 cmdClean .Flags ().BoolVarP (
@@ -373,7 +388,8 @@ func main() {
373388 Short : "Updates cached resolver repositories" ,
374389 Long : regolithUpdateResolversDesc ,
375390 Run : func (cmd * cobra.Command , _ []string ) {
376- err = regolith .UpdateResolvers (burrito .PrintStackTrace )
391+ env , _ := cmd .Flags ().GetString ("env" )
392+ err = regolith .UpdateResolvers (burrito .PrintStackTrace , env )
377393 },
378394 }
379395 subcommands = append (subcommands , cmdUpdateResolvers )
0 commit comments