From d9af8bac5eb7836a3c90e37e870fd73d30b841fd Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sat, 29 Mar 2014 23:10:52 -0400 Subject: initial check-in too young to have a name --- Property/User.hs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 Property/User.hs (limited to 'Property/User.hs') diff --git a/Property/User.hs b/Property/User.hs new file mode 100644 index 00000000..f43c9b20 --- /dev/null +++ b/Property/User.hs @@ -0,0 +1,22 @@ +module Property.User where + +import Data.List +import System.Posix +import Control.Applicative +import Data.Maybe + +import Property +import Utility.SafeCommand +import Utility.Exception + +type UserName = String + +nonsystem :: UserName -> Property +nonsystem user = check (isNothing <$> homedir user) $ cmdProperty "adduser" + [ Param "--disabled-password" + , Param "--gecos", Param "" + , Param user + ] + +homedir :: UserName -> IO (Maybe FilePath) +homedir user = catchMaybeIO $ homeDirectory <$> getUserEntryForName user -- cgit v1.2.3