2014-02-20 17:00:34 +00:00
{- git - annex command
-
2015-01-21 16:50:09 +00:00
- Copyright 2014 Joey Hess < id @ joeyh . name >
2014-02-20 17:00:34 +00:00
-
2019-03-13 19:48:14 +00:00
- Licensed under the GNU AGPL version 3 or higher .
2014-02-20 17:00:34 +00:00
- }
module Command.VFilter where
import Command
import Annex.View
2014-03-02 18:53:19 +00:00
import Command.View ( paramView , checkoutViewBranch )
2014-02-20 17:00:34 +00:00
2015-07-08 16:33:27 +00:00
cmd :: Command
cmd = notBareRepo $ notDirect $
2015-07-08 19:08:02 +00:00
command " vfilter " SectionMetaData " filter current view "
paramView ( withParams seek )
2014-02-20 17:00:34 +00:00
2015-07-08 19:08:02 +00:00
seek :: CmdParams -> CommandSeek
2018-10-01 18:12:06 +00:00
seek = withWords ( commandAction . start )
2014-02-20 17:00:34 +00:00
start :: [ String ] -> CommandStart
start params = do
2017-11-28 18:40:26 +00:00
showStart' " vfilter " Nothing
2014-02-20 17:00:34 +00:00
withCurrentView $ \ view -> do
let view' = filterView view $
map parseViewParam $ reverse params
next $ next $ if visibleViewSize view' > visibleViewSize view
2016-11-16 01:29:54 +00:00
then giveup " That would add an additional level of directory structure to the view, rather than filtering it. If you want to do that, use vadd instead of vfilter. "
2014-02-20 17:00:34 +00:00
else checkoutViewBranch view' narrowView