diff options
Diffstat (limited to 'Command/ConfigList.hs')
-rw-r--r-- | Command/ConfigList.hs | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/Command/ConfigList.hs b/Command/ConfigList.hs new file mode 100644 index 000000000..219685c21 --- /dev/null +++ b/Command/ConfigList.hs @@ -0,0 +1,46 @@ +{- git-annex command + - + - Copyright 2010-2014 Joey Hess <joey@kitenet.net> + - + - Licensed under the GNU GPL version 3 or higher. + -} + +module Command.ConfigList where + +import Common.Annex +import Command +import Annex.UUID +import Annex.Init +import qualified Annex.Branch +import qualified Git.Config +import Remote.GCrypt (coreGCryptId) + +def :: [Command] +def = [noCommit $ command "configlist" paramNothing seek + SectionPlumbing "outputs relevant git configuration"] + +seek :: CommandSeek +seek = withNothing start + +start :: CommandStart +start = do + u <- findOrGenUUID + showConfig "annex.uuid" $ fromUUID u + showConfig coreGCryptId =<< fromRepo (Git.Config.get coreGCryptId "") + stop + where + showConfig k v = liftIO $ putStrLn $ k ++ "=" ++ v + +{- The repository may not yet have a UUID; automatically initialize it + - when there's a git-annex branch available. -} +findOrGenUUID :: Annex UUID +findOrGenUUID = do + u <- getUUID + if u /= NoUUID + then return u + else ifM Annex.Branch.hasSibling + ( do + initialize Nothing + getUUID + , return NoUUID + ) |