packages feed

HSHHelpers 0.21 → 0.23

raw patch · 2 files changed

+25/−4 lines, 2 filesdep ~MissingHPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: MissingH

API changes (from Hackage documentation)

Files

HSH/Helpers/UnixUsers.hs view
@@ -3,6 +3,10 @@  -- I don't know how portable this is. -- It works for me, on ubuntu Hardy Heron+{-+Recommend against using this module.+Instead use System.Posix.Users, which I overlooked when writing.+-} import HSH  import System.Directory (doesDirectoryExist)@@ -84,7 +88,15 @@ addUserToGroup (SysUser u) (SysGroup g)    | null . SU.strip $ u = fail "addUserToGroup: blank user"   | null . SU.strip $ g = fail "addUserToGroup: blank group" -  | otherwise = tryS $ runIO $ render1 [("u",u),("g",g)] "usermod -G $g$ -a $u$"+  | otherwise = tryS $ do +      isU <- isSystemUser . SysUser $ u+      when (not isU) $ fail $ "chown, not a system user: " ++ u+      isG <- isSystemGroup . SysGroup $ g+      when (not isG) $ fail $ "chown, not a system group: " ++ g+      let cmd = render1 [("u",u),("g",g)] "usermod -G $g$ -a $u$"+      putStrLn $ "addUserToGroup, running: " ++ cmd+      runIO $ cmd+        -- need to test this more thoroughly. What happens if we attempt to remove user from primary group? rmUserFromGroup :: SysUser -> SysGroup -> IO ( Either String () )@@ -95,13 +107,19 @@   runIO $ render1 [("u",unsysuser u),("sdMod",sdMod)] "usermod -G $sdMod$ $u$"  -chown :: (Maybe SysUser) -> (Maybe SysGroup) -> Recurse -> FilePath -> IO ( Either String () )+chown :: (Maybe SysUser) -> (Maybe SysGroup) -> Recurse -> FilePath -> IO (Either String ()) chown _ _ _ [] = fail "chown, empty path" chown mbUser mbGroup (Recurse recurse) path = tryS $ do   let uname = maybe "" unsysuser mbUser       grp = maybe "" unsysgroup mbGroup       eOwner = getOwner uname grp       rFlag = if recurse then "-R" else ""+  when (not . null $ uname) $ do+    isU <- isSystemUser . SysUser $ uname+    when (not isU) $ fail $ "chown, not a system user: " ++ uname+  when (not . null $ grp) $ do+    isG <- isSystemGroup . SysGroup $ grp+    when (not isG) $ fail $ "chown, not a system group: " ++ grp   case eOwner of     Left msg -> fail msg     Right owner -> runIO $ render1 [("owner",owner) 
HSHHelpers.cabal view
@@ -1,5 +1,5 @@ Name: HSHHelpers-Version: 0.21+Version: 0.23 License: GPL License-file: gpl.txt Description: @@ -8,6 +8,9 @@    Rather than duplicate code, released on hackage. +  A lot of this is cruft. For instance, you are probably better off having a look at System.Posix.Files and+  System.Posix.Users, which I overlooked when writing, before making too much use of hsh helpers. + Synopsis: Convenience functions that use HSH, instances for HSH.  Maintainer: Thomas Hartman <thomashartman1 at gmail> Author: Thomas Hartman@@ -15,7 +18,7 @@ Copyright: Copyright (c) 2008 Thomas Hartman Exposed-Modules: HSH.Helpers, HSH.Helpers.Instances, HSH.Helpers.UnixUsers, HSH.Helpers.FileManip,                   HSH.Helpers.Utils, HSH.Helpers.Email-Build-Depends: base >= 0.4 && <5, HSH >= 1 && <1.27, unix, HStringTemplateHelpers, MissingH >= 1.0, regex-pcre, directory, bytestring, filepath, mtl,+Build-Depends: base >= 0.4 && <5, HSH >= 1 && <1.27, unix, HStringTemplateHelpers, MissingH <= 1.0.3, regex-pcre, directory, bytestring, filepath, mtl,                DebugTraceHelpers Category: System Build-type: Simple