summaryrefslogtreecommitdiff
path: root/Propellor/Property/Network.hs
blob: 6009778a834fd2abe9b84bfb26a66866bc03ab1d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
module Propellor.Property.Network where

import Propellor
import Propellor.Property.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"
		, "\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 iface = cmdProperty "ifup" [iface]