diff --git a/Propellor.hs b/Propellor.hs index 63040ff..d8c1ddb 100644 --- a/Propellor.hs +++ b/Propellor.hs @@ -2,6 +2,7 @@ import Common import CmdLine import qualified Property.File as File import qualified Property.Apt as Apt +import qualified Property.Network as Network import qualified Property.Ssh as Ssh import qualified Property.Sudo as Sudo import qualified Property.User as User @@ -24,6 +25,7 @@ getProperties hostname@"clam.kitenet.net" = , standardSystem Apt.Unstable -- Clam is a tor bridge, and an olduse.net shellbox. , Tor.isBridge + , ipv6to4 , JoeySites.oldUseNetshellBox -- I play with docker on clam. , Docker.configured diff --git a/Property/Network.hs b/Property/Network.hs new file mode 100644 index 0000000..7686c8b --- /dev/null +++ b/Property/Network.hs @@ -0,0 +1,26 @@ +module Property.Network where + +import Common +import qualified Property.File as File + +interfaces :: FilePath +interfaces = "/etc/network/interfaces" + +-- 6to4 ipv6 connection, should work anywhere +ipv6to4 :: Property +ipv6to4 = fileProperty "ipv6to4" go interfaces + `onChange` ifUp "sit0" + where + go ls + | all (`elem` ls) stanza = ls + | otherwise = ls ++ stanza + stanza = + [ "# Automatically added by propeller" + , "iface sit0 inet6 static" + , " address 2002:5044:5531::1" + , " netmask 64" + , " gateway ::192.88.99.1" + , "# End automatically added by propeller" + +ifUp :: String -> Property +ifUp iface = cmdProperty "ifup" [Param iface]