summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2014-02-20 13:00:34 -0400
committerGravatar Joey Hess <joey@kitenet.net>2014-02-20 13:00:34 -0400
commit42fe9f99f1c8a808f94330273df0e15fb0ff2c4c (patch)
treee088694555d0b0efe7c8923c2c1a7bb153dc756c
parent1e3c8006a99257b3b14a3e14a77493cd8c68a59a (diff)
urk, forgot to check this in yesterday!
-rw-r--r--Command/VFilter.hs30
1 files changed, 30 insertions, 0 deletions
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 <joey@kitenet.net>
+ -
+ - 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