turn download into a subcommand

This commit is contained in:
tocariimaa 2024-12-30 00:22:52 -03:00
parent 70e617594a
commit 538af8435b

39
main.go
View file

@ -120,19 +120,10 @@ func say(enabled bool, format string, args ...any) {
fmt.Printf(format+"\n", args...)
}
func main() {
var flags CliFlags
flag.StringVar(&flags.outputFileName, "o", "", "Ugoira output file name")
flag.StringVar(&flags.manifestFileName, "M", "", "Ugoira manifest output file name")
flag.StringVar(&flags.userAgent, "A", "", "User agent to use when doing GET requests")
flag.BoolVar(&flags.verbose, "v", false, "Enable verbosity")
flag.Parse()
args := flag.Args()
func downloadUgoiraCmd(args []string, flags CliFlags) {
if len(args) == 0 {
die("expected post ID")
}
postIdStr := args[0]
postId, err := strconv.ParseUint(postIdStr, 10, 0)
if err != nil {
@ -141,3 +132,31 @@ func main() {
say(flags.verbose, "Working on post %d", postId)
getUgoira(PostId(postId), flags)
}
func main() {
var flags CliFlags
downloadCmd := flag.NewFlagSet("download", flag.ExitOnError)
u2vCmd := flag.NewFlagSet("u2v", flag.ExitOnError)
downloadCmd.StringVar(&flags.outputFileName, "o", "", "Ugoira output file name")
downloadCmd.StringVar(&flags.manifestFileName, "M", "", "Ugoira manifest output file name")
downloadCmd.StringVar(&flags.userAgent, "A", "", "User agent to use when doing GET requests")
downloadCmd.BoolVar(&flags.verbose, "v", false, "Enable verbosity")
if len(os.Args) < 2 {
die("expected command")
}
switch os.Args[1] {
case "download", "down", "d":
downloadCmd.Parse(os.Args[2:])
restArgs := downloadCmd.Args()
downloadUgoiraCmd(restArgs, flags)
case "u2v":
u2vCmd.Parse(os.Args[2:])
//restArgs := u2vCmd.Args()
fmt.Println("convert command")
default:
die("invalid command '%s'", os.Args[1])
}
}