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  }