hledger-web 0.15 → 0.15.1
raw patch · 3 files changed
+81/−8 lines, 3 filesdep ~waidep ~wai-extradep ~warp
Dependency ranges changed: wai, wai-extra, warp, yesod-json, yesod-static
Files
- Hledger/Web/AppRun.hs +1/−1
- Hledger/Web/Options.hs +71/−0
- hledger-web.cabal +9/−7
Hledger/Web/AppRun.hs view
@@ -53,7 +53,7 @@ let Right j = ej let a = App{ getStatic=static Hledger.Web.Settings.staticdir- ,appRoot="http://localhost:5002"+ ,appRoot="http://demo.hledger.org:5001" ,appOpts=defwebopts{cliopts_=defcliopts{file_=Just f}} ,appArgs=[] ,appJournal=j
+ Hledger/Web/Options.hs view
@@ -0,0 +1,71 @@+{-|++-}++module Hledger.Web.Options+where+import Data.Maybe+import Data.Text (unpack)+import System.Console.CmdArgs+import System.Console.CmdArgs.Explicit++import Hledger.Cli hiding (progname,progversion)+import qualified Hledger.Cli (progname)++import Hledger.Web.Settings++progname = Hledger.Cli.progname ++ "-web"+progversion = progversionstr progname++defbaseurl = unpack defapproot+defbaseurl' = (reverse $ drop 4 $ reverse defbaseurl) ++ "PORT"++webflags = [+ flagReq ["base-url"] (\s opts -> Right $ setopt "base-url" s opts) "URL" ("set the base url (default: "++defbaseurl'++")")+ ,flagReq ["port"] (\s opts -> Right $ setopt "port" s opts) "PORT" ("listen on this tcp port (default: "++show defport++")")+ ]+ +webmode = (mode "hledger-web" [("command","web")]+ "start serving the hledger web interface"+ commandargsflag []){+ modeGroupFlags = Group {+ groupUnnamed = webflags+ ,groupHidden = []+ ,groupNamed = [(generalflagstitle, generalflags1)]+ }+ ,modeHelpSuffix=[+ -- "Reads your ~/.hledger.journal file, or another specified by $LEDGER_FILE or -f, and starts the full-window curses ui."+ ]+ }++-- hledger-web options, used in hledger-web and above+data WebOpts = WebOpts {+ base_url_ :: String+ ,port_ :: Int+ ,cliopts_ :: CliOpts+ } deriving (Show)++defwebopts = WebOpts+ def+ def+ def++-- instance Default WebOpts where def = defwebopts++toWebOpts :: RawOpts -> IO WebOpts+toWebOpts rawopts = do+ cliopts <- toCliOpts rawopts+ return defwebopts {+ base_url_ = fromMaybe defbaseurl $ maybestringopt "base-url" rawopts+ ,port_ = fromMaybe defport $ maybeintopt "port" rawopts+ ,cliopts_ = cliopts+ }++checkWebOpts :: WebOpts -> IO WebOpts+checkWebOpts opts = do+ checkCliOpts $ cliopts_ opts+ return opts++getHledgerWebOpts :: IO WebOpts+getHledgerWebOpts = processArgs webmode >>= return . decodeRawOpts >>= toWebOpts >>= checkWebOpts+
hledger-web.cabal view
@@ -1,5 +1,5 @@ name: hledger-web-version: 0.15+version: 0.15.1 category: Finance synopsis: A web interface for the hledger accounting tool. description: @@ -52,6 +52,7 @@ Hledger.Web.App Hledger.Web.AppRun Hledger.Web.EmbeddedFiles+ Hledger.Web.Options Hledger.Web.Settings Hledger.Web.StaticFiles Hledger.Web.Handlers@@ -84,16 +85,16 @@ ,file-embed == 0.0.* ,template-haskell >= 2.4 && < 2.6 -- ,yesod >= 0.8 && < 0.9- ,yesod-core >= 0.8 && < 0.9+ ,yesod-core >= 0.8 && < 0.9 ,yesod-form == 0.1.*- ,yesod-json- ,yesod-static == 0.1.0+ ,yesod-json == 0.1.*+ ,yesod-static == 0.1.* ,aeson == 0.3.* ,hamlet == 0.8.* ,transformers- ,wai- ,wai-extra == 0.4.*- ,warp+ ,wai < 0.5+ ,wai-extra < 0.5+ ,warp < 0.5 -- , blaze-builder -- , web-routes @@ -108,6 +109,7 @@ Hledger.Web Hledger.Web.App Hledger.Web.EmbeddedFiles+ Hledger.Web.Options Hledger.Web.Settings Hledger.Web.StaticFiles Hledger.Web.Handlers