60 lines
1.6 KiB
Common 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"))
|