aboutsummaryrefslogtreecommitdiff
path: root/Annex.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2010-10-13 03:46:40 -0400
committerGravatar Joey Hess <joey@kitenet.net>2010-10-13 03:46:40 -0400
commitff998a9a677ba4a4af9e4bd45a651653421760cb (patch)
treef48b892adf6958013505b3b7af4fa2e5ee39684b /Annex.hs
parent99b2029236248f6b4ce68e126b70fa0855fac37f (diff)
cleanup2
Diffstat (limited to 'Annex.hs')
-rw-r--r--Annex.hs58
1 files changed, 27 insertions, 31 deletions
diff --git a/Annex.hs b/Annex.hs
index 936e62502..eb57e2d57 100644
--- a/Annex.hs
+++ b/Annex.hs
@@ -65,6 +65,7 @@ annexFile state file = inBackend file err $ do
then error $ "not a regular file: " ++ file
else return ()
setup key backend = do
+ logStatus state key ValuePresent
let dest = annexLocation state backend key
let reldest = annexLocationRelative state backend key
createDirectoryIfMissing True (parentDir dest)
@@ -73,7 +74,6 @@ annexFile state file = inBackend file err $ do
gitRun (repo state) ["add", file]
gitRun (repo state) ["commit", "-m",
("git-annex annexed " ++ file), file]
- logStatus state key ValuePresent
linkTarget file =
-- relies on file being relative to the top of the
-- git repo; just replace each subdirectory with ".."
@@ -88,41 +88,37 @@ annexFile state file = inBackend file err $ do
unannexFile :: State -> FilePath -> IO ()
unannexFile state file = notinBackend file err $ \(key, backend) -> do
dropFile state backend key
- cleanup key backend
+ logStatus state key ValueMissing
+ let src = annexLocation state backend key
+ removeFile file
+ gitRun (repo state) ["rm", file]
+ gitRun (repo state) ["commit", "-m",
+ ("git-annex unannexed " ++ file), file]
+ -- git rm deletes empty directories;
+ -- put them back
+ createDirectoryIfMissing True (parentDir file)
+ renameFile src file
+ return ()
where
err = error $ "not annexed " ++ file
- cleanup key backend = do
- let src = annexLocation state backend key
- removeFile file
- gitRun (repo state) ["rm", file]
- gitRun (repo state) ["commit", "-m",
- ("git-annex unannexed " ++ file), file]
- -- git rm deletes empty directories;
- -- put them back
- createDirectoryIfMissing True (parentDir file)
- renameFile src file
- logStatus state key ValueMissing
- return ()
{- Transfers the file from a remote. -}
annexGetFile :: State -> FilePath -> IO ()
-annexGetFile state file = do
- r <- lookupFile file
- case (r) of
- Nothing -> error $ "not annexed " ++ file
- Just (key, backend) -> do
- inannex <- inAnnex state backend key
- if (inannex)
- then return ()
- else do
- let dest = annexLocation state backend key
- createDirectoryIfMissing True (parentDir dest)
- success <- retrieveFile state backend key dest
- if (success)
- then do
- logStatus state key ValuePresent
- return ()
- else error $ "failed to get " ++ file
+annexGetFile state file = notinBackend file err $ \(key, backend) -> do
+ inannex <- inAnnex state backend key
+ if (inannex)
+ then return ()
+ else do
+ let dest = annexLocation state backend key
+ createDirectoryIfMissing True (parentDir dest)
+ success <- retrieveFile state backend key dest
+ if (success)
+ then do
+ logStatus state key ValuePresent
+ return ()
+ else error $ "failed to get " ++ file
+ where
+ err = error $ "not annexed " ++ file
{- Indicates a file is wanted. -}
annexWantFile :: State -> FilePath -> IO ()