packages feed

yesod-auth-hmac-keccak-0.0.0.2: Setup.hs

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE BangPatterns #-}
{-# LANGUAGE PartialTypeSignatures #-}

import Distribution.Simple
import Distribution.PackageDescription (HookedBuildInfo, emptyHookedBuildInfo)
-- import Language.PureScript.Make
-- import Language.PureScript.Names
-- import Language.PureScript.Options
-- import Language.PureScript.AST.Declarations
-- import Language.PureScript.Parser.Declarations (parseModulesFromFiles)

import System.Process

-- import qualified Data.Map as M
-- import qualified Data.Text as T
-- import Data.Text.Encoding
-- import Data.Maybe (fromJust)
-- import qualified Data.ByteString.Lazy as BL
-- import qualified Data.ByteString as BS

import Debug.Trace

main = defaultMainWithHooks simpleUserHooks
  { -- preBuild = preBuild'
    preConf = preConf'
  }

preConf' :: _ -> _ -> IO HookedBuildInfo
preConf' _ _ = do
  traceIO "Installing purescript dependencies"
  run11 <- readProcess "/usr/local/bin/bower" ["install"] []
  run12 <- readProcess "/usr/bin/npm" ["install", "crypto-js"] []
  traceIO "Compiling purescript files"
  run21 <- readProcess "/bin/mkdir" ["-p", "static/js"] []
  run22 <- readProcess "/usr/local/bin/pulp" ["browserify" , "-t" , "static/js/auth.js"] []
  return emptyHookedBuildInfo

-- preBuild' :: _ -> _ -> IO HookedBuildInfo
-- preBuild' _ _ = do
--   exts <- runMake defaultOptions $ do
--     traceM "im in here!"
--     !src <- makeIO (const $ error "error") $ glob "src/*.purs"
--     traceM $ show src
--     traceM "reading in sources"
--     !dep <- makeIO (const $ error "error") $ glob
--       "bower_components/purescript-*/src/**/*.purs"
--     traceM $ show dep
--     traceM "reading in dependencies"
--     !content <- zip [1..] <$> mapM (\s -> do
--       cont <- readTextFile s
--       return $ decodeUtf8 $ toStrict cont
--       ) (dep ++ src)
--     !mods <- parseModulesFromFiles
--       (fromJust . flip lookup (zip [1..] (dep ++ src)))
--       content
--     let !srcMap = M.fromList $ zip (map getModuleName $ map snd mods)
--           (map Right (dep ++ src))
--     traceM "building srcMap"
--     !fgn <- inferForeignModules srcMap
--     traceM "infering foreign modules"
--     let !ma = buildMakeActions "static/js" srcMap fgn True
--     traceM "built MakeActions"
--     traceM "parsing modules"
--     make ma (map snd mods)
--     traceM "made"
--   traceM $ show exts
--   return emptyHookedBuildInfo
--
-- toStrict :: BL.ByteString -> BS.ByteString
-- toStrict = BS.concat . BL.toChunks