2013-11-21 21:49:56 +00:00
|
|
|
{- Data type for a distribution of git-annex
|
|
|
|
-
|
2015-01-21 16:50:09 +00:00
|
|
|
- Copyright 2013 Joey Hess <id@joeyh.name>
|
2013-11-21 21:49:56 +00:00
|
|
|
-
|
|
|
|
- Licensed under the GNU GPL version 3 or higher.
|
|
|
|
-}
|
|
|
|
|
|
|
|
module Types.Distribution where
|
|
|
|
|
2013-11-22 04:26:24 +00:00
|
|
|
import Types.Key
|
2013-11-21 21:49:56 +00:00
|
|
|
import Data.Time.Clock
|
2013-11-22 20:04:20 +00:00
|
|
|
import Git.Config (isTrue, boolConfig)
|
2013-11-21 21:49:56 +00:00
|
|
|
|
|
|
|
data GitAnnexDistribution = GitAnnexDistribution
|
|
|
|
{ distributionUrl :: String
|
2013-11-22 04:26:24 +00:00
|
|
|
, distributionKey :: Key
|
2013-11-21 21:49:56 +00:00
|
|
|
, distributionVersion :: GitAnnexVersion
|
|
|
|
, distributionReleasedate :: UTCTime
|
|
|
|
, distributionUrgentUpgrade :: Maybe GitAnnexVersion
|
|
|
|
}
|
|
|
|
deriving (Read, Show, Eq)
|
|
|
|
|
|
|
|
type GitAnnexVersion = String
|
2013-11-22 20:04:20 +00:00
|
|
|
|
|
|
|
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
|