summaryrefslogtreecommitdiff
path: root/cokiki.hs
diff options
context:
space:
mode:
Diffstat (limited to 'cokiki.hs')
-rw-r--r--cokiki.hs16
1 files changed, 14 insertions, 2 deletions
diff --git a/cokiki.hs b/cokiki.hs
index f8eed0a..2638677 100644
--- a/cokiki.hs
+++ b/cokiki.hs
@@ -132,17 +132,29 @@ sshServer uid root cmn = whenRoot uid root cmn $ do
132 Kiki.importAndRefresh root cmn 132 Kiki.importAndRefresh root cmn
133 133
134strongswan uid root cmn = whenRoot uid root cmn $ do 134strongswan uid root cmn = whenRoot uid root cmn $ do
135 -- (1) /etc/ipsec.conf <-- 'include /var/cache/kiki/config/ipsec.conf'
135 -- Parsing as if ssh config, that's not right, but good enough for now. 136 -- Parsing as if ssh config, that's not right, but good enough for now.
136 ipsecconf <- parseSshConfig . fromMaybe "" <$> maybeReadFile (root "/etc/ipsec.conf") 137 ipsecconf <- parseSshConfig . fromMaybe "" <$> maybeReadFile (root "/etc/ipsec.conf")
137 let p:gs = groupBy (\_ d -> not $ sshIsDirective "include" d) $ ["#"]:ipsecconf 138 let p:gs = groupBy (\_ d -> not $ sshIsDirective "include" d) $ ["#"]:ipsecconf
138 got = filter (\(d:ds) -> elem "/var/cache/kiki/config/ipsec.conf" d) gs 139 got = filter (\(d:ds) -> elem "/var/cache/kiki/config/ipsec.conf" d) gs
139 case got of 140 case got of
140 _:_ -> do hPutStrLn stderr "ipsec already configured." 141 _:_ -> do hPutStrLn stderr "ipsec.conf already configured."
141 [] -> do let ipsecconf' = drop 1 $ ipsecconf ++ [stmt] 142 [] -> do let ipsecconf' = drop 1 $ ipsecconf ++ [stmt]
142 stmt = ["include", " ", "/var/cache/kiki/config/ipsec.conf"] 143 stmt = ["include", " ", "/var/cache/kiki/config/ipsec.conf"]
143 hPutStrLn stderr "adding include directive" 144 hPutStrLn stderr "adding include directive"
144 myWriteFile (root "/etc/ipsec.conf") $ unparseSshConfig ipsecconf' 145 myWriteFile (root "/etc/ipsec.conf") $ unparseSshConfig ipsecconf'
145 -- etc/ipsec.conf <-- 'include /var/cache/kiki/ipsec.conf' 146
147 -- (2) /etc/ipsec.secrets/ <- include /var/cache/kiki/config/ipsec.secrets
148 -- Parsing as if ssh config, that's not right, but good enough for now.
149 ipsecconf <- parseSshConfig . fromMaybe "" <$> maybeReadFile (root "/etc/ipsec.secrets")
150 let p:gs = groupBy (\_ d -> not $ sshIsDirective "include" d) $ ["#"]:ipsecconf
151 got = filter (\(d:ds) -> elem "/var/cache/kiki/config/ipsec.secrets" d) gs
152 case got of
153 _:_ -> do hPutStrLn stderr "ipsec.secrets already configured."
154 [] -> do let ipsecconf' = drop 1 $ ipsecconf ++ [stmt]
155 stmt = ["include", " ", "/var/cache/kiki/config/ipsec.secrets"]
156 hPutStrLn stderr "adding include directive"
157 myWriteFile (root "/etc/ipsec.secrets") $ unparseSshConfig ipsecconf'
146 Kiki.importAndRefresh root cmn 158 Kiki.importAndRefresh root cmn
147 159
148configureTor uid root cmn = whenRoot uid root cmn $ do 160configureTor uid root cmn = whenRoot uid root cmn $ do