seanut/command-line.lisp

60 lines
1.6 KiB
Common Lisp

;;; command-line.lisp
(in-package :seanut)
(define-opts
(:name :help
:short #\h
:long "help"
:description "prints this help")
(:name :version
:long "version"
:description "prints the version")
(:name :verbose
:short #\v
:long "verbose"
:description "prints file names as they get downloaded")
(:name :assume-yes
:long "no-prompt"
:description "assumes yes for all download prompts")
(:name :quick-connect-p
:short #\q
:long "quick-connect"
:description "alternative login method to providing username/password - times out after ~1min")
(:name :token
:short #\t
:long "token"
:meta-var "TOKEN"
:arg-parser #'identity
:description "access token - if you do not have one please authenticate first")
(:name :output
:short #\o
:long "output"
:meta-var "DIR"
:arg-parser #'uiop:ensure-directory-pathname
:description "location to save downloaded media")
(:name :media-type
:short #\m
:long "media-type"
:meta-var "TYPE"
:arg-parser #'validate-media-type
:description "media type to base our query on")
(:name :username
:short #\u
:long "username"
:meta-var "USERNAME"
:arg-parser #'identity
:description "username for the jellyfin server")
(:name :password
:short #\p
:long "password"
:meta-var "PASSWORD"
:arg-parser #'identity
:description "password for the jellyfin server")
(:name :season
:short #\s
:long "season"
:meta-var "SEASON"
:arg-parser #'maybe-parse-integer
:description "specify specific season to download, if downloading a show"))