From 42fe9f99f1c8a808f94330273df0e15fb0ff2c4c Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 20 Feb 2014 13:00:34 -0400 Subject: urk, forgot to check this in yesterday! --- Command/VFilter.hs | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 Command/VFilter.hs (limited to 'Command/VFilter.hs') diff --git a/Command/VFilter.hs b/Command/VFilter.hs new file mode 100644 index 000000000..c16b28956 --- /dev/null +++ b/Command/VFilter.hs @@ -0,0 +1,30 @@ +{- git-annex command + - + - Copyright 2014 Joey Hess + - + - Licensed under the GNU GPL version 3 or higher. + -} + +module Command.VFilter where + +import Common.Annex +import Command +import Annex.View +import Command.View (paramView, parseViewParam, checkoutViewBranch) + +def :: [Command] +def = [notBareRepo $ notDirect $ + command "vfilter" paramView seek SectionMetaData "filter current view"] + +seek :: CommandSeek +seek = withWords start + +start :: [String] -> CommandStart +start params = do + showStart "vfilter" "" + withCurrentView $ \view -> do + let view' = filterView view $ + map parseViewParam $ reverse params + next $ next $ if visibleViewSize view' > visibleViewSize view + then error "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." + else checkoutViewBranch view' narrowView -- cgit v1.2.3