summaryrefslogtreecommitdiff
path: root/src-2.9/tools/MkHelpFile.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src-2.9/tools/MkHelpFile.hs')
-rw-r--r--src-2.9/tools/MkHelpFile.hs61
1 files changed, 61 insertions, 0 deletions
diff --git a/src-2.9/tools/MkHelpFile.hs b/src-2.9/tools/MkHelpFile.hs
new file mode 100644
index 000000000..a0fafa918
--- /dev/null
+++ b/src-2.9/tools/MkHelpFile.hs
@@ -0,0 +1,61 @@
+----------------------------------------------------------------------
+-- |
+-- Maintainer : AR
+-- Stability : (stable)
+-- Portability : (portable)
+--
+-- > CVS $Date: 2005/05/12 10:03:34 $
+-- > CVS $Author: aarne $
+-- > CVS $Revision: 1.9 $
+--
+-- Compile @HelpFile.hs@ from the text file @HelpFile@.
+-----------------------------------------------------------------------------
+
+module Main (main) where
+
+main = do
+ s <- readFile "HelpFile"
+ let s' = mkHsFile (lines s)
+ writeFile "GF/Shell/HelpFile.hs" s'
+
+mkHsFile ss =
+ helpHeader ++
+ "module GF.Shell.HelpFile where\n\n" ++
+ "import GF.Data.Operations\n\n" ++
+ "txtHelpFileSummary =\n" ++
+ " unlines $ map (concat . take 1 . lines) $ paragraphs txtHelpFile\n\n" ++
+ "txtHelpCommand c =\n" ++
+ " case lookup c [(takeWhile (/=',') p,p) | p <- paragraphs txtHelpFile] of\n" ++
+ " Just s -> s\n" ++
+ " _ -> \"Command not found.\"\n\n" ++
+ "txtHelpFile =\n" ++
+ unlines (map mkOne ss) ++
+ " []"
+
+mkOne s = " \"" ++ pref s ++ (escs s) ++ "\" ++"
+ where
+ pref (' ':_) = "\\n"
+ pref _ = "\\n" ---
+ escs [] = []
+ escs (c:cs) | elem c "\"\\" = '\\':c:escs cs
+ | fromEnum c > 127 = "\\" ++show (fromEnum c)++escs cs
+ escs (c:cs) = c:escs cs
+
+helpHeader = unlines [
+ "----------------------------------------------------------------------",
+ "-- |",
+ "-- Module : GF.Shell.HelpFile",
+ "-- Maintainer : Aarne Ranta",
+ "-- Stability : (stable)",
+ "-- Portability : (portable)",
+ "--",
+ "-- > CVS $Date: 2005/05/12 10:03:34 $",
+ "-- > CVS $Author: aarne $",
+ "-- > CVS $Revision: 1.9 $",
+ "--",
+ "-- Help on shell commands. Generated from HelpFile by 'make help'.",
+ "-- PLEASE DON'T EDIT THIS FILE.",
+ "-----------------------------------------------------------------------------",
+ "",
+ ""
+ ] \ No newline at end of file