arrange/cmd/am/main.go

62 lines
1.1 KiB
Go
Raw Normal View History

2016-05-17 23:03:37 -07:00
package main
import (
2016-05-18 00:19:39 -07:00
"flag"
2016-05-17 23:03:37 -07:00
"fmt"
"log"
"os"
)
2016-07-09 21:40:14 -07:00
const usage = "am <arr|clean|help> [flags]"
2016-07-09 15:06:51 -07:00
const arrUsage = "am arr [-h|-cores=N] <in> <out>"
2016-07-09 21:40:14 -07:00
const cleanUsage = "am clean [-h|-cores=N] <directory>"
2016-05-17 23:03:37 -07:00
type stats struct {
total int
dupes int
moved int
}
2016-05-18 00:19:39 -07:00
var cores = flag.Int("cores", 0, "how many threads to use")
2016-05-17 23:03:37 -07:00
func main() {
2016-07-09 15:06:51 -07:00
if len(os.Args) < 2 {
2016-05-17 23:03:37 -07:00
fmt.Fprintf(os.Stderr, "%s\n", usage)
os.Exit(1)
}
2016-07-09 15:06:51 -07:00
var sub string
sub, os.Args = os.Args[1], os.Args[1:]
2016-05-17 23:03:37 -07:00
2016-07-09 15:06:51 -07:00
flag.Parse()
log.SetFlags(log.Lshortfile)
2016-05-17 23:03:37 -07:00
2016-07-09 15:06:51 -07:00
switch sub {
case "ar", "arr", "arrange":
args := flag.Args()
if len(args) != 2 {
fmt.Fprintf(os.Stderr, "%s\n", arrUsage)
os.Exit(1)
2016-05-17 23:03:37 -07:00
}
2016-07-09 15:06:51 -07:00
in, out := args[0], args[1]
if err := arr(in, out); err != nil {
fmt.Fprintf(os.Stderr, "problem arranging media: %v\n", err)
os.Exit(1)
}
2016-07-09 21:40:14 -07:00
case "c", "cl", "clean":
args := flag.Args()
if len(args) != 1 {
fmt.Fprintf(os.Stderr, "%s\n", cleanUsage)
os.Exit(1)
}
dir := args[0]
if err := clean(dir); err != nil {
fmt.Fprintf(os.Stderr, "problem cleaning: %v\n", err)
os.Exit(1)
}
2016-07-09 15:06:51 -07:00
default:
fmt.Fprintf(os.Stderr, "%s\n", usage)
os.Exit(1)
2016-05-17 23:03:37 -07:00
}
}