diff options
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | Utility/WebApp.hs | 3 | ||||
-rw-r--r-- | Utility/Yesod.hs | 14 | ||||
-rw-r--r-- | git-annex.cabal | 17 |
4 files changed, 32 insertions, 4 deletions
@@ -2,7 +2,7 @@ CFLAGS=-Wall GIT_ANNEX_TMP_BUILD_DIR?=tmp IGNORE=-ignore-package monads-fd -ignore-package monads-tf BASEFLAGS=-threaded -Wall $(IGNORE) -outputdir $(GIT_ANNEX_TMP_BUILD_DIR) -IUtility -FEATURES=-DWITH_ASSISTANT -DWITH_S3 -DWITH_WEBAPP +FEATURES=-DWITH_ASSISTANT -DWITH_S3 -DWITH_WEBAPP -DWITH_OLD_YESOD bins=git-annex mans=git-annex.1 git-annex-shell.1 diff --git a/Utility/WebApp.hs b/Utility/WebApp.hs index be186baa2..14718d543 100644 --- a/Utility/WebApp.hs +++ b/Utility/WebApp.hs @@ -26,6 +26,7 @@ import Crypto.Random import Data.Digest.Pure.SHA import qualified Web.ClientSession as CS import qualified Data.ByteString.Lazy as L +import qualified Data.ByteString as B import qualified Data.Text as T import qualified Data.Text.Encoding as TE import Blaze.ByteString.Builder.Char.Utf8 (fromText) @@ -113,7 +114,7 @@ logRequest req = do where frombs v = toString $ L.fromChunks [v] -lookupRequestField :: CI.CI Ascii -> Wai.Request -> Ascii +lookupRequestField :: CI.CI B.ByteString -> Wai.Request -> B.ByteString lookupRequestField k req = fromMaybe "" . lookup k $ Wai.requestHeaders req {- Rather than storing a session key on disk, use a random key diff --git a/Utility/Yesod.hs b/Utility/Yesod.hs index 2d2c6c343..b6748f240 100644 --- a/Utility/Yesod.hs +++ b/Utility/Yesod.hs @@ -5,13 +5,27 @@ - Licensed under the GNU GPL version 3 or higher. -} +{-# LANGUAGE CPP #-} + module Utility.Yesod where import Yesod.Default.Util import Language.Haskell.TH.Syntax +#ifndef WITH_OLD_YESOD +import Data.Default (def) +import Text.Hamlet +#endif widgetFile :: String -> Q Exp +#ifdef WITH_OLD_YESOD widgetFile = widgetFileNoReload +#else +widgetFile = widgetFileNoReload $ def + { wfsHamletSettings = defaultHamletSettings + { hamletNewlines = AlwaysNewlines + } + } +#endif hamletTemplate :: FilePath -> FilePath hamletTemplate f = globFile "hamlet" f diff --git a/git-annex.cabal b/git-annex.cabal index ec96bdc32..cdac47bc7 100644 --- a/git-annex.cabal +++ b/git-annex.cabal @@ -40,6 +40,12 @@ Flag Assistant Flag Webapp Description: Enable git-annex webapp +Flag CurrentYesod + Description: Using a current version of Yesod + +Flag OldYesod + Description: Using an old version of Yesod + Executable git-annex Main-Is: git-annex.hs Build-Depends: MissingH, hslogger, directory, filepath, @@ -73,8 +79,15 @@ Executable git-annex Build-Depends: dbus CPP-Options: -DWITH_DBUS - if flag(Webapp) - Build-Depends: yesod, yesod-static, yesod-default, case-insensitive, + if flag(CurrentYesod) + Build-Depends: yesod-default (>= 1.1.0) + + if flag(OldYesod) + Build-Depends: yesod-default (<= 1.0.1.1) + CPP-Options: -DWITH_OLD_YESOD + + if flag(Webapp) && (flag(CurrentYesod) || flag(OldYesod)) + Build-Depends: yesod, yesod-static, case-insensitive, http-types, transformers, wai, wai-logger, warp, blaze-builder, blaze-html, crypto-api, hamlet, clientsession, template-haskell |