blob: 30a9c66590c50f6b6b78fba6ad90b8475351d3e9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
module Propellor.Property.Group where
import Propellor.Base
type GID = Int
exists :: Group -> Maybe GID -> Property UnixLike
exists (Group group') mgid = check test (cmdProperty "addgroup" (args mgid))
`describe` unwords ["group", group']
where
groupFile = "/etc/group"
test = not . elem group' . words <$> readProcess "cut" ["-d:", "-f1", groupFile]
args Nothing = [group']
args (Just gid) = ["--gid", show gid, group']
hasUser :: Group -> User -> Property DebianLike
hasUser (Group group') (User user) = hasGroup user group'
|