diff options
author | Joey Hess <joey@kitenet.net> | 2010-11-08 16:40:42 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2010-11-08 16:40:42 -0400 |
commit | 98a77ab7256e484d29d67fcffc1f173fcb830f60 (patch) | |
tree | e720f42b2a0c8eeed1d972a207ef6587c2b9c5d5 /Version.hs | |
parent | 50ec22e322ecc0538a0629e32313c0d8ec4ffd45 (diff) |
add
Diffstat (limited to 'Version.hs')
-rw-r--r-- | Version.hs | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/Version.hs b/Version.hs new file mode 100644 index 000000000..ce39c0c1b --- /dev/null +++ b/Version.hs @@ -0,0 +1,39 @@ +{- git-annex repository versioning + - + - Copyright 2010 Joey Hess <joey@kitenet.net> + - + - Licensed under the GNU GPL version 3 or higher. + -} + +module Version where + +import Control.Monad.State (liftIO) +import System.Directory + +import Types +import qualified Annex +import qualified GitRepo as Git +import Locations + +currentVersion :: String +currentVersion = "1" + +versionField :: String +versionField = "annex.version" + +getVersion :: Annex (Maybe String) +getVersion = do + g <- Annex.gitRepo + let v = Git.configGet g versionField "" + if (not $ null v) + then return $ Just v + else do + -- version 0 was not recorded in .git/config; + -- such a repo should have an annexDir + d <- liftIO $ doesDirectoryExist $ annexDir g + if (d) + then return $ Just "0" + else return Nothing -- no version yet + +setVersion :: Annex () +setVersion = Annex.setConfig versionField currentVersion |