--IO
module GiveYouAHead.New where
import GiveYouAHead.New.Import
import GiveYouAHead.New.Note
import GiveYouAHead.New.Template
import GiveYouAHead.Common
import Data.GiveYouAHead
import System.Time
newMain :: [String] --args
-> IO ()
newMain (lang:idNum:iL) = do
gDD <- getDataDir
sts <- getSettings $ gDD ++ "/settings.dat"
time <- getClockTime
langCMap <- getCmdMap $ gDD ++ "/language/"++lang++".cmap"
persionCMap <- getCmdMap $ gDD ++ "/person.cmap"
let allCMap = langCMap ++ persionCMap ++ [
(On,"*noteMarkLine", concat $ replicate 30 $ findKey langCMap "*NoteMark" ),
(On,"*timeLine","\tCreated tIme :\t"++show time),
(On,"*probId",idNum)]
let fname = concatMap (findKey allCMap) ["*SrcAhead",dfFileName sts,idNum,"*SrcBack"]
writeF fname $ concat $ getSrc allCMap iL
putStrLn $ fname ++ " created"
return ()
newMain _ = error "bad command!"
getSrc :: CommandMap -> [String] -> [String]
getSrc nMap iL =
(map f $ h noteText) ++ importText iL ++ templateText
where
f = (++"\n") . g
g = addNoteMark $ findKey nMap "*NoteMark"
h = lines.concat
noteText = map (findKey nMap) makeNotes
importText = map (findKey nMap) . concat .map addImport
templateText = map (findKey nMap) templateList