From 42ae5fec8ebbb5921f91d2052bc18d595ead2cfa Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 30 Apr 2015 14:02:56 -0400 Subject: refactor --- Config/NumCopies.hs | 85 ----------------------------------------------------- 1 file changed, 85 deletions(-) delete mode 100644 Config/NumCopies.hs (limited to 'Config') diff --git a/Config/NumCopies.hs b/Config/NumCopies.hs deleted file mode 100644 index 50dcdf684..000000000 --- a/Config/NumCopies.hs +++ /dev/null @@ -1,85 +0,0 @@ -{- git-annex numcopies configuration - - - - Copyright 2014 Joey Hess - - - - Licensed under the GNU GPL version 3 or higher. - -} - -module Config.NumCopies ( - module Types.NumCopies, - module Logs.NumCopies, - getFileNumCopies, - getGlobalFileNumCopies, - getNumCopies, - deprecatedNumCopies, - defaultNumCopies, - numCopiesCheck, - numCopiesCheck', -) where - -import Common.Annex -import qualified Annex -import Types.NumCopies -import Logs.NumCopies -import Logs.Trust -import Annex.CheckAttr -import qualified Remote - -defaultNumCopies :: NumCopies -defaultNumCopies = NumCopies 1 - -fromSources :: [Annex (Maybe NumCopies)] -> Annex NumCopies -fromSources = fromMaybe defaultNumCopies <$$> getM id - -{- The git config annex.numcopies is deprecated. -} -deprecatedNumCopies :: Annex (Maybe NumCopies) -deprecatedNumCopies = annexNumCopies <$> Annex.getGitConfig - -{- Value forced on the command line by --numcopies. -} -getForcedNumCopies :: Annex (Maybe NumCopies) -getForcedNumCopies = Annex.getState Annex.forcenumcopies - -{- Numcopies value from any of the non-.gitattributes configuration - - sources. -} -getNumCopies :: Annex NumCopies -getNumCopies = fromSources - [ getForcedNumCopies - , getGlobalNumCopies - , deprecatedNumCopies - ] - -{- Numcopies value for a file, from any configuration source, including the - - deprecated git config. -} -getFileNumCopies :: FilePath -> Annex NumCopies -getFileNumCopies f = fromSources - [ getForcedNumCopies - , getFileNumCopies' f - , deprecatedNumCopies - ] - -{- This is the globally visible numcopies value for a file. So it does - - not include local configuration in the git config or command line - - options. -} -getGlobalFileNumCopies :: FilePath -> Annex NumCopies -getGlobalFileNumCopies f = fromSources - [ getFileNumCopies' f - ] - -getFileNumCopies' :: FilePath -> Annex (Maybe NumCopies) -getFileNumCopies' file = maybe getGlobalNumCopies (return . Just) =<< getattr - where - getattr = (NumCopies <$$> readish) - <$> checkAttr "annex.numcopies" file - -{- Checks if numcopies are satisfied for a file by running a comparison - - between the number of (not untrusted) copies that are - - belived to exist, and the configured value. -} -numCopiesCheck :: FilePath -> Key -> (Int -> Int -> v) -> Annex v -numCopiesCheck file key vs = do - have <- trustExclude UnTrusted =<< Remote.keyLocations key - numCopiesCheck' file vs have - -numCopiesCheck' :: FilePath -> (Int -> Int -> v) -> [UUID] -> Annex v -numCopiesCheck' file vs have = do - NumCopies needed <- getFileNumCopies file - return $ length have `vs` needed -- cgit v1.2.3