module Options (Flag(..),Options,defaults,flags,usage) where import GetOpt (OptionList,OptionSpecs,noArg,reqArg,makeOptions) data Flag = Filter | NoFilter | Code | DocDir | DateFormat | ForceStyle | DocStart | DocEnd | ExtStart | ExtEnd | Version | Help deriving (Eq) type Options = OptionList Flag defaults :: OptionList Flag defaults = [ (Filter, "Markdown.pl") , (DateFormat, "%B %e, %Y, %l:%M %p") , (DocDir, "doc") ] flags :: OptionSpecs Flag flags = makeOptions [ (Filter, 'm', "markup", reqArg, "path", "Path to Markdown") , (NoFilter, 'n', "nomark", noArg, [], "Do not use Markdown") , (Code, 'c', "code", noArg, [], "Output stripped source") , (DocDir, 'o', "doc", reqArg, "path", "Path to doc directory") , (DateFormat, 'd', "date", reqArg, "format", "Date format") , (ForceStyle, 's', "style", noArg, [], "Overwrite style.css") , (DocStart, 'a', "start", reqArg, "string", "Doc start string") , (DocEnd, 'b', "end", reqArg, "string", "Doc end string") , (ExtStart, 'x', "xstart", reqArg, "string", "External start string") , (ExtEnd, 'y', "xend", reqArg, "string", "External end string") , (Version, 'v', "version", noArg, [], "Annote version") , (Help, 'h', "help", noArg, [], "This help message") ] usage :: String usage = "Usage: annote [-mncodsabxyvh] [file ...]"