mirror of
https://github.com/itchyny/mmv.git
synced 2025-12-26 22:24:58 +08:00
implement mmv cli base
This commit is contained in:
parent
5515f2c87a
commit
949c92af35
1 changed files with 60 additions and 2 deletions
|
|
@ -1,7 +1,65 @@
|
|||
package main
|
||||
|
||||
import "fmt"
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"os"
|
||||
"runtime"
|
||||
|
||||
"github.com/itchyny/mmv"
|
||||
)
|
||||
|
||||
const name = "mmv"
|
||||
|
||||
const version = "0.0.0"
|
||||
|
||||
var revision = "HEAD"
|
||||
|
||||
func main() {
|
||||
fmt.Print("mmv")
|
||||
os.Exit(run(os.Args[1:]))
|
||||
}
|
||||
|
||||
const (
|
||||
exitCodeOK = iota
|
||||
exitCodeErr
|
||||
)
|
||||
|
||||
func run(args []string) int {
|
||||
fs := flag.NewFlagSet(name, flag.ContinueOnError)
|
||||
fs.SetOutput(os.Stderr)
|
||||
fs.Usage = func() {
|
||||
fs.SetOutput(os.Stdout)
|
||||
fmt.Printf(`%[1]s - rename multiple files with editor
|
||||
|
||||
Version: %s (rev: %s/%s)
|
||||
|
||||
Synopsis:
|
||||
%% %[1]s files ...
|
||||
|
||||
Options:
|
||||
`, name, version, revision, runtime.Version())
|
||||
fs.PrintDefaults()
|
||||
}
|
||||
var showVersion bool
|
||||
fs.BoolVar(&showVersion, "v", false, "print version")
|
||||
if err := fs.Parse(args); err != nil {
|
||||
if err == flag.ErrHelp {
|
||||
return exitCodeOK
|
||||
}
|
||||
return exitCodeErr
|
||||
}
|
||||
if showVersion {
|
||||
fmt.Printf("%s %s (rev: %s/%s)\n", name, version, revision, runtime.Version())
|
||||
return exitCodeOK
|
||||
}
|
||||
args = fs.Args()
|
||||
if len(args) == 0 {
|
||||
fmt.Printf("usage: %s files ...\n", name)
|
||||
return exitCodeErr
|
||||
}
|
||||
if err := mmv.Rename(nil); err != nil {
|
||||
fmt.Fprintf(os.Stderr, "%s: %s\n", name, err)
|
||||
return exitCodeErr
|
||||
}
|
||||
return exitCodeOK
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue