annotate gktemp/target.hs @ 1379:0024b59d910e

<elliott> pastelogs qdbformat
author HackBot
date Fri, 11 Jan 2013 13:10:08 +0000
parents cbe75202b96a
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1349
5338ba60ba90 <GreyKnight> mv gktemp/target gktemp/target.hs
HackBot
parents:
diff changeset
1 import Data.List
5338ba60ba90 <GreyKnight> mv gktemp/target gktemp/target.hs
HackBot
parents:
diff changeset
2 import Data.Char
5338ba60ba90 <GreyKnight> mv gktemp/target gktemp/target.hs
HackBot
parents:
diff changeset
3 import System.Environment
5338ba60ba90 <GreyKnight> mv gktemp/target gktemp/target.hs
HackBot
parents:
diff changeset
4
5338ba60ba90 <GreyKnight> mv gktemp/target gktemp/target.hs
HackBot
parents:
diff changeset
5 standardURL = "http://esolangs.org/wiki/Main_Page"
5338ba60ba90 <GreyKnight> mv gktemp/target gktemp/target.hs
HackBot
parents:
diff changeset
6
5338ba60ba90 <GreyKnight> mv gktemp/target gktemp/target.hs
HackBot
parents:
diff changeset
7
5338ba60ba90 <GreyKnight> mv gktemp/target gktemp/target.hs
HackBot
parents:
diff changeset
8 replace :: (Eq a) => [a] -> [a] -> [a] -> [a]
5338ba60ba90 <GreyKnight> mv gktemp/target gktemp/target.hs
HackBot
parents:
diff changeset
9 replace _ _ [] = []
5338ba60ba90 <GreyKnight> mv gktemp/target gktemp/target.hs
HackBot
parents:
diff changeset
10 replace old new (y:ys) =
5338ba60ba90 <GreyKnight> mv gktemp/target gktemp/target.hs
HackBot
parents:
diff changeset
11 case stripPrefix old (y:ys) of
5338ba60ba90 <GreyKnight> mv gktemp/target gktemp/target.hs
HackBot
parents:
diff changeset
12 Nothing -> y : replace old new ys
5338ba60ba90 <GreyKnight> mv gktemp/target gktemp/target.hs
HackBot
parents:
diff changeset
13 Just ys' -> new ++ replace old new ys'
5338ba60ba90 <GreyKnight> mv gktemp/target gktemp/target.hs
HackBot
parents:
diff changeset
14
5338ba60ba90 <GreyKnight> mv gktemp/target gktemp/target.hs
HackBot
parents:
diff changeset
15 applyGenTemplate :: String -> String -> String -> String -- nick url template -> result
5338ba60ba90 <GreyKnight> mv gktemp/target gktemp/target.hs
HackBot
parents:
diff changeset
16 applyGenTemplate nick url template = nick ++ ": " ++ replace "^" nick (replace "@" url template)
5338ba60ba90 <GreyKnight> mv gktemp/target gktemp/target.hs
HackBot
parents:
diff changeset
17
5338ba60ba90 <GreyKnight> mv gktemp/target gktemp/target.hs
HackBot
parents:
diff changeset
18 applyTemplate :: String -> String -> String -- nick template -> result
5338ba60ba90 <GreyKnight> mv gktemp/target gktemp/target.hs
HackBot
parents:
diff changeset
19 applyTemplate nick template = applyGenTemplate nick standardURL template
5338ba60ba90 <GreyKnight> mv gktemp/target gktemp/target.hs
HackBot
parents:
diff changeset
20
5338ba60ba90 <GreyKnight> mv gktemp/target gktemp/target.hs
HackBot
parents:
diff changeset
21
5338ba60ba90 <GreyKnight> mv gktemp/target gktemp/target.hs
HackBot
parents:
diff changeset
22 main = do
5338ba60ba90 <GreyKnight> mv gktemp/target gktemp/target.hs
HackBot
parents:
diff changeset
23 args <- getArgs
5338ba60ba90 <GreyKnight> mv gktemp/target gktemp/target.hs
HackBot
parents:
diff changeset
24 template <- getLine
1352
cbe75202b96a <GreyKnight> cat FdNb > gktemp/target.hs
HackBot
parents: 1349
diff changeset
25 putStrLn (applyTemplate (
cbe75202b96a <GreyKnight> cat FdNb > gktemp/target.hs
HackBot
parents: 1349
diff changeset
26 case (length args) of
cbe75202b96a <GreyKnight> cat FdNb > gktemp/target.hs
HackBot
parents: 1349
diff changeset
27 0 -> "Fiora"
cbe75202b96a <GreyKnight> cat FdNb > gktemp/target.hs
HackBot
parents: 1349
diff changeset
28 otherwise -> args !! 0
cbe75202b96a <GreyKnight> cat FdNb > gktemp/target.hs
HackBot
parents: 1349
diff changeset
29 ) template)
1349
5338ba60ba90 <GreyKnight> mv gktemp/target gktemp/target.hs
HackBot
parents:
diff changeset
30