summaryrefslogtreecommitdiff
path: root/Types
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2013-11-22 16:04:20 -0400
committerGravatar Joey Hess <joey@kitenet.net>2013-11-22 16:04:20 -0400
commitb45b9d64280be90e552a187ab2e99a2e77f8346f (patch)
tree44d8b76f84013d2d3ceedb2295e540efec9ed337 /Types
parent8e6e6c47702e2af19b2b319b0ebc37e5a749ff27 (diff)
annex.autoupgrade setting
Diffstat (limited to 'Types')
-rw-r--r--Types/Distribution.hs16
-rw-r--r--Types/GitConfig.hs3
2 files changed, 19 insertions, 0 deletions
diff --git a/Types/Distribution.hs b/Types/Distribution.hs
index 4382dd072..4201f49ad 100644
--- a/Types/Distribution.hs
+++ b/Types/Distribution.hs
@@ -9,6 +9,7 @@ module Types.Distribution where
import Types.Key
import Data.Time.Clock
+import Git.Config (isTrue, boolConfig)
data GitAnnexDistribution = GitAnnexDistribution
{ distributionUrl :: String
@@ -20,3 +21,18 @@ data GitAnnexDistribution = GitAnnexDistribution
deriving (Read, Show, Eq)
type GitAnnexVersion = String
+
+data AutoUpgrade = AskUpgrade | AutoUpgrade | NoAutoUpgrade
+ deriving (Eq)
+
+toAutoUpgrade :: (Maybe String) -> AutoUpgrade
+toAutoUpgrade Nothing = AskUpgrade
+toAutoUpgrade (Just s)
+ | s == "ask" = AskUpgrade
+ | isTrue s == Just True = AutoUpgrade
+ | otherwise = NoAutoUpgrade
+
+fromAutoUpgrade :: AutoUpgrade -> String
+fromAutoUpgrade AskUpgrade = "ask"
+fromAutoUpgrade AutoUpgrade = boolConfig True
+fromAutoUpgrade NoAutoUpgrade = boolConfig False
diff --git a/Types/GitConfig.hs b/Types/GitConfig.hs
index b573a9a25..7224f43ff 100644
--- a/Types/GitConfig.hs
+++ b/Types/GitConfig.hs
@@ -17,6 +17,7 @@ import qualified Git
import qualified Git.Config
import Utility.DataUnits
import Config.Cost
+import Types.Distribution
{- Main git-annex settings. Each setting corresponds to a git-config key
- such as annex.foo -}
@@ -42,6 +43,7 @@ data GitConfig = GitConfig
, annexCrippledFileSystem :: Bool
, annexLargeFiles :: Maybe String
, annexFsckNudge :: Bool
+ , annexAutoUpgrade :: AutoUpgrade
, coreSymlinks :: Bool
, gcryptId :: Maybe String
}
@@ -70,6 +72,7 @@ extractGitConfig r = GitConfig
, annexCrippledFileSystem = getbool (annex "crippledfilesystem") False
, annexLargeFiles = getmaybe (annex "largefiles")
, annexFsckNudge = getbool (annex "fscknudge") True
+ , annexAutoUpgrade = toAutoUpgrade $ getmaybe (annex "autoupgrade")
, coreSymlinks = getbool "core.symlinks" True
, gcryptId = getmaybe "core.gcrypt-id"
}