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 }