diff options
Diffstat (limited to 'Annex/Export.hs')
-rw-r--r-- | Annex/Export.hs | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/Annex/Export.hs b/Annex/Export.hs new file mode 100644 index 000000000..0afe3cdcc --- /dev/null +++ b/Annex/Export.hs @@ -0,0 +1,35 @@ +{- git-annex exports + - + - Copyright 2017 Joey Hess <id@joeyh.name> + - + - Licensed under the GNU GPL version 3 or higher. + -} + +module Annex.Export where + +import Annex +import Annex.CatFile +import Types.Key +import qualified Git + +-- An export includes both annexed files and files stored in git. +-- For the latter, a SHA1 key is synthesized. +data ExportKey = AnnexKey Key | GitKey Key + deriving (Show, Eq, Ord) + +asKey :: ExportKey -> Key +asKey (AnnexKey k) = k +asKey (GitKey k) = k + +exportKey :: Git.Sha -> Annex ExportKey +exportKey sha = mk <$> catKey sha + where + mk (Just k) = AnnexKey k + mk Nothing = GitKey $ Key + { keyName = show sha + , keyVariety = SHA1Key (HasExt False) + , keySize = Nothing + , keyMtime = Nothing + , keyChunkSize = Nothing + , keyChunkNum = Nothing + } |