2014-03-31 03:37:54 +00:00
|
|
|
module Propellor.Property.Network where
|
2014-03-31 02:53:52 +00:00
|
|
|
|
2014-03-31 03:55:59 +00:00
|
|
|
import Propellor
|
2014-03-31 03:37:54 +00:00
|
|
|
import Propellor.Property.File
|
2014-03-31 02:53:52 +00:00
|
|
|
|
|
|
|
interfaces :: FilePath
|
|
|
|
interfaces = "/etc/network/interfaces"
|
|
|
|
|
2014-03-31 03:37:54 +00:00
|
|
|
-- | 6to4 ipv6 connection, should work anywhere
|
2014-03-31 02:53:52 +00:00
|
|
|
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"
|
2014-03-31 02:54:59 +00:00
|
|
|
, "\taddress 2002:5044:5531::1"
|
|
|
|
, "\tnetmask 64"
|
|
|
|
, "\tgateway ::192.88.99.1"
|
2014-04-08 22:08:16 +00:00
|
|
|
, "auto sit0"
|
2014-03-31 02:53:52 +00:00
|
|
|
, "# End automatically added by propeller"
|
2014-03-31 02:54:59 +00:00
|
|
|
]
|
2014-03-31 02:53:52 +00:00
|
|
|
|
2014-04-03 06:27:17 +00:00
|
|
|
type Interface = String
|
|
|
|
|
|
|
|
ifUp :: Interface -> Property
|
2014-03-31 03:55:59 +00:00
|
|
|
ifUp iface = cmdProperty "ifup" [iface]
|