installing: drop -fweb610 flag
This commit is contained in:
		
							parent
							
								
									c42496b134
								
							
						
					
					
						commit
						03ca434cdb
					
				| @ -23,8 +23,6 @@ module Hledger.Cli.Commands.All ( | |||||||
| #endif | #endif | ||||||
| #if defined(WEB) | #if defined(WEB) | ||||||
|                      module Hledger.Cli.Commands.Web, |                      module Hledger.Cli.Commands.Web, | ||||||
| #elif defined(WEB610) |  | ||||||
|                      module Hledger.Cli.Commands.Web610, |  | ||||||
| #endif | #endif | ||||||
|                      tests_Hledger_Commands |                      tests_Hledger_Commands | ||||||
|               ) |               ) | ||||||
| @ -44,8 +42,6 @@ import Hledger.Cli.Commands.Vty | |||||||
| #endif | #endif | ||||||
| #if defined(WEB) | #if defined(WEB) | ||||||
| import Hledger.Cli.Commands.Web | import Hledger.Cli.Commands.Web | ||||||
| #elif defined(WEB610) |  | ||||||
| import Hledger.Cli.Commands.Web610 |  | ||||||
| #endif | #endif | ||||||
| import Test.HUnit (Test(TestList)) | import Test.HUnit (Test(TestList)) | ||||||
| 
 | 
 | ||||||
| @ -68,6 +64,4 @@ tests_Hledger_Commands = TestList | |||||||
| -- #endif | -- #endif | ||||||
| -- #if defined(WEB) | -- #if defined(WEB) | ||||||
| --     ,Hledger.Cli.Commands.Web.tests_Web | --     ,Hledger.Cli.Commands.Web.tests_Web | ||||||
| -- #elif defined(WEB610) |  | ||||||
| --     ,Hledger.Cli.Commands.Web610.tests_Web |  | ||||||
| -- #endif | -- #endif | ||||||
|  | |||||||
| @ -1,316 +0,0 @@ | |||||||
| {-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, MultiParamTypeClasses #-} |  | ||||||
| {-# OPTIONS_GHC -F -pgmFtrhsx #-} |  | ||||||
| {-|  |  | ||||||
| A web-based UI. |  | ||||||
| -} |  | ||||||
| 
 |  | ||||||
| module Hledger.Cli.Commands.Web610 |  | ||||||
| where |  | ||||||
| import Codec.Binary.UTF8.String (decodeString) |  | ||||||
| import Control.Applicative.Error (Failing(Success,Failure)) |  | ||||||
| import Control.Concurrent |  | ||||||
| import Control.Monad.Reader (ask) |  | ||||||
| import Data.IORef (newIORef, atomicModifyIORef) |  | ||||||
| import System.IO.Storage (withStore, putValue, getValue) |  | ||||||
| import Text.ParserCombinators.Parsec (parse) |  | ||||||
| 
 |  | ||||||
| import Hack.Contrib.Constants (_TextHtmlUTF8) |  | ||||||
| import Hack.Contrib.Response (set_content_type) |  | ||||||
| import qualified Hack (Env, http) |  | ||||||
| import qualified Hack.Contrib.Request (inputs, params, path) |  | ||||||
| import qualified Hack.Contrib.Response (redirect) |  | ||||||
| import Hack.Handler.SimpleServer (run) |  | ||||||
| 
 |  | ||||||
| import Network.Loli (loli, io, get, post, html, text, public) |  | ||||||
| import Network.Loli.Type (AppUnit) |  | ||||||
| import Network.Loli.Utils (update) |  | ||||||
| 
 |  | ||||||
| import HSP hiding (Request,catch) |  | ||||||
| import qualified HSP (Request(..)) |  | ||||||
| 
 |  | ||||||
| import Hledger.Cli.Commands.Add (journalAddTransaction) |  | ||||||
| import Hledger.Cli.Commands.Balance |  | ||||||
| import Hledger.Cli.Commands.Histogram |  | ||||||
| import Hledger.Cli.Commands.Print |  | ||||||
| import Hledger.Cli.Commands.Register |  | ||||||
| import Hledger.Data |  | ||||||
| import Hledger.Read.Journal (someamount) |  | ||||||
| import Hledger.Cli.Options hiding (value) |  | ||||||
| #ifdef MAKE |  | ||||||
| import Paths_hledger_make (getDataFileName) |  | ||||||
| #else |  | ||||||
| import Paths_hledger (getDataFileName) |  | ||||||
| #endif |  | ||||||
| import Hledger.Cli.Utils |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| tcpport = 5000 :: Int |  | ||||||
| homeurl = printf "http://localhost:%d/" tcpport |  | ||||||
| browserdelay = 100000 -- microseconds |  | ||||||
| 
 |  | ||||||
| web :: [Opt] -> [String] -> Journal -> IO () |  | ||||||
| web opts args j = do |  | ||||||
|   unless (Debug `elem` opts) $ forkIO browser >> return () |  | ||||||
|   server opts args j |  | ||||||
| 
 |  | ||||||
| browser :: IO () |  | ||||||
| browser = putStrLn "starting web browser" >> threadDelay browserdelay >> openBrowserOn homeurl >> return () |  | ||||||
| 
 |  | ||||||
| server :: [Opt] -> [String] -> Journal -> IO () |  | ||||||
| server opts args j = |  | ||||||
|   -- server initialisation |  | ||||||
|   withStore "hledger" $ do -- IO () |  | ||||||
|     printf "starting web server on port %d\n" tcpport |  | ||||||
|     t <- getCurrentLocalTime |  | ||||||
|     webfiles <- getDataFileName "web" |  | ||||||
|     putValue "hledger" "journal" j |  | ||||||
|     run tcpport $            -- (Env -> IO Response) -> IO () |  | ||||||
|       \env -> do -- IO Response |  | ||||||
|        -- general request handler |  | ||||||
|        let opts' = opts ++ [Period $ unwords $ map decodeString $ reqParamUtf8 env "p"] |  | ||||||
|            args' = args ++ map decodeString (reqParamUtf8 env "a") |  | ||||||
|        j' <- fromJust `fmap` getValue "hledger" "journal" |  | ||||||
|        (jE, changed) <- io $ journalReloadIfChanged opts j' |  | ||||||
|        let (j''', err) = either (\e -> (j',e)) (\j'' -> (j'',"")) jE |  | ||||||
|        when (changed && null err) $ putValue "hledger" "journal" j''' |  | ||||||
|        when (changed && not (null err)) $ printf "error while reading %s\n" (filepath j') |  | ||||||
|        -- declare path-specific request handlers |  | ||||||
|        let command :: [String] -> ([Opt] -> FilterSpec -> Journal -> String) -> AppUnit |  | ||||||
|            command msgs f = string msgs $ f opts' (optsToFilterSpec opts' args' t) j''' |  | ||||||
|        (loli $                                               -- State Loli () -> (Env -> IO Response) |  | ||||||
|          do |  | ||||||
|           get  "/balance"   $ command [] showBalanceReport  -- String -> ReaderT Env (StateT Response IO) () -> State Loli () |  | ||||||
|           get  "/register"  $ command [] showRegisterReport |  | ||||||
|           get  "/histogram" $ command [] showHistogram |  | ||||||
|           get  "/transactions"   $ journalpage [] j''' (showTransactions (optsToFilterSpec opts' args' t)) |  | ||||||
|           post "/transactions"   $ handleAddform j''' |  | ||||||
|           get  "/env"       $ getenv >>= (text . show) |  | ||||||
|           get  "/params"    $ getenv >>= (text . show . Hack.Contrib.Request.params) |  | ||||||
|           get  "/inputs"    $ getenv >>= (text . show . Hack.Contrib.Request.inputs) |  | ||||||
|           public (Just webfiles) ["/style.css"] |  | ||||||
|           get  "/"          $ redirect ("transactions") Nothing |  | ||||||
|           ) env |  | ||||||
| 
 |  | ||||||
| getenv = ask |  | ||||||
| response = update |  | ||||||
| redirect u c = response $ Hack.Contrib.Response.redirect u c |  | ||||||
| 
 |  | ||||||
| reqParamUtf8 :: Hack.Env -> String -> [String] |  | ||||||
| reqParamUtf8 env p = map snd $ filter ((==p).fst) $ Hack.Contrib.Request.params env |  | ||||||
| 
 |  | ||||||
| journalpage :: [String] -> Journal -> (Journal -> String) -> AppUnit |  | ||||||
| journalpage msgs j f = do |  | ||||||
|   env <- getenv |  | ||||||
|   (jE, _) <- io $ journalReloadIfChanged [] j |  | ||||||
|   let (j'', _) = either (\e -> (j,e)) (\j' -> (j',"")) jE |  | ||||||
|   hsp msgs $ const <div><% addform env %><pre><% f j'' %></pre></div> |  | ||||||
| 
 |  | ||||||
| -- | A loli directive to serve a string in pre tags within the hledger web |  | ||||||
| -- layout. |  | ||||||
| string :: [String] -> String -> AppUnit |  | ||||||
| string msgs s = hsp msgs $ const <pre><% s %></pre> |  | ||||||
| 
 |  | ||||||
| -- | A loli directive to serve a hsp template wrapped in the hledger web |  | ||||||
| -- layout. The hack environment is passed in to every hsp template as an |  | ||||||
| -- argument, since I don't see how to get it within the hsp monad. |  | ||||||
| -- A list of messages is also passed, eg for form errors. |  | ||||||
| hsp :: [String] -> (Hack.Env -> HSP XML) -> AppUnit |  | ||||||
| hsp msgs f = do |  | ||||||
|   env <- getenv |  | ||||||
|   let contenthsp = f env |  | ||||||
|       pagehsp = hledgerpage env msgs title contenthsp |  | ||||||
|   html =<< (io $ do |  | ||||||
|               hspenv <- hackEnvToHspEnv env |  | ||||||
|               (_,xml) <- runHSP html4Strict pagehsp hspenv |  | ||||||
|               return $ addDoctype $ renderAsHTML xml) |  | ||||||
|   response $ set_content_type _TextHtmlUTF8 |  | ||||||
|     where |  | ||||||
|       title = "" |  | ||||||
|       addDoctype = ("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\n" ++) |  | ||||||
|       hackEnvToHspEnv :: Hack.Env -> IO HSPEnv |  | ||||||
|       hackEnvToHspEnv env = do |  | ||||||
|           x <- newIORef 0 |  | ||||||
|           let req = HSP.Request (reqParamUtf8 env) (Hack.http env) |  | ||||||
|               num = NumberGen (atomicModifyIORef x (\a -> (a+1,a))) |  | ||||||
|           return $ HSPEnv req num |  | ||||||
| 
 |  | ||||||
| -- htmlToHsp :: Html -> HSP XML |  | ||||||
| -- htmlToHsp h = return $ cdata $ showHtml h |  | ||||||
| 
 |  | ||||||
| -- views |  | ||||||
| 
 |  | ||||||
| hledgerpage :: Hack.Env -> [String] -> String -> HSP XML -> HSP XML |  | ||||||
| hledgerpage env msgs title content = |  | ||||||
|     <html> |  | ||||||
|       <head> |  | ||||||
|         <meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" /> |  | ||||||
|         <link rel="stylesheet" type="text/css" href="/style.css" media="all" /> |  | ||||||
|         <title><% title %></title> |  | ||||||
|       </head> |  | ||||||
|       <body> |  | ||||||
|         <% navbar env %> |  | ||||||
|         <div id="messages"><% intercalate ", " msgs %></div> |  | ||||||
|         <div id="content"><% content %></div> |  | ||||||
|       </body> |  | ||||||
|     </html> |  | ||||||
| 
 |  | ||||||
| navbar :: Hack.Env -> HSP XML |  | ||||||
| navbar env = |  | ||||||
|     <div id="navbar"> |  | ||||||
|       <a href="http://hledger.org" id="hledgerorglink">hledger.org</a> |  | ||||||
|       <% navlinks env %> |  | ||||||
|       <% searchform env %> |  | ||||||
|       <a href="http://hledger.org/MANUAL.html" id="helplink">help</a> |  | ||||||
|     </div> |  | ||||||
| 
 |  | ||||||
| getParamOrNull p = (decodeString . fromMaybe "") `fmap` getParam p |  | ||||||
| 
 |  | ||||||
| navlinks :: Hack.Env -> HSP XML |  | ||||||
| navlinks _ = do |  | ||||||
|    a <- getParamOrNull "a" |  | ||||||
|    p <- getParamOrNull "p" |  | ||||||
|    let addparams=(++(printf "?a=%s&p=%s" a p)) |  | ||||||
|        link s = <a href=(addparams s) class="navlink"><% s %></a> |  | ||||||
|    <div id="navlinks"> |  | ||||||
|      <% link "transactions" %> | |  | ||||||
|      <% link "register" %> | |  | ||||||
|      <% link "balance" %> |  | ||||||
|     </div> |  | ||||||
| 
 |  | ||||||
| searchform :: Hack.Env -> HSP XML |  | ||||||
| searchform env = do |  | ||||||
|    a <- getParamOrNull "a" |  | ||||||
|    p <- getParamOrNull "p" |  | ||||||
|    let resetlink | null a && null p = <span></span> |  | ||||||
|                  | otherwise = <span id="resetlink"><% nbsp %><a href=u>reset</a></span> |  | ||||||
|                  where u = dropWhile (=='/') $ Hack.Contrib.Request.path env |  | ||||||
|    <form action="" id="searchform"> |  | ||||||
|       <% nbsp %>search for:<% nbsp %><input name="a" size="20" value=a |  | ||||||
|       /><% help "filter-patterns" |  | ||||||
|       %><% nbsp %><% nbsp %>in reporting period:<% nbsp %><input name="p" size="20" value=p |  | ||||||
|       /><% help "period-expressions" |  | ||||||
|       %><input type="submit" name="submit" value="filter" style="display:none" /> |  | ||||||
|       <% resetlink %> |  | ||||||
|     </form> |  | ||||||
| 
 |  | ||||||
| addform :: Hack.Env -> HSP XML |  | ||||||
| addform env = do |  | ||||||
|   today <- io $ liftM showDate $ getCurrentDay |  | ||||||
|   let inputs = Hack.Contrib.Request.inputs env |  | ||||||
|       date  = decodeString $ fromMaybe today $ lookup "date"  inputs |  | ||||||
|       desc  = decodeString $ fromMaybe "" $ lookup "desc"  inputs |  | ||||||
|   <div> |  | ||||||
|    <div id="addform"> |  | ||||||
|    <form action="" method="POST"> |  | ||||||
|     <table border="0"> |  | ||||||
|       <tr> |  | ||||||
|         <td> |  | ||||||
|           Date: <input size="15" name="date" value=date /><% help "dates" %><% nbsp %> |  | ||||||
|           Description: <input size="35" name="desc" value=desc /><% nbsp %> |  | ||||||
|         </td> |  | ||||||
|       </tr> |  | ||||||
|       <% transactionfields 1 env %> |  | ||||||
|       <% transactionfields 2 env %> |  | ||||||
|       <tr id="addbuttonrow"><td><input type="submit" value="add transaction"  |  | ||||||
|       /><% help "file-format" %></td></tr> |  | ||||||
|     </table> |  | ||||||
|    </form> |  | ||||||
|    </div> |  | ||||||
|    <br clear="all" /> |  | ||||||
|    </div> |  | ||||||
| 
 |  | ||||||
| help :: String -> HSP XML |  | ||||||
| help topic = <a href=u>?</a> |  | ||||||
|     where u = printf "http://hledger.org/MANUAL.html%s" l :: String |  | ||||||
|           l | null topic = "" |  | ||||||
|             | otherwise = '#':topic |  | ||||||
| 
 |  | ||||||
| transactionfields :: Int -> Hack.Env -> HSP XML |  | ||||||
| transactionfields n env = do |  | ||||||
|   let inputs = Hack.Contrib.Request.inputs env |  | ||||||
|       acct = decodeString $ fromMaybe "" $ lookup acctvar inputs |  | ||||||
|       amt  = decodeString $ fromMaybe "" $ lookup amtvar  inputs |  | ||||||
|   <tr> |  | ||||||
|     <td> |  | ||||||
|     <% nbsp %><% nbsp %> |  | ||||||
|       Account: <input size="35" name=acctvar value=acct /><% nbsp %> |  | ||||||
|       Amount: <input size="15" name=amtvar value=amt /><% nbsp %> |  | ||||||
|     </td> |  | ||||||
|    </tr> |  | ||||||
|     where |  | ||||||
|       numbered = (++ show n) |  | ||||||
|       acctvar = numbered "acct" |  | ||||||
|       amtvar = numbered "amt" |  | ||||||
| 
 |  | ||||||
| handleAddform :: Journal -> AppUnit |  | ||||||
| handleAddform j = do |  | ||||||
|   env <- getenv |  | ||||||
|   d <- io getCurrentDay |  | ||||||
|   t <- io getCurrentLocalTime |  | ||||||
|   handle t $ validate env d |  | ||||||
|   where |  | ||||||
|     validate :: Hack.Env -> Day -> Failing Transaction |  | ||||||
|     validate env today = |  | ||||||
|         let inputs = Hack.Contrib.Request.inputs env |  | ||||||
|             date  = decodeString $ fromMaybe "today" $ lookup "date"  inputs |  | ||||||
|             desc  = decodeString $ fromMaybe "" $ lookup "desc"  inputs |  | ||||||
|             acct1 = decodeString $ fromMaybe "" $ lookup "acct1" inputs |  | ||||||
|             amt1  = decodeString $ fromMaybe "" $ lookup "amt1"  inputs |  | ||||||
|             acct2 = decodeString $ fromMaybe "" $ lookup "acct2" inputs |  | ||||||
|             amt2  = decodeString $ fromMaybe "" $ lookup "amt2"  inputs |  | ||||||
|             validateDate ""  = ["missing date"] |  | ||||||
|             validateDate _   = [] |  | ||||||
|             validateDesc ""  = ["missing description"] |  | ||||||
|             validateDesc _   = [] |  | ||||||
|             validateAcct1 "" = ["missing account 1"] |  | ||||||
|             validateAcct1 _  = [] |  | ||||||
|             validateAmt1 ""  = ["missing amount 1"] |  | ||||||
|             validateAmt1 _   = [] |  | ||||||
|             validateAcct2 "" = ["missing account 2"] |  | ||||||
|             validateAcct2 _  = [] |  | ||||||
|             validateAmt2 _   = [] |  | ||||||
|             amt1' = either (const missingamt) id $ parse someamount "" amt1 |  | ||||||
|             amt2' = either (const missingamt) id $ parse someamount "" amt2 |  | ||||||
|             (date', dateparseerr) = case fixSmartDateStrEither today date of |  | ||||||
|                                       Right d -> (d, []) |  | ||||||
|                                       Left e -> ("1900/01/01", [showDateParseError e]) |  | ||||||
|             t = Transaction { |  | ||||||
|                             tdate = parsedate date' -- date' must be parseable |  | ||||||
|                            ,teffectivedate=Nothing |  | ||||||
|                            ,tstatus=False |  | ||||||
|                            ,tcode="" |  | ||||||
|                            ,tdescription=desc |  | ||||||
|                            ,tcomment="" |  | ||||||
|                            ,tpostings=[ |  | ||||||
|                              Posting False acct1 amt1' "" RegularPosting (Just t') |  | ||||||
|                             ,Posting False acct2 amt2' "" RegularPosting (Just t') |  | ||||||
|                             ] |  | ||||||
|                            ,tpreceding_comment_lines="" |  | ||||||
|                            } |  | ||||||
|             (t', balanceerr) = case balanceTransaction t of |  | ||||||
|                            Right t'' -> (t'', []) |  | ||||||
|                            Left e -> (t, [head $ lines e]) -- show just the error not the transaction |  | ||||||
|             errs = concat [ |  | ||||||
|                     validateDate date |  | ||||||
|                    ,dateparseerr |  | ||||||
|                    ,validateDesc desc |  | ||||||
|                    ,validateAcct1 acct1 |  | ||||||
|                    ,validateAmt1 amt1 |  | ||||||
|                    ,validateAcct2 acct2 |  | ||||||
|                    ,validateAmt2 amt2 |  | ||||||
|                    ,balanceerr |  | ||||||
|                    ] |  | ||||||
|         in |  | ||||||
|         case null errs of |  | ||||||
|           False -> Failure errs |  | ||||||
|           True  -> Success t' |  | ||||||
| 
 |  | ||||||
|     handle :: LocalTime -> Failing Transaction -> AppUnit |  | ||||||
|     handle _ (Failure errs) = hsp errs addform |  | ||||||
|     handle ti (Success t)   = do |  | ||||||
|                     io $ journalAddTransaction j t >>= journalReload |  | ||||||
|                     journalpage [msg] j (showTransactions (optsToFilterSpec [] [] ti)) |  | ||||||
|        where msg = printf "Added transaction:\n%s" (show t) |  | ||||||
| 
 |  | ||||||
| nbsp :: XML |  | ||||||
| nbsp = cdata " " |  | ||||||
| @ -39,7 +39,7 @@ See "Hledger.Data.Ledger" for more examples. | |||||||
| -} | -} | ||||||
| 
 | 
 | ||||||
| module Hledger.Cli.Main where | module Hledger.Cli.Main where | ||||||
| #if defined(WEB) || defined(WEB610) | #if defined(WEB) | ||||||
| import System.Info (os) | import System.Info (os) | ||||||
| #endif | #endif | ||||||
| #if __GLASGOW_HASKELL__ <= 610 | #if __GLASGOW_HASKELL__ <= 610 | ||||||
| @ -76,7 +76,7 @@ main = do | |||||||
| #ifdef VTY | #ifdef VTY | ||||||
|        | cmd `isPrefixOf` "vty"       = withJournalDo opts args cmd vty |        | cmd `isPrefixOf` "vty"       = withJournalDo opts args cmd vty | ||||||
| #endif | #endif | ||||||
| #if defined(WEB) || defined(WEB610) | #if defined(WEB) | ||||||
|        | cmd `isPrefixOf` "web"       = withJournalDo opts args cmd web |        | cmd `isPrefixOf` "web"       = withJournalDo opts args cmd web | ||||||
| #endif | #endif | ||||||
| #ifdef CHART | #ifdef CHART | ||||||
| @ -86,7 +86,7 @@ main = do | |||||||
|        | otherwise                    = putStr help1 |        | otherwise                    = putStr help1 | ||||||
| 
 | 
 | ||||||
| -- in a web-enabled build on windows, run the web ui by default | -- in a web-enabled build on windows, run the web ui by default | ||||||
| #if defined(WEB) || defined(WEB610) | #if defined(WEB) | ||||||
|       defaultcmd | os=="mingw32" = Just web |       defaultcmd | os=="mingw32" = Just web | ||||||
|                  | otherwise = Nothing |                  | otherwise = Nothing | ||||||
| #else | #else | ||||||
|  | |||||||
| @ -42,10 +42,10 @@ help1 = | |||||||
|   " (DISABLED, install with -fvty)\n" ++ |   " (DISABLED, install with -fvty)\n" ++ | ||||||
| #endif | #endif | ||||||
|   "  web       - run a simple web-based UI" ++ |   "  web       - run a simple web-based UI" ++ | ||||||
| #if defined(WEB) || defined(WEB610) | #if defined(WEB) | ||||||
|   "\n" ++ |   "\n" ++ | ||||||
| #else | #else | ||||||
|   " (DISABLED, install with -fweb or -fweb610)\n" ++ |   " (DISABLED, install with -fweb)\n" ++ | ||||||
| #endif | #endif | ||||||
|   "  chart     - generate balances pie charts" ++ |   "  chart     - generate balances pie charts" ++ | ||||||
| #ifdef CHART | #ifdef CHART | ||||||
|  | |||||||
| @ -70,8 +70,6 @@ configflags   = tail ["" | |||||||
|   ,"vty" |   ,"vty" | ||||||
| #endif | #endif | ||||||
| #if defined(WEB) | #if defined(WEB) | ||||||
|   ,"web (using yesod/hamlet/simpleserver)" |   ,"web" | ||||||
| #elif defined(WEB610) |  | ||||||
|   ,"web (using loli/hsp/simpleserver)" |  | ||||||
| #endif | #endif | ||||||
|  ] |  ] | ||||||
|  | |||||||
							
								
								
									
										1
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								Makefile
									
									
									
									
									
								
							| @ -535,7 +535,6 @@ setversion: $(VERSIONSENSITIVEFILES) | |||||||
| 
 | 
 | ||||||
| Hledger/Cli/Version.hs: $(VERSIONFILE) | Hledger/Cli/Version.hs: $(VERSIONFILE) | ||||||
| 	perl -p -e "s/(^version *= *)\".*?\"/\1\"$(VERSION3)\"/" -i $@ | 	perl -p -e "s/(^version *= *)\".*?\"/\1\"$(VERSION3)\"/" -i $@ | ||||||
| # XXX also touch manually when switching between cabal install -fweb and -fweb610
 |  | ||||||
| 
 | 
 | ||||||
| hledger.cabal: $(VERSIONFILE) | hledger.cabal: $(VERSIONFILE) | ||||||
| 	perl -p -e "s/(^ *version:) *.*/\1 $(VERSION)/" -i $@ | 	perl -p -e "s/(^ *version:) *.*/\1 $(VERSION)/" -i $@ | ||||||
|  | |||||||
| @ -53,10 +53,6 @@ flag web | |||||||
|   description: enable the web ui (using yesod/hamlet/simpleserver, requires ghc 6.12) |   description: enable the web ui (using yesod/hamlet/simpleserver, requires ghc 6.12) | ||||||
|   default:     False |   default:     False | ||||||
| 
 | 
 | ||||||
| flag web610 |  | ||||||
|   description: enable the web ui (using loli/hsp/simpleserver, works with ghc 6.10) |  | ||||||
|   default:     False |  | ||||||
| 
 |  | ||||||
| executable hledger | executable hledger | ||||||
|   main-is:        hledger.hs |   main-is:        hledger.hs | ||||||
|   -- should set patchlevel here as in Makefile |   -- should set patchlevel here as in Makefile | ||||||
| @ -118,21 +114,6 @@ executable hledger | |||||||
|                  ,data-object >= 0.3.1.2 && < 0.4 |                  ,data-object >= 0.3.1.2 && < 0.4 | ||||||
|                  ,failure >= 0.1 && < 0.2 |                  ,failure >= 0.1 && < 0.2 | ||||||
| 
 | 
 | ||||||
|   if flag(web610) |  | ||||||
|     cpp-options: -DWEB610 |  | ||||||
|     other-modules:Hledger.Cli.Commands.Web610 |  | ||||||
|     build-depends: |  | ||||||
|                   hsp |  | ||||||
|                  ,hsx |  | ||||||
|                  ,xhtml >= 3000.2 |  | ||||||
|                  ,loli |  | ||||||
|                  ,io-storage |  | ||||||
|                  ,hack-contrib |  | ||||||
|                  ,hack |  | ||||||
|                  ,hack-handler-simpleserver |  | ||||||
|                  ,HTTP >= 4000.0 |  | ||||||
|                  ,applicative-extras |  | ||||||
| 
 |  | ||||||
| -- modules and dependencies below should be as above, except | -- modules and dependencies below should be as above, except | ||||||
| -- chart, vty, web etc. are not presently exposed as library functions | -- chart, vty, web etc. are not presently exposed as library functions | ||||||
| library | library | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user