git-annex/Command/Adjust.hs
Joey Hess e66b7d2e1b
rename to --unlock-present and better reverse adjusting
An --unlock-present branch reverses back to a branch where
all files that get modified or renamed become locked, even if they were
originally unlocked. This is the same that reversing a --unlock branch
works, and the new name makes that commonality more clear.
2020-11-13 14:56:43 -04:00

63 lines
1.7 KiB
Haskell

{- git-annex command
-
- Copyright 2016-2018 Joey Hess <id@joeyh.name>
-
- Licensed under the GNU AGPL version 3 or higher.
-}
module Command.Adjust where
import Command
import Annex.AdjustedBranch
cmd :: Command
cmd = notBareRepo $ noDaemonRunning $
command "adjust" SectionSetup "enter adjusted branch"
paramNothing (seek <$$> optParser)
optParser :: CmdParamsDesc -> Parser Adjustment
optParser _ =
(LinkAdjustment <$> linkAdjustmentParser)
<|> (PresenceAdjustment <$> presenceAdjustmentParser <*> maybeLinkAdjustmentParser)
<|> (LinkPresentAdjustment <$> linkPresentAdjustmentParser)
linkAdjustmentParser :: Parser LinkAdjustment
linkAdjustmentParser =
flag' UnlockAdjustment
( long "unlock"
<> help "unlock annexed files"
)
<|> flag' LockAdjustment
( long "lock"
<> help "lock annexed files"
)
<|> flag' FixAdjustment
( long "fix"
<> help "fix symlinks to annnexed files"
)
maybeLinkAdjustmentParser :: Parser (Maybe LinkAdjustment)
maybeLinkAdjustmentParser = Just <$> linkAdjustmentParser <|> pure Nothing
presenceAdjustmentParser :: Parser PresenceAdjustment
presenceAdjustmentParser =
flag' HideMissingAdjustment
( long "hide-missing"
<> help "hide annexed files whose content is not present"
)
linkPresentAdjustmentParser :: Parser LinkPresentAdjustment
linkPresentAdjustmentParser =
flag' UnlockPresentAdjustment
( long "unlock-present"
<> help "unlock files whose content is present; lock rest"
)
seek :: Adjustment -> CommandSeek
seek = commandAction . start
start :: Adjustment -> CommandStart
start adj = do
checkVersionSupported
starting "adjust" (ActionItemOther Nothing) (SeekInput []) $
next $ enterAdjustedBranch adj