Files
scratch-wasm/blah/Shakefile.hs
T
2026-08-24 08:25:07 -06:00

24 lines
690 B
Haskell

import Development.Shake
import Development.Shake.Command
import Development.Shake.FilePath
import Development.Shake.Util
main = shakeArgs shakeOptions $ do
action $ do
sourceFiles <- getDirectoryFiles "" ["//*.scm"]
need $ (-<.> "cps") <$> sourceFiles
alternatives $ do
"*.cps" %> \out -> do
let scm = out -<.> "scm"
need [scm]
Stdout cps0 <- cmd
"csc -debug 3"
[scm]
Stdout cps1 <- cmd
"sed -e" ["s/##core#lambda/κ/g;s/lambda/λ/g;/\\[cps\\]/d"] (Stdin cps0)
writeFile' out $ ";; -*- mode:scheme -*-\n" ++ cps1
phony "clean" $ do
removeFilesAfter ".shake" ["//*"]
liftIO $ removeFiles "." ["*.cps"]