This commit is contained in:
Joey Hess 2011-10-27 19:10:10 -04:00
parent f66f97c90e
commit 33e18d3d02
2 changed files with 5 additions and 13 deletions

View file

@ -23,8 +23,6 @@ command = [Command "drop" paramPaths defaultChecks seek
seek :: [CommandSeek]
seek = [withNumCopies start]
{- Indicates a file's content is not wanted anymore, and should be removed
- if it's safe to do so. -}
start :: FilePath -> Maybe Int -> CommandStart
start file numcopies = isAnnexed file $ \(key, _) -> do
present <- inAnnex key
@ -36,7 +34,7 @@ start file numcopies = isAnnexed file $ \(key, _) -> do
perform :: Key -> Maybe Int -> CommandPerform
perform key numcopies = do
success <- dropKey key numcopies
success <- canDropKey key numcopies
if success
then next $ cleanup key
else stop
@ -48,10 +46,9 @@ cleanup key = do
return True
{- Checks remotes to verify that enough copies of a key exist to allow
- for a key to be safely removed (with no data loss), and fails with an
- error if not. -}
dropKey :: Key -> Maybe Int -> Annex Bool
dropKey key numcopiesM = do
- for a key to be safely removed (with no data loss). -}
canDropKey :: Key -> Maybe Int -> Annex Bool
canDropKey key numcopiesM = do
force <- Annex.getState Annex.force
if force || numcopiesM == Just 0
then return True

View file

@ -9,7 +9,6 @@ module Command.Unannex where
import Common.Annex
import Command
import qualified Command.Drop
import qualified Annex
import qualified Annex.Queue
import Utility.FileMode
@ -44,11 +43,7 @@ start file = isAnnexed file $ \(key, _) -> do
else stop
perform :: FilePath -> Key -> CommandPerform
perform file key = do
ok <- Command.Drop.dropKey key (Just 0) -- always remove
if ok
then next $ cleanup file key
else stop
perform file key = next $ cleanup file key
cleanup :: FilePath -> Key -> CommandCleanup
cleanup file key = do