diff options
Diffstat (limited to 'standalone/android/haskell-patches/yesod-static_1.1.2-remove-TH.patch')
-rw-r--r-- | standalone/android/haskell-patches/yesod-static_1.1.2-remove-TH.patch | 174 |
1 files changed, 0 insertions, 174 deletions
diff --git a/standalone/android/haskell-patches/yesod-static_1.1.2-remove-TH.patch b/standalone/android/haskell-patches/yesod-static_1.1.2-remove-TH.patch deleted file mode 100644 index b0446111b..000000000 --- a/standalone/android/haskell-patches/yesod-static_1.1.2-remove-TH.patch +++ /dev/null @@ -1,174 +0,0 @@ -From 476414b04064bb66fc25ba9ca426c309fe5c156e Mon Sep 17 00:00:00 2001 -From: Joey Hess <joey@kitenet.net> -Date: Mon, 15 Apr 2013 12:48:13 -0400 -Subject: [PATCH] remove TH - ---- - Yesod/Static.hs | 121 ---------------------------------------------- - dist/package.conf.inplace | 3 +- - 2 files changed, 2 insertions(+), 122 deletions(-) - -diff --git a/Yesod/Static.hs b/Yesod/Static.hs -index e8ca09f..193b1f0 100644 ---- a/Yesod/Static.hs -+++ b/Yesod/Static.hs -@@ -1,5 +1,3 @@ --{-# LANGUAGE QuasiQuotes #-} --{-# LANGUAGE TemplateHaskell #-} - {-# LANGUAGE TypeFamilies #-} - {-# LANGUAGE CPP #-} - {-# LANGUAGE FlexibleInstances #-} -@@ -34,11 +32,6 @@ module Yesod.Static - -- * Smart constructor - , static - , staticDevel -- , embed -- -- * Template Haskell helpers -- , staticFiles -- , staticFilesList -- , publicFiles - -- * Hashing - , base64md5 - #ifdef TEST_EXPORT -@@ -50,7 +43,6 @@ import Prelude hiding (FilePath) - import qualified Prelude - import System.Directory - import Control.Monad --import Data.FileEmbed (embedDir) - - import Yesod.Core hiding (lift) - -@@ -111,18 +103,6 @@ staticDevel dir = do - hashLookup <- cachedETagLookupDevel dir - return $ Static $ webAppSettingsWithLookup (F.decodeString dir) hashLookup - ---- | Produce a 'Static' based on embedding all of the static ---- files' contents in the executable at compile time. ---- Nota Bene: if you replace the scaffolded 'static' call in Settings/StaticFiles.hs ---- you will need to change the scaffolded addStaticContent. Otherwise, some of your ---- assets will be 404'ed. This is because by default yesod will generate compile those ---- assets to @static/tmp@ which for 'static' is fine since they are served out of the ---- directory itself. With embedded static, that will not work. ---- You can easily change @addStaticContent@ to @\_ _ _ -> return Nothing@ as a workaround. ---- This will cause yesod to embed those assets into the generated HTML file itself. --embed :: Prelude.FilePath -> Q Exp --embed fp = [|Static (embeddedSettings $(embedDir fp))|] -- - instance RenderRoute Static where - -- | A route on the static subsite (see also 'staticFiles'). - -- -@@ -167,59 +147,6 @@ getFileListPieces = flip go id - dirs' <- mapM (\f -> go (fullPath f) (front . (:) f)) dirs - return $ concat $ files' : dirs' - ---- | Template Haskell function that automatically creates routes ---- for all of your static files. ---- ---- For example, if you used ---- ---- > staticFiles "static/" ---- ---- and you had files @\"static\/style.css\"@ and ---- @\"static\/js\/script.js\"@, then the following top-level ---- definitions would be created: ---- ---- > style_css = StaticRoute ["style.css"] [] ---- > js_script_js = StaticRoute ["js/script.js"] [] ---- ---- Note that dots (@.@), dashes (@-@) and slashes (@\/@) are ---- replaced by underscores (@\_@) to create valid Haskell ---- identifiers. --staticFiles :: Prelude.FilePath -> Q [Dec] --staticFiles dir = mkStaticFiles dir -- ---- | Same as 'staticFiles', but takes an explicit list of files ---- to create identifiers for. The files path given are relative ---- to the static folder. For example, to create routes for the ---- files @\"static\/js\/jquery.js\"@ and ---- @\"static\/css\/normalize.css\"@, you would use: ---- ---- > staticFilesList \"static\" [\"js\/jquery.js\", \"css\/normalize.css\"] ---- ---- This can be useful when you have a very large number of static ---- files, but only need to refer to a few of them from Haskell. --staticFilesList :: Prelude.FilePath -> [Prelude.FilePath] -> Q [Dec] --staticFilesList dir fs = -- mkStaticFilesList dir (map split fs) "StaticRoute" True -- where -- split :: Prelude.FilePath -> [String] -- split [] = [] -- split x = -- let (a, b) = break (== '/') x -- in a : split (drop 1 b) -- ---- | Same as 'staticFiles', but doesn't append an ETag to the ---- query string. ---- ---- Using 'publicFiles' will speed up the compilation, since there ---- won't be any need for hashing files during compile-time. ---- However, since the ETag ceases to be part of the URL, the ---- 'Static' subsite won't be able to set the expire date too far ---- on the future. Browsers still will be able to cache the ---- contents, however they'll need send a request to the server to ---- see if their copy is up-to-date. --publicFiles :: Prelude.FilePath -> Q [Dec] --publicFiles dir = mkStaticFiles' dir "StaticRoute" False -- - - mkHashMap :: Prelude.FilePath -> IO (M.Map F.FilePath S8.ByteString) - mkHashMap dir = do -@@ -262,54 +189,6 @@ cachedETagLookup dir = do - etags <- mkHashMap dir - return $ (\f -> return $ M.lookup f etags) - --mkStaticFiles :: Prelude.FilePath -> Q [Dec] --mkStaticFiles fp = mkStaticFiles' fp "StaticRoute" True -- --mkStaticFiles' :: Prelude.FilePath -- ^ static directory -- -> String -- ^ route constructor "StaticRoute" -- -> Bool -- ^ append checksum query parameter -- -> Q [Dec] --mkStaticFiles' fp routeConName makeHash = do -- fs <- qRunIO $ getFileListPieces fp -- mkStaticFilesList fp fs routeConName makeHash -- --mkStaticFilesList -- :: Prelude.FilePath -- ^ static directory -- -> [[String]] -- ^ list of files to create identifiers for -- -> String -- ^ route constructor "StaticRoute" -- -> Bool -- ^ append checksum query parameter -- -> Q [Dec] --mkStaticFilesList fp fs routeConName makeHash = do -- concat `fmap` mapM mkRoute fs -- where -- replace' c -- | 'A' <= c && c <= 'Z' = c -- | 'a' <= c && c <= 'z' = c -- | '0' <= c && c <= '9' = c -- | otherwise = '_' -- mkRoute f = do -- let name' = intercalate "_" $ map (map replace') f -- routeName = mkName $ -- case () of -- () -- | null name' -> error "null-named file" -- | isDigit (head name') -> '_' : name' -- | isLower (head name') -> name' -- | otherwise -> '_' : name' -- f' <- [|map pack $(lift f)|] -- let route = mkName routeConName -- pack' <- [|pack|] -- qs <- if makeHash -- then do hash <- qRunIO $ base64md5File $ pathFromRawPieces fp f -- [|[(pack "etag", pack $(lift hash))]|] -- else return $ ListE [] -- return -- [ SigD routeName $ ConT route -- , FunD routeName -- [ Clause [] (NormalB $ (ConE route) `AppE` f' `AppE` qs) [] -- ] -- ] -- - base64md5File :: Prelude.FilePath -> IO String - base64md5File = fmap (base64 . encode) . hashFile - where encode d = Data.Serialize.encode (d :: MD5) |