Skip to content

dancor/polyopt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PolyOpt allows a no-repetition specification of program options and then
automatically makes those options work simultaneously as command line options
and as config file options.

- todo: make more general
  - support non-DEFAULT config sections in some way?
    (right now don't even error if these exist, and they are ignored..)
  - support subcommand options nicely?  (e.g. git clone .. vs git pull ..)
  - don't assume so much in the config processing in general?
  - allow changing of names of things that are autogenerated?
- is it awkward that for optArgs, config can only do Nothing vs
  Just (Just "lol"), whereas only by command-line option can you get
  Just Nothing?
- might add another class of type-inferred functions for case where defArg
  is Typeable.. reqArgInf or some such?
    reqArgGen ["username"] "u" "USERNAME" [t|String|] [|""|] ==
    reqArgInf ["username"] "u" "USERNAME" ""
  and
    optArgGen ["list-recent"] "l" "N" [t|Int|] [|0|] ==
    optArgInf ["list-recent"] "l" "N" (0 :: Int)
  unsure.  i do think fully general *Gen case should exist for e.g.
  argDef being a non-TH-Lift-able type like a function type,
  so maybe *Inf is bloat..

About

no-extra-typing command-line/config-file haskell program options

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published