1 {-# LANGUAGE OverloadedStrings #-} 2 module Databrary.Web.Stylus 3 ( generateStylusCSS 4 ) where 5 6 import Control.Monad.IO.Class (liftIO) 7 import System.Process (callProcess) 8 import System.FilePath (takeExtensions) 9 10 import Databrary.Files 11 import Databrary.Web 12 import Databrary.Web.Types 13 import Databrary.Web.Files 14 import Databrary.Web.Generate 15 16 generateStylusCSS :: WebGenerator 17 generateStylusCSS = \fo@(f, _) -> do 18 let src = "app.styl" 19 sl <- liftIO $ findWebFiles ".styl" 20 fpRel <- liftIO $ unRawFilePath $ webFileRel f 21 fpAbs <- liftIO $ unRawFilePath $ webFileAbs f 22 srcAbs <- liftIO $ (unRawFilePath . webFileAbs) =<< makeWebFilePath =<< rawFilePath src 23 webRegenerate 24 (callProcess 25 "stylus" $ 26 (if takeExtensions fpRel == ".min.css" then ("-c":) else id) 27 [ "-u", "nib" 28 , "-u", "autoprefixer-stylus" 29 , "-o", fpAbs 30 , srcAbs 31 ]) 32 [] 33 sl 34 fo