diff options
Diffstat (limited to 'Remote/Helper/ReadOnly.hs')
-rw-r--r-- | Remote/Helper/ReadOnly.hs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/Remote/Helper/ReadOnly.hs b/Remote/Helper/ReadOnly.hs new file mode 100644 index 000000000..cd92a083c --- /dev/null +++ b/Remote/Helper/ReadOnly.hs @@ -0,0 +1,29 @@ +{- Adds readonly support to remotes. + - + - Copyright 2013 Joey Hess <joey@kitenet.net> + - + - Licensed under the GNU GPL version 3 or higher. + -} + +module Remote.Helper.ReadOnly (adjustReadOnly) where + +import Common.Annex +import Types.Remote + +{- Adds support for read-only remotes, by replacing the + - methods that write to a remote with dummies that fail. + - + - Note that disabling git pushes to remotes is not handled here. + -} +adjustReadOnly :: Remote -> Remote +adjustReadOnly r + | remoteAnnexReadOnly (gitconfig r) = r + { storeKey = \_ _ _ -> failbool + , removeKey = \_ -> failbool + , repairRepo = Nothing + } + | otherwise = r + where + failbool = do + warning "this remote is readonly" + return False |