summaryrefslogtreecommitdiff
path: root/Command
diff options
context:
space:
mode:
Diffstat (limited to 'Command')
-rw-r--r--Command/Drop.hs17
-rw-r--r--Command/DropUnused.hs4
-rw-r--r--Command/Fsck.hs17
-rw-r--r--Command/FsckFile.hs29
-rw-r--r--Command/Unannex.hs3
5 files changed, 22 insertions, 48 deletions
diff --git a/Command/Drop.hs b/Command/Drop.hs
index fbe66f584..168aa92bd 100644
--- a/Command/Drop.hs
+++ b/Command/Drop.hs
@@ -15,24 +15,27 @@ import LocationLog
import Types
import Core
import Messages
+import Utility
seek :: [SubCmdSeek]
-seek = [withFilesInGit start]
+seek = [withAttrFilesInGit "git-annex-numcopies" start]
{- Indicates a file's content is not wanted anymore, and should be removed
- if it's safe to do so. -}
-start :: SubCmdStartString
-start file = isAnnexed file $ \(key, backend) -> do
+start :: SubCmdStartAttrFile
+start (file, attr) = isAnnexed file $ \(key, backend) -> do
inbackend <- Backend.hasKey key
if not inbackend
then return Nothing
else do
showStart "drop" file
- return $ Just $ perform key backend
+ return $ Just $ perform key backend numcopies
+ where
+ numcopies = readMaybe attr :: Maybe Int
-perform :: Key -> Backend -> SubCmdPerform
-perform key backend = do
- success <- Backend.removeKey backend key
+perform :: Key -> Backend -> Maybe Int -> SubCmdPerform
+perform key backend numcopies = do
+ success <- Backend.removeKey backend key numcopies
if success
then return $ Just $ cleanup key
else return Nothing
diff --git a/Command/DropUnused.hs b/Command/DropUnused.hs
index e8b8d43c4..016a9faa7 100644
--- a/Command/DropUnused.hs
+++ b/Command/DropUnused.hs
@@ -30,9 +30,7 @@ start s = do
Just key -> do
showStart "dropunused" s
backend <- keyBackend key
- -- force drop, even if this is the only copy
- Annex.flagChange "force" $ FlagBool True
- return $ Just $ Command.Drop.perform key backend
+ return $ Just $ Command.Drop.perform key backend (Just 0)
readUnusedLog :: Annex (M.Map String Key)
readUnusedLog = do
diff --git a/Command/Fsck.hs b/Command/Fsck.hs
index dc0168801..4341f85cd 100644
--- a/Command/Fsck.hs
+++ b/Command/Fsck.hs
@@ -11,19 +11,22 @@ import Command
import qualified Backend
import Types
import Messages
+import Utility
seek :: [SubCmdSeek]
-seek = [withAll withFilesInGit start]
+seek = [withAll (withAttrFilesInGit "git-annex-numcopies") start]
{- Checks a file's backend data for problems. -}
-start :: SubCmdStartString
-start file = isAnnexed file $ \(key, backend) -> do
+start :: SubCmdStartAttrFile
+start (file, attr) = isAnnexed file $ \(key, backend) -> do
showStart "fsck" file
- return $ Just $ perform key backend
+ return $ Just $ perform key backend numcopies
+ where
+ numcopies = readMaybe attr :: Maybe Int
-perform :: Key -> Backend -> SubCmdPerform
-perform key backend = do
- success <- Backend.fsckKey backend key
+perform :: Key -> Backend -> Maybe Int -> SubCmdPerform
+perform key backend numcopies = do
+ success <- Backend.fsckKey backend key numcopies
if success
then return $ Just $ return True
else return Nothing
diff --git a/Command/FsckFile.hs b/Command/FsckFile.hs
deleted file mode 100644
index e7c3d4915..000000000
--- a/Command/FsckFile.hs
+++ /dev/null
@@ -1,29 +0,0 @@
-{- git-annex command
- -
- - Copyright 2010 Joey Hess <joey@kitenet.net>
- -
- - Licensed under the GNU GPL version 3 or higher.
- -}
-
-module Command.FsckFile where
-
-import Command
-import qualified Backend
-import Types
-import Messages
-
-seek :: [SubCmdSeek]
-seek = [withFilesInGit start]
-
-{- Checks a file's backend data for problems. -}
-start :: SubCmdStartString
-start file = isAnnexed file $ \(key, backend) -> do
- showStart "fsck" file
- return $ Just $ perform key backend
-
-perform :: Key -> Backend -> SubCmdPerform
-perform key backend = do
- success <- Backend.fsckKey backend key
- if success
- then return $ Just $ return True
- else return Nothing
diff --git a/Command/Unannex.hs b/Command/Unannex.hs
index 90ae55058..9580fc5e7 100644
--- a/Command/Unannex.hs
+++ b/Command/Unannex.hs
@@ -32,8 +32,7 @@ start file = isAnnexed file $ \(key, backend) -> do
perform :: FilePath -> Key -> Backend -> SubCmdPerform
perform file key backend = do
-- force backend to always remove
- Annex.flagChange "force" $ FlagBool True
- ok <- Backend.removeKey backend key
+ ok <- Backend.removeKey backend key (Just 0)
if ok
then return $ Just $ cleanup file key
else return Nothing