git-annex/Command/VAdd.hs
Joey Hess 8b6c7bdbcc
filter out control characters in all other Messages
This does, as a side effect, make long notes in json output not
be indented. The indentation is only needed to offset them
underneath the display of the file they apply to, so that's ok.

Sponsored-by: Brock Spratlen on Patreon
2023-04-11 12:58:01 -04:00

40 lines
1.2 KiB
Haskell

{- git-annex command
-
- Copyright 2014 Joey Hess <id@joeyh.name>
-
- Licensed under the GNU AGPL version 3 or higher.
-}
{-# LANGUAGE OverloadedStrings #-}
module Command.VAdd where
import Command
import qualified Annex
import Annex.View
import Command.View (checkoutViewBranch, paramView)
cmd :: Command
cmd = notBareRepo $
command "vadd" SectionMetaData
"add subdirs to current view"
paramView (withParams seek)
seek :: CmdParams -> CommandSeek
seek = withWords (commandAction . start)
start :: [String] -> CommandStart
start params = starting "vadd" (ActionItemOther Nothing) (SeekInput params) $
withCurrentView $ \view madj -> do
vu <- annexViewUnsetDirectory <$> Annex.getGitConfig
let (view', change) = refineView view $
map (parseViewParam vu) (reverse params)
case change of
Unchanged -> do
showNote "unchanged"
next $ return True
Narrowing -> next $ do
if visibleViewSize view' == visibleViewSize view
then giveup "That would not add an additional level of directory structure to the view. To filter the view, use vfilter instead of vadd."
else checkoutViewBranch view' madj narrowView
Widening -> giveup "Widening view to match more files is not currently supported."