web: get static files from the cabal data dir, or the current dir when using make (#13)
This commit is contained in:
		
							parent
							
								
									23e3c81acc
								
							
						
					
					
						commit
						7bd14a367a
					
				| @ -1,4 +1,4 @@ | |||||||
| {-# LANGUAGE FlexibleContexts, FlexibleInstances, MultiParamTypeClasses #-} | {-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, MultiParamTypeClasses #-} | ||||||
| {-# OPTIONS_GHC -F -pgmFtrhsx #-} | {-# OPTIONS_GHC -F -pgmFtrhsx #-} | ||||||
| {-|  | {-|  | ||||||
| A web-based UI. | A web-based UI. | ||||||
| @ -23,6 +23,11 @@ import Network.Loli (loli, io, get, post, html, text, public) | |||||||
| import Network.Loli.Type (AppUnit) | import Network.Loli.Type (AppUnit) | ||||||
| import Network.Loli.Utils (update) | import Network.Loli.Utils (update) | ||||||
| import Options hiding (value) | import Options hiding (value) | ||||||
|  | #ifdef MAKE | ||||||
|  | import Paths_hledger_make (getDataFileName) | ||||||
|  | #else | ||||||
|  | import Paths_hledger (getDataFileName) | ||||||
|  | #endif | ||||||
| import System.Directory (getModificationTime) | import System.Directory (getModificationTime) | ||||||
| import System.IO.Storage (withStore, putValue, getValue) | import System.IO.Storage (withStore, putValue, getValue) | ||||||
| import System.Process (readProcess) | import System.Process (readProcess) | ||||||
| @ -110,6 +115,7 @@ server :: [Opt] -> [String] -> Ledger -> IO () | |||||||
| server opts args l = | server opts args l = | ||||||
|   -- server initialisation |   -- server initialisation | ||||||
|   withStore "hledger" $ do -- IO () |   withStore "hledger" $ do -- IO () | ||||||
|  |     webfiles <- getDataFileName "web" | ||||||
|     putValue "hledger" "ledger" l |     putValue "hledger" "ledger" l | ||||||
|     -- XXX hack-happstack abstraction leak |     -- XXX hack-happstack abstraction leak | ||||||
|     hostname <- readProcess "hostname" [] "" `catch` \_ -> return "hostname" |     hostname <- readProcess "hostname" [] "" `catch` \_ -> return "hostname" | ||||||
| @ -136,7 +142,7 @@ server opts args l = | |||||||
|           get  "/env"       $ getenv >>= (text . show) |           get  "/env"       $ getenv >>= (text . show) | ||||||
|           get  "/params"    $ getenv >>= (text . show . Hack.Contrib.Request.params) |           get  "/params"    $ getenv >>= (text . show . Hack.Contrib.Request.params) | ||||||
|           get  "/inputs"    $ getenv >>= (text . show . Hack.Contrib.Request.inputs) |           get  "/inputs"    $ getenv >>= (text . show . Hack.Contrib.Request.inputs) | ||||||
|           public (Just "Commands/Web") ["/static"] |           public (Just webfiles) ["/style.css"] | ||||||
|           get  "/"          $ redirect ("transactions") Nothing |           get  "/"          $ redirect ("transactions") Nothing | ||||||
|           ) env |           ) env | ||||||
| 
 | 
 | ||||||
| @ -186,7 +192,7 @@ hledgerpage env msgs title content = | |||||||
|     <html> |     <html> | ||||||
|       <head> |       <head> | ||||||
|         <meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" /> |         <meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" /> | ||||||
|         <link rel="stylesheet" type="text/css" href="/static/style.css" media="all" /> |         <link rel="stylesheet" type="text/css" href="/style.css" media="all" /> | ||||||
|         <title><% title %></title> |         <title><% title %></title> | ||||||
|       </head> |       </head> | ||||||
|       <body> |       <body> | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								Makefile
									
									
									
									
									
								
							| @ -31,7 +31,7 @@ DOCFILES:=README README2 MANUAL NEWS CONTRIBUTORS SCREENSHOTS | |||||||
| BINARYFILENAME=`runhaskell ./hledger.hs --binary-filename` | BINARYFILENAME=`runhaskell ./hledger.hs --binary-filename` | ||||||
| PATCHLEVEL:=$(shell expr `darcs changes --count --from-tag=\\\\\.` - 1) | PATCHLEVEL:=$(shell expr `darcs changes --count --from-tag=\\\\\.` - 1) | ||||||
| WARNINGS:=-W -fwarn-tabs #-fwarn-orphans -fwarn-simple-patterns -fwarn-monomorphism-restriction -fwarn-name-shadowing | WARNINGS:=-W -fwarn-tabs #-fwarn-orphans -fwarn-simple-patterns -fwarn-monomorphism-restriction -fwarn-name-shadowing | ||||||
| BUILDFLAGS:=-DPATCHLEVEL=$(PATCHLEVEL) $(OPTFLAGS) $(WARNINGS) | BUILDFLAGS:=-DMAKE -DPATCHLEVEL=$(PATCHLEVEL) $(OPTFLAGS) $(WARNINGS) | ||||||
| TIME:=$(shell date +"%Y%m%d%H%M") | TIME:=$(shell date +"%Y%m%d%H%M") | ||||||
| 
 | 
 | ||||||
| default: tag hledger | default: tag hledger | ||||||
|  | |||||||
							
								
								
									
										9
									
								
								Paths_hledger_make.hs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								Paths_hledger_make.hs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,9 @@ | |||||||
|  | -- dummy Paths_hledger for use when building with make | ||||||
|  | -- cabal build generates a more useful one | ||||||
|  | 
 | ||||||
|  | module Paths_hledger_make | ||||||
|  | where | ||||||
|  | 
 | ||||||
|  | import System.FilePath.Posix ((</>)) | ||||||
|  | 
 | ||||||
|  | getDataFileName path = return $ "data" </> path | ||||||
| @ -22,7 +22,9 @@ stability:      experimental | |||||||
| tested-with:    GHC==6.8, GHC==6.10 | tested-with:    GHC==6.8, GHC==6.10 | ||||||
| cabal-version:  >= 1.2 | cabal-version:  >= 1.2 | ||||||
| build-type:     Custom | build-type:     Custom | ||||||
| 
 | data-dir:       data | ||||||
|  | data-files: | ||||||
|  |                 web/style.css | ||||||
| extra-tmp-files: | extra-tmp-files: | ||||||
| extra-source-files: | extra-source-files: | ||||||
|   README |   README | ||||||
| @ -97,6 +99,7 @@ executable hledger | |||||||
|                   Ledger.Types |                   Ledger.Types | ||||||
|                   Ledger.Utils |                   Ledger.Utils | ||||||
|                   Options |                   Options | ||||||
|  |                   Paths_hledger | ||||||
|                   Tests |                   Tests | ||||||
|                   Utils |                   Utils | ||||||
|                   Version |                   Version | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user