showStart variant for when there's no worktree file

Clean up some uses of showStart with "" for the file,
or in some cases, a non-filename description string. That would
generate bad json, although none of the commands doing that
supported --json.

Using "" for the file resulted in output like "foo  rest";
now the extra space is eliminated.

This commit was sponsored by Fernando Jimenez on Patreon.
This commit is contained in:
Joey Hess 2017-11-28 14:40:26 -04:00
parent d6d8f72957
commit 4781ca297b
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
46 changed files with 74 additions and 67 deletions

View file

@ -38,5 +38,5 @@ seek = commandAction . start
start :: Adjustment -> CommandStart
start adj = do
checkVersionSupported
showStart "adjust" ""
showStart' "adjust" Nothing
next $ next $ enterAdjustedBranch adj

View file

@ -50,14 +50,14 @@ optParser _ = setconfig <|> getconfig <|> unsetconfig
seek :: Action -> CommandSeek
seek (SetConfig name val) = commandAction $ do
allowMessages
showStart name val
showStart' name (Just val)
next $ next $ do
setGlobalConfig name val
setConfig (ConfigKey name) val
return True
seek (UnsetConfig name) = commandAction $ do
allowMessages
showStart name "unset"
showStart' name (Just "unset")
next $ next $ do
unsetGlobalConfig name
unsetConfig (ConfigKey name)

View file

@ -33,7 +33,7 @@ seek (DeadKeys ks) = seekActions $ pure $ map startKey ks
startKey :: Key -> CommandStart
startKey key = do
showStart "dead" (key2file key)
showStart' "dead" (Just $ key2file key)
ls <- keyLocations key
case ls of
[] -> next $ performKey key

View file

@ -22,7 +22,7 @@ seek = withWords start
start :: [String] -> CommandStart
start (name:description) = do
showStart "describe" name
showStart' "describe" (Just name)
u <- Remote.nameToUUID name
next $ perform u $ unwords description
start _ = giveup "Specify a repository and a description."

View file

@ -31,7 +31,7 @@ start = ifM versionSupportsDirectMode
perform :: CommandPerform
perform = do
showStart "commit" ""
showStart' "commit" Nothing
showOutput
_ <- inRepo $ Git.Branch.commitCommand Git.Branch.ManualCommit
[ Param "-a"
@ -65,6 +65,6 @@ perform = do
cleanup :: CommandCleanup
cleanup = do
showStart "direct" ""
showStart' "direct" Nothing
setDirect True
return True

View file

@ -89,12 +89,12 @@ startKeys o key = start' o key (AssociatedFile Nothing)
startLocal :: AssociatedFile -> ActionItem -> NumCopies -> Key -> [VerifiedCopy] -> CommandStart
startLocal afile ai numcopies key preverified = stopUnless (inAnnex key) $ do
showStart' "drop" key ai
showStartKey "drop" key ai
next $ performLocal key afile numcopies preverified
startRemote :: AssociatedFile -> ActionItem -> NumCopies -> Key -> Remote -> CommandStart
startRemote afile ai numcopies key remote = do
showStart' ("drop " ++ Remote.name remote) key ai
showStartKey ("drop " ++ Remote.name remote) key ai
next $ performRemote key afile numcopies remote
performLocal :: Key -> AssociatedFile -> NumCopies -> [VerifiedCopy] -> CommandPerform

View file

@ -42,7 +42,7 @@ seek o = do
start :: Key -> CommandStart
start key = do
showStart' "dropkey" key (mkActionItem key)
showStartKey "dropkey" key (mkActionItem key)
next $ perform key
perform :: Key -> CommandPerform

View file

@ -55,7 +55,7 @@ start (name:rest) = go =<< filter matchingname <$> Annex.fromRepo Git.remotes
startNormalRemote :: Git.RemoteName -> [String] -> Git.Repo -> CommandStart
startNormalRemote name restparams r
| null restparams = do
showStart "enableremote" name
showStart' "enableremote" (Just name)
next $ next $ do
setRemoteIgnore r False
r' <- Remote.Git.configRead False r
@ -77,7 +77,7 @@ startSpecialRemote name config Nothing = do
startSpecialRemote name config (Just (u, c)) = do
let fullconfig = config `M.union` c
t <- either giveup return (Annex.SpecialRemote.findType fullconfig)
showStart "enableremote" name
showStart' "enableremote" (Just name)
gc <- maybe (liftIO dummyRemoteGitConfig)
(return . Remote.gitconfig)
=<< Remote.byUUID u

View file

@ -51,7 +51,7 @@ start os = do
Nothing -> giveup "Need user-id parameter."
Just userid -> go uuid userid
else do
showStart "enable-tor" ""
showStart' "enable-tor" Nothing
gitannex <- liftIO readProgramFile
let ps = [Param (cmdname cmd), Param (show curruserid)]
sucommand <- liftIO $ mkSuCommand gitannex ps

View file

@ -59,12 +59,12 @@ start :: Expire -> Bool -> Log Activity -> M.Map UUID String -> UUID -> CommandS
start (Expire expire) noact actlog descs u =
case lastact of
Just ent | notexpired ent -> checktrust (== DeadTrusted) $ do
showStart "unexpire" desc
showStart' "unexpire" (Just desc)
showNote =<< whenactive
unless noact $
trustSet u SemiTrusted
_ -> checktrust (/= DeadTrusted) $ do
showStart "expire" desc
showStart' "expire" (Just desc)
showNote =<< whenactive
unless noact $
trustSet u DeadTrusted

View file

@ -34,7 +34,7 @@ seek = commandAction . start
start :: ForgetOptions -> CommandStart
start o = do
showStart "forget" "git-annex"
showStart' "forget" (Just "git-annex")
c <- liftIO currentVectorClock
let basets = addTransition c ForgetGitHistory noTransitions
let ts = if dropDead o

View file

@ -41,7 +41,7 @@ start force (keyname, file) = do
startMass :: CommandStart
startMass = do
showStart "fromkey" "stdin"
showStart' "fromkey" (Just "stdin")
next massAdd
massAdd :: CommandPerform

View file

@ -536,7 +536,7 @@ badContentRemote remote localcopy key = do
runFsck :: Incremental -> ActionItem -> Key -> Annex Bool -> CommandStart
runFsck inc ai key a = ifM (needFsck inc key)
( do
showStart' "fsck" key ai
showStartKey "fsck" key ai
next $ do
ok <- a
when ok $

View file

@ -71,7 +71,7 @@ start' expensivecheck from key afile ai = onlyActionOn key $
go $ Command.Move.fromPerform src False key afile
where
go a = do
showStart' "get" key ai
showStartKey "get" key ai
next a
perform :: Key -> AssociatedFile -> CommandPerform

View file

@ -24,7 +24,7 @@ seek = withWords start
start :: [String] -> CommandStart
start (name:g:[]) = do
allowMessages
showStart "group" name
showStart' "group" (Just name)
u <- Remote.nameToUUID name
next $ setGroup u g
start (name:[]) = do

View file

@ -24,6 +24,6 @@ start :: [String] -> CommandStart
start (g:[]) = next $ performGet groupPreferredContentMapRaw g
start (g:expr:[]) = do
allowMessages
showStart "groupwanted" g
showStart' "groupwanted" (Just g)
next $ performSet groupPreferredContentSet expr g
start _ = giveup "Specify a group."

View file

@ -72,7 +72,7 @@ seek o = do
start :: ImportFeedOptions -> Cache -> URLString -> CommandStart
start opts cache url = do
showStart "importfeed" url
showStart' "importfeed" (Just url)
next $ perform opts cache url
perform :: ImportFeedOptions -> Cache -> URLString -> CommandPerform

View file

@ -42,7 +42,7 @@ start = ifM isDirect
perform :: CommandPerform
perform = do
showStart "commit" ""
showStart' "commit" Nothing
whenM stageDirect $ do
showOutput
void $ inRepo $ Git.Branch.commitCommand Git.Branch.ManualCommit
@ -100,6 +100,6 @@ perform = do
cleanup :: CommandCleanup
cleanup = do
showStart "indirect" ""
showStart' "indirect" Nothing
showEndOk
return True

View file

@ -40,7 +40,7 @@ seek = commandAction . start
start :: InitOptions -> CommandStart
start os = do
showStart "init" (initDesc os)
showStart' "init" (Just $ initDesc os)
next $ perform os
perform :: InitOptions -> CommandPerform

View file

@ -38,7 +38,7 @@ start (name:ws) = ifM (isJust <$> findExisting name)
let c = newConfig name
t <- either giveup return (findType config)
showStart "initremote" name
showStart' "initremote" (Just name)
next $ perform t name $ M.union config c
)
)

View file

@ -189,7 +189,7 @@ same a b
{- reads the config of a remote, with progress display -}
scan :: Git.Repo -> Annex Git.Repo
scan r = do
showStart "map" $ Git.repoDescribe r
showStart' "map" (Just $ Git.repoDescribe r)
v <- tryScan r
case v of
Just r' -> do

View file

@ -23,7 +23,7 @@ seek _ = do
mergeBranch :: CommandStart
mergeBranch = do
showStart "merge" "git-annex"
showStart' "merge" (Just "git-annex")
next $ do
Annex.Branch.update
-- commit explicitly, in case no remote branches were merged

View file

@ -100,7 +100,7 @@ startKeys c o k ai = case getSet o of
putStrLn . fromMetaValue
stop
_ -> do
showStart' "metadata" k ai
showStartKey "metadata" k ai
next $ perform c o k
perform :: VectorClock -> MetaDataOptions -> Key -> CommandPerform
@ -164,7 +164,7 @@ startBatch (i, (MetaData m)) = case i of
Right k -> go k (mkActionItem k)
where
go k ai = do
showStart' "metadata" k ai
showStartKey "metadata" k ai
let o = MetaDataOptions
{ forFiles = []
, getSet = if MetaData m == emptyMetaData

View file

@ -87,7 +87,7 @@ start' o move afile key ai = onlyActionOn key $
toHereStart move afile key ai
showMoveAction :: Bool -> Key -> ActionItem -> Annex ()
showMoveAction move = showStart' (if move then "move" else "copy")
showMoveAction move = showStartKey (if move then "move" else "copy")
{- Moves (or copies) the content of an annexed file to a remote.
-

View file

@ -78,7 +78,7 @@ seek (MultiCastOptions Receive _ _) = giveup "Cannot specify list of files with
genAddress :: CommandStart
genAddress = do
showStart "gen-address" ""
showStart' "gen-address" Nothing
k <- uftpKey
(s, ok) <- case k of
KeyContainer s -> liftIO $ genkey (Param s)
@ -130,7 +130,7 @@ send ups fs = withTmpFile "send" $ \t h -> do
whenM isDirect $
giveup "Sorry, multicast send cannot be done from a direct mode repository."
showStart "generating file list" ""
showStart' "generating file list" Nothing
fs' <- seekHelper LsFiles.inRepo =<< workTreeItems fs
matcher <- Limit.getMatcher
let addlist f o = whenM (matcher $ MatchingFile $ FileInfo f f) $
@ -143,7 +143,7 @@ send ups fs = withTmpFile "send" $ \t h -> do
liftIO $ hClose h
showEndOk
showStart "sending files" ""
showStart' "sending files" Nothing
showOutput
serverkey <- uftpKey
u <- getUUID
@ -169,7 +169,7 @@ send ups fs = withTmpFile "send" $ \t h -> do
receive :: [CommandParam] -> CommandStart
receive ups = do
showStart "receiving multicast files" ""
showStart' "receiving multicast files" Nothing
showNote "Will continue to run until stopped by ctrl-c"
showOutput

View file

@ -48,7 +48,7 @@ startGet = next $ next $ do
startSet :: Int -> CommandStart
startSet n = do
allowMessages
showStart "numcopies" (show n)
showStart' "numcopies" (Just $ show n)
next $ next $ do
setGlobalNumCopies $ NumCopies n
return True

View file

@ -97,7 +97,7 @@ genAddresses addrs = do
-- Address is read from stdin, to avoid leaking it in shell history.
linkRemote :: RemoteName -> CommandStart
linkRemote remotename = do
showStart "p2p link" remotename
showStart' "p2p link" (Just remotename)
next $ next promptaddr
where
promptaddr = do
@ -123,7 +123,7 @@ linkRemote remotename = do
startPairing :: RemoteName -> [P2PAddress] -> CommandStart
startPairing _ [] = giveup "No P2P networks are currrently available."
startPairing remotename addrs = do
showStart "p2p pair" remotename
showStart' "p2p pair" (Just remotename)
ifM (liftIO Wormhole.isInstalled)
( next $ performPairing remotename addrs
, giveup "Magic Wormhole is not installed, and is needed for pairing. Install it from your distribution or from https://github.com/warner/magic-wormhole/"

View file

@ -27,10 +27,10 @@ seek = withWords start
start :: [String] -> CommandStart
start (keyname:url:[]) = do
let key = mkKey keyname
showStart "registerurl" url
showStart' "registerurl" (Just url)
next $ perform key url
start [] = do
showStart "registerurl" "stdin"
showStart' "registerurl" (Just "stdin")
next massAdd
start _ = giveup "specify a key and an url"

View file

@ -25,7 +25,7 @@ seek = withWords start
start :: [String] -> CommandStart
start ws = do
showStart "reinit" s
showStart' "reinit" (Just s)
next $ perform s
where
s = unwords ws

View file

@ -23,7 +23,7 @@ seek = withNothing start
start :: CommandStart
start = do
showStart "resolvemerge" ""
showStart' "resolvemerge" Nothing
us <- fromMaybe nobranch <$> inRepo Git.Branch.current
d <- fromRepo Git.localGitDir
let merge_head = d </> "MERGE_HEAD"

View file

@ -28,7 +28,7 @@ start = parse
parse (name:[]) = go name performGet
parse (name:expr:[]) = go name $ \uuid -> do
allowMessages
showStart "schedule" name
showStart' "schedule" (Just name)
performSet expr uuid
parse _ = giveup "Specify a repository."

View file

@ -23,7 +23,7 @@ seek = withWords start
start :: [String] -> CommandStart
start (ks:us:vs:[]) = do
showStart' "setpresentkey" k (mkActionItem k)
showStartKey "setpresentkey" k (mkActionItem k)
next $ perform k (toUUID us) s
where
k = fromMaybe (giveup "bad key") (file2key ks)

View file

@ -299,7 +299,7 @@ syncRemotes' ps available =
commit :: SyncOptions -> CommandStart
commit o = stopUnless shouldcommit $ next $ next $ do
commitmessage <- maybe commitMsg return (messageOption o)
showStart "commit" ""
showStart' "commit" Nothing
Annex.Branch.commit "update"
ifM isDirect
( do
@ -342,7 +342,7 @@ mergeLocal mergeconfig resolvemergeoverride currbranch@(Just _, _) =
where
go Nothing = stop
go (Just syncbranch) = do
showStart "merge" $ Git.Ref.describe syncbranch
showStart' "merge" (Just $ Git.Ref.describe syncbranch)
next $ next $ merge currbranch mergeconfig resolvemergeoverride Git.Branch.ManualCommit syncbranch
mergeLocal _ _ (Nothing, madj) = do
b <- inRepo Git.Branch.currentUnsafe
@ -401,7 +401,7 @@ updateBranch syncbranch updateto g =
pullRemote :: SyncOptions -> [Git.Merge.MergeConfig] -> Remote -> CurrBranch -> CommandStart
pullRemote o mergeconfig remote branch = stopUnless (pure $ pullOption o && wantpull) $ do
showStart "pull" (Remote.name remote)
showStart' "pull" (Just (Remote.name remote))
next $ do
showOutput
stopUnless fetch $
@ -438,7 +438,7 @@ mergeRemote remote currbranch mergeconfig resolvemergeoverride = ifM isBareRepo
pushRemote :: SyncOptions -> Remote -> CurrBranch -> CommandStart
pushRemote _o _remote (Nothing, _) = stop
pushRemote o remote (Just branch, _) = stopUnless (pure (pushOption o) <&&> needpush) $ do
showStart "push" (Remote.name remote)
showStart' "push" (Just (Remote.name remote))
next $ next $ do
showOutput
ok <- inRepoWithSshOptionsTo (Remote.repo remote) gc $
@ -651,7 +651,7 @@ syncFile ebloom rs af k = onlyActionOn' k $ do
, return []
)
get have = includeCommandAction $ do
showStart' "get" k (mkActionItem af)
showStartKey "get" k (mkActionItem af)
next $ next $ getKey' k af have
wantput r
@ -703,7 +703,7 @@ seekExportContent rs = or <$> forM rs go
cleanupLocal :: CurrBranch -> CommandStart
cleanupLocal (Nothing, _) = stop
cleanupLocal (Just currb, _) = do
showStart "cleanup" "local"
showStart' "cleanup" (Just "local")
next $ next $ do
delbranch $ syncBranch currb
delbranch $ syncBranch $ Git.Ref.base $ Annex.Branch.name
@ -717,7 +717,7 @@ cleanupLocal (Just currb, _) = do
cleanupRemote :: Remote -> CurrBranch -> CommandStart
cleanupRemote _ (Nothing, _) = stop
cleanupRemote remote (Just b, _) = do
showStart "cleanup" (Remote.name remote)
showStart' "cleanup" (Just (Remote.name remote))
next $ next $
inRepo $ Git.Command.runBool
[ Param "push"

View file

@ -58,7 +58,7 @@ seek o = commandAction $ start (fromInteger $ sizeOption o) (testRemote o)
start :: Int -> RemoteName -> CommandStart
start basesz name = do
showStart "testremote" name
showStart' "testremote" (Just name)
fast <- Annex.getState Annex.fast
r <- either giveup disableExportTree =<< Remote.byName' name
rs <- catMaybes <$> mapM (adjustChunkSize r) (chunkSizes basesz fast)

View file

@ -27,7 +27,7 @@ trustCommand c level = withWords start
where
start ws = do
let name = unwords ws
showStart c name
showStart' c (Just name)
u <- Remote.nameToUUID name
next $ perform u
perform uuid = do

View file

@ -23,7 +23,7 @@ seek = withWords start
start :: [String] -> CommandStart
start (name:g:[]) = do
showStart "ungroup" name
showStart' "ungroup" (Just name)
u <- Remote.nameToUUID name
next $ perform u g
start _ = giveup "Specify a repository and a group."

View file

@ -70,7 +70,7 @@ start o = do
Just "." -> (".", checkUnused refspec)
Just "here" -> (".", checkUnused refspec)
Just n -> (n, checkRemoteUnused n refspec)
showStart "unused" name
showStart' "unused" (Just name)
next perform
checkUnused :: RefSpec -> CommandPerform
@ -338,5 +338,5 @@ startUnused message unused badunused tmpunused maps n = search
case M.lookup n m of
Nothing -> search rest
Just key -> do
showStart message (show n)
showStart' message (Just $ show n)
next $ a key

View file

@ -23,7 +23,7 @@ seek = withNothing start
start :: CommandStart
start = do
showStart "upgrade" "."
showStart' "upgrade" Nothing
whenM (isNothing <$> getVersion) $ do
initialize Nothing Nothing
r <- upgrade False latestVersion

View file

@ -23,7 +23,7 @@ seek = withWords start
start :: [String] -> CommandStart
start params = do
showStart "vadd" ""
showStart' "vadd" Nothing
withCurrentView $ \view -> do
let (view', change) = refineView view $
map parseViewParam $ reverse params

View file

@ -27,7 +27,7 @@ start = go =<< currentView
where
go Nothing = giveup "Not in a view."
go (Just v) = do
showStart "vcycle" ""
showStart' "vcycle" Nothing
let v' = v { viewComponents = vcycle [] (viewComponents v) }
if v == v'
then do

View file

@ -21,7 +21,7 @@ seek = withWords start
start :: [String] -> CommandStart
start params = do
showStart "vfilter" ""
showStart' "vfilter" Nothing
withCurrentView $ \view -> do
let view' = filterView view $
map parseViewParam $ reverse params

View file

@ -28,7 +28,7 @@ start ps = go =<< currentView
where
go Nothing = giveup "Not in a view."
go (Just v) = do
showStart "vpop" (show num)
showStart' "vpop" (Just $ show num)
removeView v
(oldvs, vs) <- splitAt (num - 1) . filter (sameparentbranch v)
<$> recentViews

View file

@ -27,7 +27,7 @@ seek = withWords start
start :: [String] -> CommandStart
start [] = giveup "Specify metadata to include in view"
start ps = do
showStart "view" ""
showStart' "view" Nothing
view <- mkView ps
go view =<< currentView
where

View file

@ -35,7 +35,7 @@ cmd' name desc getter setter = noMessages $
start (rname:[]) = go rname (performGet getter)
start (rname:expr:[]) = go rname $ \uuid -> do
allowMessages
showStart name rname
showStart' name (Just rname)
performSet setter expr uuid
start _ = giveup "Specify a repository."

View file

@ -53,7 +53,7 @@ start remotemap file key = startKeys remotemap key (mkActionItem afile)
startKeys :: M.Map UUID Remote -> Key -> ActionItem -> CommandStart
startKeys remotemap key ai = do
showStart' "whereis" key ai
showStartKey "whereis" key ai
next $ perform remotemap key
perform :: M.Map UUID Remote -> Key -> CommandPerform

View file

@ -7,9 +7,10 @@
module Messages (
showStart,
showStart',
showStartKey,
ActionItem,
mkActionItem,
showStart',
showNote,
showAction,
showSideAction,
@ -66,8 +67,14 @@ showStart command file = outputMessage json $
where
json = JSON.start command (Just file) Nothing
showStart' :: String -> Key -> ActionItem -> Annex ()
showStart' command key i = outputMessage json $
showStart' :: String -> Maybe String -> Annex ()
showStart' command mdesc = outputMessage json $
command ++ (maybe "" (" " ++) mdesc) ++ " "
where
json = JSON.start command Nothing Nothing
showStartKey :: String -> Key -> ActionItem -> Annex ()
showStartKey command key i = outputMessage json $
command ++ " " ++ actionItemDesc i key ++ " "
where
json = JSON.start command (actionItemWorkTreeFile i) (Just key)