github.com/marianogappa/goreleaser@v0.26.2-0.20170715090149-96acd0a9fc46/main.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "os" 6 7 "github.com/apex/log" 8 lcli "github.com/apex/log/handlers/cli" 9 "github.com/goreleaser/goreleaser/goreleaserlib" 10 "github.com/urfave/cli" 11 ) 12 13 var ( 14 version = "dev" 15 commit = "none" 16 date = "unknown" 17 ) 18 19 func init() { 20 log.SetHandler(lcli.New(os.Stdout)) 21 } 22 23 func main() { 24 var app = cli.NewApp() 25 app.Name = "goreleaser" 26 app.Version = fmt.Sprintf("%v, commit %v, built at %v", version, commit, date) 27 app.Usage = "Deliver Go binaries as fast and easily as possible" 28 app.Flags = []cli.Flag{ 29 cli.StringFlag{ 30 Name: "config, file, c, f", 31 Usage: "Load configuration from `FILE`", 32 Value: ".goreleaser.yml", 33 }, 34 cli.StringFlag{ 35 Name: "release-notes", 36 Usage: "Load custom release notes from a markdown `FILE`", 37 }, 38 cli.BoolFlag{ 39 Name: "skip-validate", 40 Usage: "Skip all the validations against the release", 41 }, 42 cli.BoolFlag{ 43 Name: "skip-publish", 44 Usage: "Skip all publishing pipes of the release", 45 }, 46 cli.BoolFlag{ 47 Name: "snapshot", 48 Usage: "Generate an unversioned snapshot release", 49 }, 50 cli.BoolFlag{ 51 Name: "rm-dist", 52 Usage: "Remove ./dist before building", 53 }, 54 cli.BoolFlag{ 55 Name: "debug", 56 Usage: "Enable debug mode", 57 }, 58 } 59 app.Action = func(c *cli.Context) error { 60 log.Infof("running goreleaser %v", version) 61 if err := goreleaserlib.Release(c); err != nil { 62 log.WithError(err).Error("release failed") 63 return cli.NewExitError("\n", 1) 64 } 65 return nil 66 } 67 app.Commands = []cli.Command{ 68 { 69 Name: "init", 70 Aliases: []string{"i"}, 71 Usage: "generate .goreleaser.yml", 72 Action: func(c *cli.Context) error { 73 var filename = ".goreleaser.yml" 74 if err := goreleaserlib.InitProject(filename); err != nil { 75 log.WithError(err).Error("failed to init project") 76 return cli.NewExitError("\n", 1) 77 } 78 79 log.WithField("file", filename). 80 Info("config created; please edit accordingly to your needs") 81 return nil 82 }, 83 }, 84 } 85 if err := app.Run(os.Args); err != nil { 86 log.WithError(err).Fatal("failed") 87 } 88 }