improve cli

This commit is contained in:
Emmm Monster 2021-11-12 00:23:37 +08:00
parent 3f3980de38
commit ae4b46bf57
No known key found for this signature in database
GPG Key ID: C98279C83FB50DB9

View File

@ -2,6 +2,7 @@ package main
import ( import (
"errors" "errors"
"fmt"
"github.com/unlock-music/cli/algo/common" "github.com/unlock-music/cli/algo/common"
_ "github.com/unlock-music/cli/algo/kgm" _ "github.com/unlock-music/cli/algo/kgm"
_ "github.com/unlock-music/cli/algo/kwm" _ "github.com/unlock-music/cli/algo/kwm"
@ -14,17 +15,18 @@ import (
"go.uber.org/zap" "go.uber.org/zap"
"os" "os"
"path/filepath" "path/filepath"
"runtime"
"strings" "strings"
) )
var AppVersion = "0.0.4" var AppVersion = "v0.0.6"
func main() { func main() {
app := cli.App{ app := cli.App{
Name: "Unlock Music CLI", Name: "Unlock Music CLI",
HelpName: "um", HelpName: "um",
Usage: "Unlock your encrypted music file https://github.com/unlock-music/cli", Usage: "Unlock your encrypted music file https://github.com/unlock-music/cli",
Version: AppVersion, Version: fmt.Sprintf("%s (%s,%s/%s)", AppVersion, runtime.Version(), runtime.GOOS, runtime.GOARCH),
Flags: []cli.Flag{ Flags: []cli.Flag{
&cli.StringFlag{Name: "input", Aliases: []string{"i"}, Usage: "path to input file or dir", Required: false}, &cli.StringFlag{Name: "input", Aliases: []string{"i"}, Usage: "path to input file or dir", Required: false},
&cli.StringFlag{Name: "output", Aliases: []string{"o"}, Usage: "path to output dir", Required: false}, &cli.StringFlag{Name: "output", Aliases: []string{"o"}, Usage: "path to output dir", Required: false},
@ -42,10 +44,20 @@ func main() {
} }
} }
func appMain(c *cli.Context) error { func appMain(c *cli.Context) (err error) {
input := c.String("input") input := c.String("input")
if input == "" && c.Args().Present() { if input == "" {
input = c.Args().Get(c.Args().Len() - 1) switch c.Args().Len() {
case 0:
input, err = os.Getwd()
if err != nil {
return err
}
case 1:
input = c.Args().Get(0)
default:
return errors.New("please specify input file (or directory)")
}
} }
output := c.String("output") output := c.String("output")
@ -55,6 +67,9 @@ func appMain(c *cli.Context) error {
if err != nil { if err != nil {
return err return err
} }
if input == output {
return errors.New("input and output path are same")
}
} }
skipNoop := c.Bool("skip-noop") skipNoop := c.Bool("skip-noop")