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  }