summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Propellor.hs2
-rw-r--r--Property/Network.hs26
2 files changed, 28 insertions, 0 deletions
diff --git a/Propellor.hs b/Propellor.hs
index 63040ff1..d8c1ddba 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 00000000..7686c8b3
--- /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]