unused/dropunused: support --from
This commit is contained in:
parent
09a16176de
commit
868300d4c1
6 changed files with 147 additions and 44 deletions
|
@ -19,6 +19,8 @@ import Messages
|
|||
import Locations
|
||||
import qualified Annex
|
||||
import qualified Command.Drop
|
||||
import qualified Command.Move
|
||||
import qualified Remote
|
||||
import Backend
|
||||
import Key
|
||||
|
||||
|
@ -40,15 +42,28 @@ start m s = notBareRepo $ do
|
|||
case M.lookup s m of
|
||||
Nothing -> return Nothing
|
||||
Just key -> do
|
||||
g <- Annex.gitRepo
|
||||
showStart "dropunused" s
|
||||
backend <- keyBackend key
|
||||
-- drop both content in the backend and any tmp
|
||||
-- file for the key
|
||||
let tmp = gitAnnexTmpLocation g key
|
||||
tmp_exists <- liftIO $ doesFileExist tmp
|
||||
when tmp_exists $ liftIO $ removeFile tmp
|
||||
return $ Just $ Command.Drop.perform key backend (Just 0)
|
||||
from <- Annex.getState Annex.fromremote
|
||||
case from of
|
||||
Just name -> do
|
||||
r <- Remote.byName name
|
||||
return $ Just $ performRemote r key
|
||||
_ -> return $ Just $ perform key
|
||||
|
||||
{- drop both content in the backend and any tmp file for the key -}
|
||||
perform :: Key -> CommandPerform
|
||||
perform key = do
|
||||
g <- Annex.gitRepo
|
||||
let tmp = gitAnnexTmpLocation g key
|
||||
tmp_exists <- liftIO $ doesFileExist tmp
|
||||
when tmp_exists $ liftIO $ removeFile tmp
|
||||
backend <- keyBackend key
|
||||
Command.Drop.perform key backend (Just 0) -- force drop
|
||||
|
||||
performRemote :: Remote.Remote Annex -> Key -> CommandPerform
|
||||
performRemote r key = do
|
||||
showNote $ "from " ++ Remote.name r ++ "..."
|
||||
return $ Just $ Command.Move.fromCleanup r True key
|
||||
|
||||
readUnusedLog :: Annex (M.Map String Key)
|
||||
readUnusedLog = do
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue