128 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Haskell
		
	
	
	
	
	
			
		
		
	
	
			128 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Haskell
		
	
	
	
	
	
{-# LANGUAGE CPP #-}
 | 
						|
module Hledger.Web.Settings
 | 
						|
    (
 | 
						|
     hamletFile
 | 
						|
    , cassiusFile
 | 
						|
    , juliusFile
 | 
						|
    -- , connStr
 | 
						|
    -- , ConnectionPool
 | 
						|
    -- , withConnectionPool
 | 
						|
    -- , runConnectionPool
 | 
						|
    , approot
 | 
						|
    , staticroot
 | 
						|
    , datadir
 | 
						|
    , defhost
 | 
						|
    , defport
 | 
						|
    , browserstartdelay
 | 
						|
    , hledgerorgurl
 | 
						|
    , manualurl
 | 
						|
    , style_css
 | 
						|
    , hledger_js
 | 
						|
    , jquery_js
 | 
						|
    , jquery_url_js
 | 
						|
    , dhtmlxcommon_js
 | 
						|
    , dhtmlxcombo_js
 | 
						|
    , robots_txt
 | 
						|
    ) where
 | 
						|
 | 
						|
import Language.Haskell.TH.Syntax
 | 
						|
import System.FilePath ((</>))
 | 
						|
import qualified Text.Cassius as H
 | 
						|
import qualified Text.Hamlet as H
 | 
						|
import qualified Text.Julius as H
 | 
						|
import Text.Printf (printf)
 | 
						|
-- import Database.Persist.Sqlite
 | 
						|
-- import Yesod (MonadCatchIO)
 | 
						|
import Yesod.Helpers.Static
 | 
						|
 | 
						|
 | 
						|
browserstartdelay = 100000 -- microseconds
 | 
						|
 | 
						|
----------------------------------------------------------------------
 | 
						|
-- urls
 | 
						|
----------------------------------------------------------------------
 | 
						|
 | 
						|
hledgerorgurl     = "http://hledger.org"
 | 
						|
manualurl         = hledgerorgurl++"/MANUAL.html"
 | 
						|
 | 
						|
defhost           = "localhost"
 | 
						|
defport           = 5000
 | 
						|
 | 
						|
approot :: String
 | 
						|
#ifdef PRODUCTION
 | 
						|
approot = printf "http://%s:%d" defhost (defport :: Int)
 | 
						|
#else
 | 
						|
approot = printf "http://%s:%d" defhost (defport :: Int)
 | 
						|
#endif
 | 
						|
 | 
						|
staticroot :: String
 | 
						|
staticroot = approot ++ "/static"
 | 
						|
 | 
						|
-- Some static routes we can refer to by name, without hard-coded filesystem location.
 | 
						|
style_css       = StaticRoute ["style.css"] []
 | 
						|
hledger_js      = StaticRoute ["hledger.js"] []
 | 
						|
jquery_js       = StaticRoute ["jquery.js"] []
 | 
						|
jquery_url_js   = StaticRoute ["jquery.url.js"] []
 | 
						|
dhtmlxcommon_js = StaticRoute ["dhtmlxcommon.js"] []
 | 
						|
dhtmlxcombo_js  = StaticRoute ["dhtmlxcombo.js"] []
 | 
						|
 | 
						|
-- Content for /robots.txt
 | 
						|
robots_txt = "User-agent: *"
 | 
						|
 | 
						|
 | 
						|
----------------------------------------------------------------------
 | 
						|
-- filesystem
 | 
						|
----------------------------------------------------------------------
 | 
						|
 | 
						|
-- | Hard-coded data directory path. This must be in your current dir when
 | 
						|
-- you compile. At run time it's also required but we'll auto-create it.
 | 
						|
datadir :: FilePath
 | 
						|
datadir = "./.hledger/web/"
 | 
						|
 | 
						|
-- The following are compile-time macros. If the file paths they point to
 | 
						|
-- don't exist, they will give an error (at compile time). If PRODUCTION
 | 
						|
-- is defined, files are read only once at (startup?) time, otherwise
 | 
						|
-- repeatedly at run time.
 | 
						|
 | 
						|
hamletFile :: FilePath -> Q Exp
 | 
						|
#ifdef PRODUCTION
 | 
						|
hamletFile x = H.hamletFile $ datadir </> (x ++ ".hamlet")
 | 
						|
#else
 | 
						|
hamletFile x = H.hamletFileDebug $ datadir </> (x ++ ".hamlet")
 | 
						|
#endif
 | 
						|
 | 
						|
cassiusFile :: FilePath -> Q Exp
 | 
						|
#ifdef PRODUCTION
 | 
						|
cassiusFile x = H.cassiusFile $ datadir </> (x ++ ".cassius")
 | 
						|
#else
 | 
						|
cassiusFile x = H.cassiusFileDebug $ datadir </> (x ++ ".cassius")
 | 
						|
#endif
 | 
						|
 | 
						|
juliusFile :: FilePath -> Q Exp
 | 
						|
#ifdef PRODUCTION
 | 
						|
juliusFile x = H.juliusFile $ datadir </> (x ++ ".julius")
 | 
						|
#else
 | 
						|
juliusFile x = H.juliusFileDebug $ datadir </> (x ++ ".julius")
 | 
						|
#endif
 | 
						|
 | 
						|
----------------------------------------------------------------------
 | 
						|
-- database
 | 
						|
----------------------------------------------------------------------
 | 
						|
 | 
						|
-- connStr :: String
 | 
						|
-- #ifdef PRODUCTION
 | 
						|
-- connStr = "production.db3"
 | 
						|
-- #else
 | 
						|
-- connStr = "debug.db3"
 | 
						|
-- #endif
 | 
						|
 | 
						|
-- connectionCount :: Int
 | 
						|
-- connectionCount = 10
 | 
						|
 | 
						|
-- withConnectionPool :: MonadCatchIO m => (ConnectionPool -> m a) -> m a
 | 
						|
-- withConnectionPool = withSqlitePool connStr connectionCount
 | 
						|
 | 
						|
-- runConnectionPool :: MonadCatchIO m => SqlPersist m a -> ConnectionPool -> m a
 | 
						|
-- runConnectionPool = runSqlPool
 | 
						|
 |