diff options
Diffstat (limited to 'Git')
-rw-r--r-- | Git/ConfigTypes.hs (renamed from Git/SharedRepository.hs) | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/Git/SharedRepository.hs b/Git/ConfigTypes.hs index 1e7382388..af3dc976d 100644 --- a/Git/SharedRepository.hs +++ b/Git/ConfigTypes.hs @@ -1,11 +1,11 @@ -{- git core.sharedRepository handling +{- git config types - - - Copyright 2012 Joey Hess <id@joeyh.name> + - Copyright 2012, 2017 Joey Hess <id@joeyh.name> - - Licensed under the GNU GPL version 3 or higher. -} -module Git.SharedRepository where +module Git.ConfigTypes where import Data.Char @@ -14,6 +14,7 @@ import Git import qualified Git.Config data SharedRepository = UnShared | GroupShared | AllShared | UmaskShared Int + deriving (Eq) getSharedRepository :: Repo -> SharedRepository getSharedRepository r = @@ -26,3 +27,14 @@ getSharedRepository r = "world" -> AllShared "everybody" -> AllShared v -> maybe UnShared UmaskShared (readish v) + +data DenyCurrentBranch = UpdateInstead | RefusePush | WarnPush | IgnorePush + deriving (Eq) + +getDenyCurrentBranch :: Repo -> DenyCurrentBranch +getDenyCurrentBranch r = + case map toLower $ Git.Config.get "receive.denycurrentbranch" "" r of + "updateinstead" -> UpdateInstead + "warn" -> WarnPush + "ignore" -> IgnorePush + _ -> RefusePush |