summaryrefslogtreecommitdiff
path: root/src/Propellor/Property/Group.hs
blob: 8499d6367e1148d5583caf4d68956d138fc28654 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
module Propellor.Property.Group where

import Propellor.Base

type GID = Int

exists :: Group -> Maybe GID -> Property NoInfo
exists (Group group') mgid = check test $
	cmdProperty "addgroup" (args mgid)
		`assume` MadeChange
		`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']