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