mirror of
https://github.com/reanimate/reanimate.git
synced 2026-09-14 09:32:22 +00:00
58 lines
4.8 KiB
HTML
58 lines
4.8 KiB
HTML
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
<style type="text/css">
|
|
span.lineno { color: white; background: #aaaaaa; border-right: solid white 12px }
|
|
span.nottickedoff { background: yellow}
|
|
span.istickedoff { background: white }
|
|
span.tickonlyfalse { margin: -1px; border: 1px solid #f20913; background: #f20913 }
|
|
span.tickonlytrue { margin: -1px; border: 1px solid #60de51; background: #60de51 }
|
|
span.funcount { font-size: small; color: orange; z-index: 2; position: absolute; right: 20 }
|
|
span.decl { font-weight: bold }
|
|
span.spaces { background: white }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<pre>
|
|
<span class="decl"><span class="nottickedoff">never executed</span> <span class="tickonlytrue">always true</span> <span class="tickonlyfalse">always false</span></span>
|
|
</pre>
|
|
<pre>
|
|
<span class="lineno"> 1 </span>module Reanimate.Driver.Compile ( compile ) where
|
|
<span class="lineno"> 2 </span>
|
|
<span class="lineno"> 3 </span>import Reanimate.Driver.Server (findOwnSource)
|
|
<span class="lineno"> 4 </span>import System.Directory
|
|
<span class="lineno"> 5 </span>import System.Exit
|
|
<span class="lineno"> 6 </span>import System.FilePath
|
|
<span class="lineno"> 7 </span>import System.Process
|
|
<span class="lineno"> 8 </span>import System.IO
|
|
<span class="lineno"> 9 </span>
|
|
<span class="lineno"> 10 </span>compile :: [String] -> IO ()
|
|
<span class="lineno"> 11 </span><span class="decl"><span class="nottickedoff">compile opts = do</span>
|
|
<span class="lineno"> 12 </span><span class="spaces"> </span><span class="nottickedoff">mbSelf <- findOwnSource</span>
|
|
<span class="lineno"> 13 </span><span class="spaces"> </span><span class="nottickedoff">case mbSelf of</span>
|
|
<span class="lineno"> 14 </span><span class="spaces"> </span><span class="nottickedoff">Nothing -> do</span>
|
|
<span class="lineno"> 15 </span><span class="spaces"> </span><span class="nottickedoff">hPutStrLn stderr</span>
|
|
<span class="lineno"> 16 </span><span class="spaces"> </span><span class="nottickedoff">"Failed to find source code. Did you already compile the animations?\n\</span>
|
|
<span class="lineno"> 17 </span><span class="spaces"> </span><span class="nottickedoff">\Try running again without the --compile flag."</span>
|
|
<span class="lineno"> 18 </span><span class="spaces"> </span><span class="nottickedoff">exitFailure</span>
|
|
<span class="lineno"> 19 </span><span class="spaces"> </span><span class="nottickedoff">Just self -> do</span>
|
|
<span class="lineno"> 20 </span><span class="spaces"> </span><span class="nottickedoff">let selfDir = takeDirectory self</span>
|
|
<span class="lineno"> 21 </span><span class="spaces"> </span><span class="nottickedoff">selfName = takeBaseName self</span>
|
|
<span class="lineno"> 22 </span><span class="spaces"> </span><span class="nottickedoff">outDir = selfDir </> ".reanimate" </> selfName</span>
|
|
<span class="lineno"> 23 </span><span class="spaces"> </span><span class="nottickedoff">target = outDir </> selfName</span>
|
|
<span class="lineno"> 24 </span><span class="spaces"> </span><span class="nottickedoff">ghcOptions =</span>
|
|
<span class="lineno"> 25 </span><span class="spaces"> </span><span class="nottickedoff">["-rtsopts", "--make", "-threaded", "-O2"] ++</span>
|
|
<span class="lineno"> 26 </span><span class="spaces"> </span><span class="nottickedoff">["-odir", outDir, "-hidir", outDir] ++</span>
|
|
<span class="lineno"> 27 </span><span class="spaces"> </span><span class="nottickedoff">[self, "-o", target]</span>
|
|
<span class="lineno"> 28 </span><span class="spaces"> </span><span class="nottickedoff">createDirectoryIfMissing True outDir</span>
|
|
<span class="lineno"> 29 </span><span class="spaces"> </span><span class="nottickedoff">withCurrentDirectory selfDir $ do</span>
|
|
<span class="lineno"> 30 </span><span class="spaces"> </span><span class="nottickedoff">checkExitCode =<< rawSystem "stack" (["ghc", "--"] ++ ghcOptions)</span>
|
|
<span class="lineno"> 31 </span><span class="spaces"> </span><span class="nottickedoff">checkExitCode =<< rawSystem target opts</span></span>
|
|
<span class="lineno"> 32 </span>
|
|
<span class="lineno"> 33 </span>checkExitCode :: ExitCode -> IO ()
|
|
<span class="lineno"> 34 </span><span class="decl"><span class="nottickedoff">checkExitCode ExitSuccess = return ()</span>
|
|
<span class="lineno"> 35 </span><span class="spaces"></span><span class="nottickedoff">checkExitCode (ExitFailure n) = exitWith (ExitFailure n)</span></span>
|
|
|
|
</pre>
|
|
</body>
|
|
</html>
|