github.com/client9/goreleaser@v0.17.4-0.20170511023544-27e4b028926d/main.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "log" 6 "os" 7 8 "github.com/goreleaser/goreleaser/goreleaserlib" 9 "github.com/urfave/cli" 10 ) 11 12 var ( 13 version = "dev" 14 commit = "none" 15 date = "unknown" 16 ) 17 18 func main() { 19 var app = cli.NewApp() 20 app.Name = "goreleaser" 21 app.Version = fmt.Sprintf("%v, commit %v, built at %v", version, commit, date) 22 app.Usage = "Deliver Go binaries as fast and easily as possible" 23 app.Flags = []cli.Flag{ 24 cli.StringFlag{ 25 Name: "config, file, c, f", 26 Usage: "Load configuration from `FILE`", 27 Value: "goreleaser.yml", 28 }, 29 cli.StringFlag{ 30 Name: "release-notes", 31 Usage: "Load custom release notes from a markdown `FILE`", 32 }, 33 cli.BoolFlag{ 34 Name: "skip-validate", 35 Usage: "Skip all the validations against the release", 36 }, 37 cli.BoolFlag{ 38 Name: "skip-publish", 39 Usage: "Skip all publishing pipes of the release", 40 }, 41 cli.BoolFlag{ 42 Name: "snapshot", 43 Usage: "Generate an unversioned snapshot release", 44 }, 45 } 46 app.Action = func(c *cli.Context) error { 47 log.Printf("Running goreleaser %v\n", version) 48 if err := goreleaserlib.Release(c); err != nil { 49 return cli.NewExitError(err.Error(), 1) 50 } 51 return nil 52 } 53 app.Commands = []cli.Command{ 54 { 55 Name: "init", 56 Aliases: []string{"i"}, 57 Usage: "generate goreleaser.yml", 58 Action: func(c *cli.Context) error { 59 var filename = "goreleaser.yml" 60 if err := goreleaserlib.InitProject(filename); err != nil { 61 return cli.NewExitError(err.Error(), 1) 62 } 63 64 log.Printf("%s created. Please edit accordingly to your needs.", filename) 65 return nil 66 }, 67 }, 68 } 69 if err := app.Run(os.Args); err != nil { 70 log.Fatalln(err) 71 } 72 }