github.com/click2cloud/libcompose@v0.4.1-0.20170816121048-7c20f79ac6b9/cli/main/main.go (about)

     1  package main
     2  
     3  import (
     4  	"os"
     5  	"path"
     6  
     7  	cliApp "github.com/Click2Cloud/libcompose/cli/app"
     8  	"github.com/Click2Cloud/libcompose/cli/command"
     9  	dockerApp "github.com/Click2Cloud/libcompose/cli/docker/app"
    10  	"github.com/Click2Cloud/libcompose/version"
    11  	"github.com/urfave/cli"
    12  )
    13  
    14  func main() {
    15  	factory := &dockerApp.ProjectFactory{}
    16  
    17  	cli.AppHelpTemplate = `Usage: {{.Name}} {{if .Flags}}[OPTIONS] {{end}}COMMAND [arg...]
    18  
    19  {{.Usage}}
    20  
    21  Version: {{.Version}}{{if or .Author .Email}}
    22  
    23  Author:{{if .Author}}
    24    {{.Author}}{{if .Email}} - <{{.Email}}>{{end}}{{else}}
    25    {{.Email}}{{end}}{{end}}
    26  {{if .Flags}}
    27  Options:
    28    {{range .Flags}}{{.}}
    29    {{end}}{{end}}
    30  Commands:
    31    {{range .Commands}}{{.Name}}{{with .ShortName}}, {{.}}{{end}}{{ "\t" }}{{.Usage}}
    32    {{end}}
    33  Run '{{.Name}} COMMAND --help' for more information on a command.
    34  `
    35  	cli.CommandHelpTemplate = `Usage: ` + path.Base(os.Args[0]) + ` {{.Name}}{{if .Flags}} [OPTIONS]
    36  
    37  {{.Usage}}
    38  
    39  Options:
    40     {{range .Flags}}{{.}}
    41     {{end}}{{end}}
    42  `
    43  
    44  	app := cli.NewApp()
    45  	app.Name = "libcompose-cli"
    46  	app.Usage = "Command line interface for libcompose."
    47  	app.Version = version.VERSION + " (" + version.GITCOMMIT + ")"
    48  	app.Author = "Docker Compose Contributors"
    49  	app.Email = "https://github.com/Click2Cloud/libcompose"
    50  	app.Before = cliApp.BeforeApp
    51  	app.Flags = append(command.CommonFlags(), dockerApp.DockerClientFlags()...)
    52  	app.Commands = []cli.Command{
    53  		command.BuildCommand(factory),
    54  		command.ConfigCommand(factory),
    55  		command.CreateCommand(factory),
    56  		command.EventsCommand(factory),
    57  		command.DownCommand(factory),
    58  		command.KillCommand(factory),
    59  		command.LogsCommand(factory),
    60  		command.PauseCommand(factory),
    61  		command.PortCommand(factory),
    62  		command.PsCommand(factory),
    63  		command.PullCommand(factory),
    64  		command.RestartCommand(factory),
    65  		command.RmCommand(factory),
    66  		command.RunCommand(factory),
    67  		command.ScaleCommand(factory),
    68  		command.StartCommand(factory),
    69  		command.StopCommand(factory),
    70  		command.UnpauseCommand(factory),
    71  		command.UpCommand(factory),
    72  		command.VersionCommand(factory),
    73  	}
    74  
    75  	app.Run(os.Args)
    76  
    77  }