github.com/u-root/u-root@v7.0.1-0.20200915234505-ad7babab0a8e+incompatible/pkg/bb/bbmain/cmd/main.go (about)

     1  // Copyright 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  // Package main is the busybox main.go template.
     6  package main
     7  
     8  import (
     9  	"log"
    10  	"os"
    11  	"path/filepath"
    12  
    13  	"github.com/u-root/u-root/pkg/bb/bbmain"
    14  	"github.com/u-root/u-root/pkg/upath"
    15  )
    16  
    17  func run() {
    18  	name := filepath.Base(os.Args[0])
    19  	if err := bbmain.Run(name); err != nil {
    20  		log.Fatalf("%s: %v", name, err)
    21  	}
    22  }
    23  
    24  func main() {
    25  	os.Args[0] = upath.ResolveUntilLastSymlink(os.Args[0])
    26  
    27  	run()
    28  }
    29  
    30  func init() {
    31  	m := func() {
    32  		if len(os.Args) == 1 {
    33  			log.Fatalf("Invalid busybox command: %q", os.Args)
    34  		}
    35  		// Use argv[1] as the name.
    36  		os.Args = os.Args[1:]
    37  		run()
    38  	}
    39  	bbmain.Register("bb", bbmain.Noop, bbmain.ListCmds)
    40  	bbmain.RegisterDefault(bbmain.Noop, m)
    41  }