need
生成されたファイルに対するルールの正しい方法は何ですか? これが私が試したことです:
import Development.Shake
import System.IO
import Control.Monad
main = do
s <- withBinaryFile "/dev/urandom" ReadMode $ replicateM 10 . hGetChar
shakeArgs shakeOptions $ do
want ["a.out"]
"generated" *> \target -> writeFileChanged target s
"*.out" *> \out -> do
need ["generated"]
writeFile' out =<< readFile' "generated"
generated
ただし、これにより、再実行されないというルールが発生するため、実行a.out
を繰り返しても同じままです。