, parseWWWFormURLEncoded
, splitPathInfo
, trim
+
+ , getLastModified
+
, liftByteString
, liftLazyByteString
, liftAscii
, liftUTCTime
)
where
+import Control.Applicative
import Control.Monad
import Data.Ascii (Ascii, CIAscii, AsciiBuilder)
import qualified Data.Ascii as A
import Data.Text (Text)
import qualified Data.Text as T
import Data.Time
+import Data.Time.Clock.POSIX
import Language.Haskell.TH.Lib
import Language.Haskell.TH.Syntax
import Network.URI
import Prelude hiding (last)
import Prelude.Unicode
+import System.Directory
+import System.Time (ClockTime(..))
-- |>>> splitBy (== ':') "ab:c:def"
-- ["ab", "c", "def"]
where
f = dropWhile isSpace
+-- |Get the modification time of a given file.
+getLastModified ∷ FilePath → IO UTCTime
+getLastModified = (clockTimeToUTC <$>) ∘ getModificationTime
+ where
+ clockTimeToUTC ∷ ClockTime → UTCTime
+ clockTimeToUTC (TOD sec picoSec)
+ = posixSecondsToUTCTime
+ $ fromRational
+ $ sec % 1 + picoSec % (1000 ⋅ 1000 ⋅ 1000 ⋅ 1000)
+
-- |Convert a 'ByteString' to an 'Exp' representing it as a literal.
liftByteString ∷ ByteString → Q Exp
liftByteString bs