github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/cmd/juju/main.go (about)

     1  // Copyright 2012, 2013 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package main
     5  
     6  import (
     7  	"math/rand"
     8  	"os"
     9  	"time"
    10  
    11  	"github.com/juju/cmd"
    12  	"github.com/juju/loggo"
    13  
    14  	"github.com/juju/juju/cmd/juju/commands"
    15  	components "github.com/juju/juju/component/all"
    16  	// Import the providers.
    17  	_ "github.com/juju/juju/provider/all"
    18  )
    19  
    20  var log = loggo.GetLogger("juju.cmd.juju")
    21  
    22  func init() {
    23  	rand.Seed(time.Now().UTC().UnixNano())
    24  }
    25  
    26  func init() {
    27  	if err := components.RegisterForClient(); err != nil {
    28  		log.Criticalf("unable to register client components: %v", err)
    29  		os.Exit(1)
    30  	}
    31  }
    32  
    33  func main() {
    34  	_, err := loggo.ReplaceDefaultWriter(cmd.NewWarningWriter(os.Stderr))
    35  	if err != nil {
    36  		panic(err)
    37  	}
    38  	os.Exit(commands.Main(os.Args))
    39  }