aboutsummaryrefslogtreecommitdiff
path: root/html-test/accept.lhs
diff options
context:
space:
mode:
authorSimon Hengel <sol@typeful.net>2012-10-15 16:10:24 +0200
committerSimon Hengel <sol@typeful.net>2012-10-15 19:32:42 +0200
commit3c5efc1361484f55d9e40b6be4618b2ff8aded26 (patch)
treee8c4a7611673aaf346f859864724b434d6f04c8b /html-test/accept.lhs
parente251a5e26ca9ad3f783a251e2cac04b83a7f696f (diff)
Make test management scripts more robust
* They are now independent from the current directory, and hence can be called from everywhere * On UNIX/Linux they can now be run as scripts
Diffstat (limited to 'html-test/accept.lhs')
-rwxr-xr-xhtml-test/accept.lhs49
1 files changed, 49 insertions, 0 deletions
diff --git a/html-test/accept.lhs b/html-test/accept.lhs
new file mode 100755
index 00000000..3dfc099b
--- /dev/null
+++ b/html-test/accept.lhs
@@ -0,0 +1,49 @@
+#!/usr/bin/env runhaskell
+\begin{code}
+{-# LANGUAGE CPP #-}
+import System.Cmd
+import System.Environment
+import System.FilePath
+import System.Directory
+import Data.List
+import Control.Applicative
+
+baseDir = takeDirectory __FILE__
+
+main :: IO ()
+main = do
+ contents <- filter (`notElem` ignore) <$> getDirectoryContents (baseDir </> "output")
+ args <- getArgs
+ if not $ null args then
+ mapM_ copy [ baseDir </> "output" </> file | file <- contents, ".html" `isSuffixOf` file, takeBaseName file `elem` args ]
+ else
+ mapM_ copy [ baseDir </> "output" </> file | file <- contents]
+ where
+ ignore = [
+ "."
+ , ".."
+ , "doc-index.html"
+ , "index-frames.html"
+ , "index.html"
+ ]
+
+copy :: FilePath -> IO ()
+copy file = do
+ let new = baseDir </> "ref" </> takeFileName file
+ if ".html" `isSuffixOf` file then do
+ putStrLn (file ++ " -> " ++ new)
+ stripLinks <$> readFile file >>= writeFile new
+ else do
+ -- copy css, images, etc.
+ copyFile file new
+
+stripLinks :: String -> String
+stripLinks str =
+ let prefix = "<a href=\"" in
+ case stripPrefix prefix str of
+ Just str' -> prefix ++ stripLinks (dropWhile (/= '"') str')
+ Nothing ->
+ case str of
+ [] -> []
+ x : xs -> x : stripLinks xs
+\end{code}