propellor spin
This commit is contained in:
parent
4d34b837d2
commit
bbac845900
|
@ -3,28 +3,32 @@ module Propellor.Property.Network where
|
||||||
import Propellor
|
import Propellor
|
||||||
import Propellor.Property.File
|
import Propellor.Property.File
|
||||||
|
|
||||||
|
type Interface = String
|
||||||
|
|
||||||
interfaces :: FilePath
|
interfaces :: FilePath
|
||||||
interfaces = "/etc/network/interfaces"
|
interfaces = "/etc/network/interfaces"
|
||||||
|
|
||||||
|
interfaceFile :: Interface -> FilePath
|
||||||
|
interfaceFile iface = "/etc/network/interfaces.d" </> iface
|
||||||
|
|
||||||
|
-- | Enable source-directory interfaces.d
|
||||||
|
interfacesD :: Property
|
||||||
|
interfacesD = containsLine interfaces "source-directory interfaces.d"
|
||||||
|
`describe` "interfaces.d directory enabled"
|
||||||
|
|
||||||
-- | 6to4 ipv6 connection, should work anywhere
|
-- | 6to4 ipv6 connection, should work anywhere
|
||||||
ipv6to4 :: Property
|
ipv6to4 :: Property
|
||||||
ipv6to4 = fileProperty "ipv6to4" go interfaces
|
ipv6to4 = hasContent (interfaceFile "sit0")
|
||||||
|
[ "# Automatically added by propeller"
|
||||||
|
, "iface sit0 inet6 static"
|
||||||
|
, "\taddress 2002:5044:5531::1"
|
||||||
|
, "\tnetmask 64"
|
||||||
|
, "\tgateway ::192.88.99.1"
|
||||||
|
, "auto sit0"
|
||||||
|
]
|
||||||
|
`describe` "ipv6to4"
|
||||||
|
`requires` interfacesD
|
||||||
`onChange` ifUp "sit0"
|
`onChange` ifUp "sit0"
|
||||||
where
|
|
||||||
go ls
|
|
||||||
| all (`elem` ls) stanza = ls
|
|
||||||
| otherwise = ls ++ stanza
|
|
||||||
stanza =
|
|
||||||
[ "# Automatically added by propeller"
|
|
||||||
, "iface sit0 inet6 static"
|
|
||||||
, "\taddress 2002:5044:5531::1"
|
|
||||||
, "\tnetmask 64"
|
|
||||||
, "\tgateway ::192.88.99.1"
|
|
||||||
, "auto sit0"
|
|
||||||
, "# End automatically added by propeller"
|
|
||||||
]
|
|
||||||
|
|
||||||
type Interface = String
|
|
||||||
|
|
||||||
ifUp :: Interface -> Property
|
ifUp :: Interface -> Property
|
||||||
ifUp iface = cmdProperty "ifup" [iface]
|
ifUp iface = cmdProperty "ifup" [iface]
|
||||||
|
|
Loading…
Reference in New Issue