mk_user :: NewUser -> ShIO Text mk_user user = run_sudo "addUser" [login user, "--gecos", firstName user <> " " <> lastName user] run_sudo :: Text -> [Text] -> ShIO Text run_sudo cmd args = run "/usr/bin/sudo" (cmd:args) main = shelly $ do csv <- readfile "users.csv" mapM_ mk_user (usersFromCSV csv)