github.com/docker/app@v0.9.1-beta3.0.20210611140623-a48f773ab002/cmd/docker-app/main.go (about)

     1  package main
     2  
     3  import (
     4  	"math/rand"
     5  	"time"
     6  
     7  	"github.com/docker/app/internal"
     8  	app "github.com/docker/app/internal/commands"
     9  	"github.com/docker/cli/cli-plugins/manager"
    10  	"github.com/docker/cli/cli-plugins/plugin"
    11  	"github.com/docker/cli/cli/command"
    12  	"github.com/spf13/cobra"
    13  )
    14  
    15  func main() {
    16  	rand.Seed(time.Now().UnixNano())
    17  	plugin.Run(func(dockerCli command.Cli) *cobra.Command {
    18  		cmd := app.NewRootCmd("app", dockerCli)
    19  		originalPreRun := cmd.PersistentPreRunE
    20  		cmd.PersistentPreRunE = func(cmd *cobra.Command, args []string) error {
    21  			if err := plugin.PersistentPreRunE(cmd, args); err != nil {
    22  				return err
    23  			}
    24  			if originalPreRun != nil {
    25  				return originalPreRun(cmd, args)
    26  			}
    27  			return nil
    28  		}
    29  		return cmd
    30  	}, manager.Metadata{
    31  		SchemaVersion: "0.1.0",
    32  		Vendor:        "Docker Inc.",
    33  		Version:       internal.Version,
    34  		Experimental:  true,
    35  	})
    36  }