diff options
author | Joey Hess <joey@kitenet.net> | 2010-10-10 18:25:31 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2010-10-10 18:25:31 -0400 |
commit | 026adce5a01381e9a802747f2ddf4ca5635468c9 (patch) | |
tree | 9ba02888b88a70dcc98dbad2138426c38a48b19d /Annex.hs | |
parent | e5514e0cb0809848645814e8c1f67cd89cb16c4f (diff) |
update
Diffstat (limited to 'Annex.hs')
-rw-r--r-- | Annex.hs | 18 |
1 files changed, 12 insertions, 6 deletions
@@ -10,26 +10,32 @@ import Utility import Locations import Types import Backend +import BackendList + +startAnnex :: IO State +startAnnex = do + r <- currentRepo + return State { repo = r, backends = supportedBackends } {- Annexes a file, storing it in a backend, and then moving it into - the annex directory and setting up the symlink pointing to its content. -} -annexFile :: [Backend] -> GitRepo -> FilePath -> IO () -annexFile backends repo file = do - alreadyannexed <- lookupBackend backends repo file +annexFile :: State -> FilePath -> IO () +annexFile state file = do + alreadyannexed <- lookupBackend (backends state) (repo state) file case (alreadyannexed) of Just _ -> error $ "already annexed " ++ file Nothing -> do - stored <- storeFile backends repo file + stored <- storeFile (backends state) (repo state) file case (stored) of Nothing -> error $ "no backend could store " ++ file Just key -> symlink key where symlink key = do - dest <- annexDir repo key + dest <- annexDir (repo state) key createDirectoryIfMissing True (parentDir dest) renameFile file dest createSymbolicLink dest file - gitAdd repo file + gitAdd (repo state) file {- Sets up a git repo for git-annex. May be called repeatedly. -} gitPrep :: GitRepo -> IO () |