1
0
forked from GitHub/gf-core
Files
gf-core/lib/resource/api/Port.hs
2007-12-12 20:30:11 +00:00

40 lines
1.4 KiB
Haskell

import System
main = mapM_ (\la -> mapM_ (\fi -> port "Eng" fi la) files) languages
languages = words "Dan Eng Fin Fre Ger Ita Nor Rus Spa Swe"
langlong = words
"danish english finnish french german italian norwegian russian spanish swedish"
families = [
("romance", ["french", "italian", "spanish"]),
("scandinavian",["danish","norwegian","swedish"])
]
longname lang =
maybe (error ("no " ++ lang)) id $ lookup lang $ zip languages langlong
files = words "Combinators Constructors Symbolic"
port src file dst
| src == dst = return ()
| otherwise = do
let fdst = file ++ dst ++ ".gf"
system $ "cp " ++ file ++ src ++ ".gf " ++ fdst
let longsrc = longname src
let longdst = longname dst
-- putStrLn $ "sed -i 's/" ++ longsrc ++ "/" ++ longdst ++ "/g' " ++ fdst
-- system $ "sed -i 's/" ++ longsrc ++ "/" ++ longdst ++ "/g' " ++ fdst
putStrLn $ "sed -i 's/" ++ src ++ "/" ++ dst ++ "/g' " ++ fdst
system $ "sed -i 's/" ++ src ++ "/" ++ dst ++ "/g' " ++ fdst
-- addFamily longdst fdst
return ()
addFamily ldst fdst = maybe (return ()) add $ lookup ldst fams where
fams = [(l,f) | (f,ls) <- families, l <- ls]
add fam = do
putStrLn $
"sed -i 's/" ++ ldst ++ "/" ++ ldst ++ ":\\.\\.\\/" ++ fam ++ "/g' " ++ fdst
system $
"sed -i 's/" ++ ldst ++ "/" ++ ldst ++ ":\\.\\.\\/" ++ fam ++ "/g' " ++ fdst
return ()