whereis: New subcommand to show where a file's content has gotten to.
This commit is contained in:
parent
41d5c4acf6
commit
0de3005c64
4 changed files with 49 additions and 0 deletions
41
Command/Whereis.hs
Normal file
41
Command/Whereis.hs
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
{- git-annex command
|
||||||
|
-
|
||||||
|
- Copyright 2010 Joey Hess <joey@kitenet.net>
|
||||||
|
-
|
||||||
|
- Licensed under the GNU GPL version 3 or higher.
|
||||||
|
-}
|
||||||
|
|
||||||
|
module Command.Whereis where
|
||||||
|
|
||||||
|
import Control.Monad.State (liftIO)
|
||||||
|
|
||||||
|
import qualified Annex
|
||||||
|
import LocationLog
|
||||||
|
import Command
|
||||||
|
import Content
|
||||||
|
import Messages
|
||||||
|
import UUID
|
||||||
|
import Types
|
||||||
|
|
||||||
|
command :: [Command]
|
||||||
|
command = [Command "whereis" (paramOptional $ paramRepeating paramPath) seek
|
||||||
|
"lists repositories that have file content"]
|
||||||
|
|
||||||
|
seek :: [CommandSeek]
|
||||||
|
seek = [withFilesInGit start]
|
||||||
|
|
||||||
|
start :: CommandStartString
|
||||||
|
start file = isAnnexed file $ \(key, _) -> do
|
||||||
|
showStart "whereis" file
|
||||||
|
return $ Just $ perform key
|
||||||
|
|
||||||
|
perform :: Key -> CommandPerform
|
||||||
|
perform key = do
|
||||||
|
g <- Annex.gitRepo
|
||||||
|
uuids <- liftIO $ keyLocations g key
|
||||||
|
pp <- prettyPrintUUIDs uuids
|
||||||
|
showLongNote $ pp
|
||||||
|
showProgress
|
||||||
|
if null $ uuids
|
||||||
|
then return Nothing
|
||||||
|
else return $ Just $ return True
|
|
@ -34,6 +34,7 @@ import qualified Command.Unlock
|
||||||
import qualified Command.Lock
|
import qualified Command.Lock
|
||||||
import qualified Command.PreCommit
|
import qualified Command.PreCommit
|
||||||
import qualified Command.Find
|
import qualified Command.Find
|
||||||
|
import qualified Command.Whereis
|
||||||
import qualified Command.Migrate
|
import qualified Command.Migrate
|
||||||
import qualified Command.Uninit
|
import qualified Command.Uninit
|
||||||
import qualified Command.Trust
|
import qualified Command.Trust
|
||||||
|
@ -66,6 +67,7 @@ cmds = concat
|
||||||
, Command.Unused.command
|
, Command.Unused.command
|
||||||
, Command.DropUnused.command
|
, Command.DropUnused.command
|
||||||
, Command.Find.command
|
, Command.Find.command
|
||||||
|
, Command.Whereis.command
|
||||||
, Command.Migrate.command
|
, Command.Migrate.command
|
||||||
, Command.Map.command
|
, Command.Map.command
|
||||||
]
|
]
|
||||||
|
|
1
debian/changelog
vendored
1
debian/changelog
vendored
|
@ -1,6 +1,7 @@
|
||||||
git-annex (0.23) UNRELEASED; urgency=low
|
git-annex (0.23) UNRELEASED; urgency=low
|
||||||
|
|
||||||
* Support ssh remotes with a port specified.
|
* Support ssh remotes with a port specified.
|
||||||
|
* whereis: New subcommand to show where a file's content has gotten to.
|
||||||
|
|
||||||
-- Joey Hess <joeyh@debian.org> Sat, 05 Mar 2011 15:39:13 -0400
|
-- Joey Hess <joeyh@debian.org> Sat, 05 Mar 2011 15:39:13 -0400
|
||||||
|
|
||||||
|
|
|
@ -154,6 +154,11 @@ Many git-annex commands will stage changes for later `git commit` by you.
|
||||||
With no parameters, defaults to finding all files in the current directory
|
With no parameters, defaults to finding all files in the current directory
|
||||||
and its subdirectories.
|
and its subdirectories.
|
||||||
|
|
||||||
|
* whereis [path ...]
|
||||||
|
|
||||||
|
Displays a list of repositories known to contain the content of the
|
||||||
|
specified file or files.
|
||||||
|
|
||||||
* migrate [path ...]
|
* migrate [path ...]
|
||||||
|
|
||||||
Changes the specified annexed files to store their content in the
|
Changes the specified annexed files to store their content in the
|
||||||
|
|
Loading…
Reference in a new issue