github.com/upyun/upx@v0.4.7-0.20240419023638-b184a7cb7c10/upx.go (about)

     1  package upx
     2  
     3  import (
     4  	"fmt"
     5  	"runtime"
     6  	"time"
     7  
     8  	"github.com/urfave/cli"
     9  )
    10  
    11  const VERSION = "v0.4.6"
    12  
    13  func CreateUpxApp() *cli.App {
    14  	app := cli.NewApp()
    15  	app.Name = "upx"
    16  	app.Usage = "a tool for driving UpYun Storage"
    17  	app.Author = "Hongbo.Mo"
    18  	app.Email = "zjutpolym@gmail.com"
    19  	app.Version = fmt.Sprintf("%s %s/%s %s", VERSION,
    20  		runtime.GOOS, runtime.GOARCH, runtime.Version())
    21  	app.EnableBashCompletion = true
    22  	app.Compiled = time.Now()
    23  	app.Flags = []cli.Flag{
    24  		cli.BoolFlag{Name: "quiet, q", Usage: "not verbose"},
    25  		cli.StringFlag{Name: "auth", Usage: "auth string"},
    26  	}
    27  	app.Before = func(c *cli.Context) error {
    28  		if c.Bool("q") {
    29  			IsVerbose = false
    30  		}
    31  		if c.String("auth") != "" {
    32  			err := authStrToConfig(c.String("auth"))
    33  			if err != nil {
    34  				PrintErrorAndExit("%s: invalid auth string", c.Command.FullName())
    35  			}
    36  		}
    37  		return nil
    38  	}
    39  	app.Commands = []cli.Command{
    40  		NewLoginCommand(),
    41  		NewLogoutCommand(),
    42  		NewListSessionsCommand(),
    43  		NewSwitchSessionCommand(),
    44  		NewInfoCommand(),
    45  		NewCdCommand(),
    46  		NewPwdCommand(),
    47  		NewMkdirCommand(),
    48  		NewLsCommand(),
    49  		NewTreeCommand(),
    50  		NewGetCommand(),
    51  		NewPutCommand(),
    52  		NewUploadCommand(),
    53  		NewRmCommand(),
    54  		NewSyncCommand(),
    55  		NewAuthCommand(),
    56  		NewPostCommand(),
    57  		NewPurgeCommand(),
    58  		NewGetDBCommand(),
    59  		NewCleanDBCommand(),
    60  		NewUpgradeCommand(),
    61  		NewCopyCommand(),
    62  		NewMoveCommand(),
    63  	}
    64  	return app
    65  }