gopkg.in/hugelgupf/u-root.v9@v9.0.0-20180831063832-3f6f1057f09b/tools/makebb/makebb.go (about) 1 // Copyright 2015-2018 the u-root Authors. All rights reserved 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 // makebb compiles many Go commands into one bb-style binary. 6 package main 7 8 import ( 9 "flag" 10 "log" 11 "path/filepath" 12 13 "github.com/u-root/u-root/pkg/golang" 14 "github.com/u-root/u-root/pkg/uroot" 15 "github.com/u-root/u-root/pkg/uroot/builder/bb" 16 ) 17 18 var outputPath = flag.String("o", "bb", "Path to busybox binary") 19 20 func main() { 21 flag.Parse() 22 23 env := golang.Default() 24 if env.CgoEnabled { 25 log.Printf("Disabling CGO for u-root...") 26 env.CgoEnabled = false 27 } 28 log.Printf("Build environment: %s", env) 29 30 pkgs := flag.Args() 31 if len(pkgs) == 0 { 32 pkgs = []string{"github.com/u-root/u-root/cmds/*"} 33 } 34 pkgs, err := uroot.ResolvePackagePaths(env, pkgs) 35 if err != nil { 36 log.Fatal(err) 37 } 38 39 o, err := filepath.Abs(*outputPath) 40 if err != nil { 41 log.Fatal(err) 42 } 43 44 if err := bb.BuildBusybox(env, pkgs, o); err != nil { 45 log.Fatal(err) 46 } 47 }