diff options
author | Joey Hess <joey@kitenet.net> | 2012-04-21 14:06:36 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2012-04-21 15:36:52 -0400 |
commit | b4a5e39ee62020380fc0dcf7aecaaf593d44dba5 (patch) | |
tree | a1568a517e886440a8321472a1aeac8cb517f6ea /Git | |
parent | 10d3e9162624cec5ef60e175cbf33b62f1efe90b (diff) |
Support git's core.sharedRepository configuration
This is incomplete, it does not honor it yet for hash directories
and other annex bookkeeping files. Some of that is not needed for a bare
repo; some of it may be.
Diffstat (limited to 'Git')
-rw-r--r-- | Git/SharedRepository.hs | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/Git/SharedRepository.hs b/Git/SharedRepository.hs new file mode 100644 index 000000000..f3efa8fde --- /dev/null +++ b/Git/SharedRepository.hs @@ -0,0 +1,27 @@ +{- git core.sharedRepository handling + - + - Copyright 2012 Joey Hess <joey@kitenet.net> + - + - Licensed under the GNU GPL version 3 or higher. + -} + +module Git.SharedRepository where + +import Data.Char + +import Common +import Git +import qualified Git.Config + +data SharedRepository = UnShared | GroupShared | AllShared | UmaskShared Int + +getSharedRepository :: Repo -> SharedRepository +getSharedRepository r = + case map toLower $ Git.Config.get "core.sharedrepository" "" r of + "1" -> GroupShared + "group" -> GroupShared + "true" -> GroupShared + "all" -> AllShared + "world" -> AllShared + "everybody" -> AllShared + v -> maybe UnShared UmaskShared (readish v) |