8b6c7bdbcc
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
40 lines
1.2 KiB
Haskell
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."
|