equal
deleted
inserted
replaced
5 import Data.TConfig |
5 import Data.TConfig |
6 import qualified Data.ByteString.Char8 as B |
6 import qualified Data.ByteString.Char8 as B |
7 ------------------- |
7 ------------------- |
8 import CoreTypes |
8 import CoreTypes |
9 |
9 |
|
10 cfgFileName :: String |
10 cfgFileName = "hedgewars-server.ini" |
11 cfgFileName = "hedgewars-server.ini" |
11 |
12 |
|
13 |
|
14 readServerConfig :: ServerInfo -> IO ServerInfo |
12 readServerConfig serverInfo' = do |
15 readServerConfig serverInfo' = do |
13 cfg <- readConfig cfgFileName |
16 cfg <- readConfig cfgFileName |
14 let si = serverInfo'{ |
17 let si = serverInfo'{ |
15 dbHost = value "dbHost" cfg |
18 dbHost = value "dbHost" cfg |
16 , dbName = value "dbName" cfg |
19 , dbName = value "dbName" cfg |
26 value n c = B.pack . fromJust2 n $ getValue n c |
29 value n c = B.pack . fromJust2 n $ getValue n c |
27 fromJust2 n Nothing = error $ "Missing config entry " ++ n |
30 fromJust2 n Nothing = error $ "Missing config entry " ++ n |
28 fromJust2 _ (Just a) = a |
31 fromJust2 _ (Just a) = a |
29 |
32 |
30 |
33 |
|
34 writeServerConfig :: ServerInfo -> IO () |
31 writeServerConfig ServerInfo{serverConfig = Nothing} = return () |
35 writeServerConfig ServerInfo{serverConfig = Nothing} = return () |
32 writeServerConfig ServerInfo{ |
36 writeServerConfig ServerInfo{ |
33 dbHost = dh, |
37 dbHost = dh, |
34 dbName = dn, |
38 dbName = dn, |
35 dbLogin = dl, |
39 dbLogin = dl, |
38 serverMessageForOldVersions = smo, |
42 serverMessageForOldVersions = smo, |
39 latestReleaseVersion = ver, |
43 latestReleaseVersion = ver, |
40 serverConfig = Just cfg} |
44 serverConfig = Just cfg} |
41 = do |
45 = do |
42 let newCfg = foldl (\c (n, v) -> repConfig n (B.unpack v) c) cfg entries |
46 let newCfg = foldl (\c (n, v) -> repConfig n (B.unpack v) c) cfg entries |
43 writeConfig cfgFileName (repConfig "sv_latestProto" (show ver) cfg) |
47 writeConfig cfgFileName (repConfig "sv_latestProto" (show ver) newCfg) |
44 where |
48 where |
45 entries = [ |
49 entries = [ |
46 ("dbHost", dh) |
50 ("dbHost", dh) |
47 , ("dbName", dn) |
51 , ("dbName", dn) |
48 , ("dbLogin", dl) |
52 , ("dbLogin", dl) |