github.com/webonyx/up@v0.7.4-0.20180808230834-91b94e551323/cmd/up/main.go (about)

     1  package main
     2  
     3  import (
     4  	"errors"
     5  	"os"
     6  	"runtime"
     7  
     8  	"github.com/stripe/stripe-go"
     9  	"github.com/tj/go/env"
    10  	"github.com/tj/go/term"
    11  
    12  	// commands
    13  	_ "github.com/apex/up/internal/cli/build"
    14  	_ "github.com/apex/up/internal/cli/config"
    15  	_ "github.com/apex/up/internal/cli/deploy"
    16  	_ "github.com/apex/up/internal/cli/deploys"
    17  	_ "github.com/apex/up/internal/cli/disable-stats"
    18  	_ "github.com/apex/up/internal/cli/docs"
    19  	_ "github.com/apex/up/internal/cli/domains"
    20  	_ "github.com/apex/up/internal/cli/env"
    21  	_ "github.com/apex/up/internal/cli/logs"
    22  	_ "github.com/apex/up/internal/cli/metrics"
    23  	_ "github.com/apex/up/internal/cli/prune"
    24  	_ "github.com/apex/up/internal/cli/rollback"
    25  	_ "github.com/apex/up/internal/cli/run"
    26  	_ "github.com/apex/up/internal/cli/stack"
    27  	_ "github.com/apex/up/internal/cli/start"
    28  	_ "github.com/apex/up/internal/cli/team"
    29  	_ "github.com/apex/up/internal/cli/upgrade"
    30  	_ "github.com/apex/up/internal/cli/url"
    31  	_ "github.com/apex/up/internal/cli/version"
    32  
    33  	"github.com/apex/up/internal/cli/app"
    34  	"github.com/apex/up/internal/signal"
    35  	"github.com/apex/up/internal/stats"
    36  	"github.com/apex/up/internal/util"
    37  )
    38  
    39  var version = "master"
    40  
    41  func main() {
    42  	signal.Add(reset)
    43  	stripe.Key = env.GetDefault("STRIPE_KEY", "pk_live_23pGrHcZ2QpfX525XYmiyzmx")
    44  	stripe.LogLevel = 0
    45  
    46  	err := run()
    47  
    48  	if err == nil {
    49  		return
    50  	}
    51  
    52  	term.ShowCursor()
    53  
    54  	switch {
    55  	case util.IsNoCredentials(err):
    56  		util.Fatal(errors.New("Cannot find credentials, visit https://up.docs.apex.sh/#aws_credentials for help."))
    57  	default:
    58  		util.Fatal(err)
    59  	}
    60  }
    61  
    62  // run the cli.
    63  func run() error {
    64  	stats.SetProperties(map[string]interface{}{
    65  		"os":      runtime.GOOS,
    66  		"arch":    runtime.GOARCH,
    67  		"version": version,
    68  		"ci":      os.Getenv("CI") == "true" || os.Getenv("CI") == "1",
    69  		"plan":    "pro",
    70  	})
    71  
    72  	return app.Run(version)
    73  }
    74  
    75  // reset cursor.
    76  func reset() error {
    77  	term.ShowCursor()
    78  	println()
    79  	return nil
    80  }