tor bridge

This commit is contained in:
Joey Hess 2014-03-30 00:38:16 -04:00
parent 38e626da7f
commit f8c8be2079
2 changed files with 24 additions and 1 deletions

View File

@ -4,8 +4,9 @@ import qualified Property.Apt as Apt
import qualified Property.Ssh as Ssh
import qualified Property.User as User
import qualified Property.Hostname as Hostname
import qualified Property.GitHome as GitHome
import qualified Property.Reboot as Reboot
import qualified Property.Tor as Tor
import qualified Property.GitHome as GitHome
main :: IO ()
main = ensureProperties . getProperties =<< getHostName
@ -38,6 +39,7 @@ getProperties "clam" =
, GitHome.installedFor "joey"
-- Clam is a tor bridge.
, Apt.installed ["tor"]
, Tor.isBridge
-- Should come last as it reboots.
, Apt.installed ["systemd-sysv"] `onChange` Reboot.scheduled "+10"
]

21
Property/Tor.hs Normal file
View File

@ -0,0 +1,21 @@
module Property.Tor where
import Control.Applicative
import Control.Monad
import System.FilePath
import Property
import Property.User
import Utility.SafeCommand
import Utility.Exception
isBridge :: Property
isBridge = fileHasContent "/etc/tor/torrc"
[ "SocksPort 0"
, "ORPort 443"
, "BridgeRelay 1"
, "Exitpolicy reject *:*"
] `onChange` restartTor
restartTor :: Property
restartTor = cmdProperty "service" [Param "tor", Param "restart"]