diff options
Diffstat (limited to 'src-3.0/tools/MkHelpFile.hs')
| -rw-r--r-- | src-3.0/tools/MkHelpFile.hs | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/src-3.0/tools/MkHelpFile.hs b/src-3.0/tools/MkHelpFile.hs new file mode 100644 index 000000000..a0fafa918 --- /dev/null +++ b/src-3.0/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 |
