diffdriver --text support options for diff
Sponsored-by: KDM on Patreon
This commit is contained in:
parent
4195acc012
commit
3d810726af
3 changed files with 11 additions and 6 deletions
|
@ -70,7 +70,9 @@ serializeReq req@(Req {}) = map Param
|
||||||
|
|
||||||
parseReq :: Options -> (Req, Differ)
|
parseReq :: Options -> (Req, Differ)
|
||||||
parseReq opts
|
parseReq opts
|
||||||
| textDiff opts = (mk (restOptions opts), textDiffer)
|
| textDiff opts = case separate (== "--") (restOptions opts) of
|
||||||
|
(_,[]) -> (mk (restOptions opts), textDiffer [])
|
||||||
|
(ps,rest) -> (mk rest, textDiffer ps)
|
||||||
| otherwise = case separate (== "--") (restOptions opts) of
|
| otherwise = case separate (== "--") (restOptions opts) of
|
||||||
(c:ps, l) -> (mk l, externalDiffer c ps)
|
(c:ps, l) -> (mk l, externalDiffer c ps)
|
||||||
([],_) -> badopts
|
([],_) -> badopts
|
||||||
|
@ -117,13 +119,13 @@ fixupReq req@(Req {}) =
|
||||||
externalDiffer :: String -> [String] -> Differ
|
externalDiffer :: String -> [String] -> Differ
|
||||||
externalDiffer c ps = \req -> boolSystem c (map Param ps ++ serializeReq req )
|
externalDiffer c ps = \req -> boolSystem c (map Param ps ++ serializeReq req )
|
||||||
|
|
||||||
textDiffer :: Differ
|
textDiffer :: [String] -> Differ
|
||||||
textDiffer req = do
|
textDiffer diffopts req = do
|
||||||
putStrLn ("diff a/" ++ rPath req ++ " b/" ++ rPath req)
|
putStrLn ("diff a/" ++ rPath req ++ " b/" ++ rPath req)
|
||||||
-- diff exits nonzero on difference, so ignore exit status
|
-- diff exits nonzero on difference, so ignore exit status
|
||||||
void $ boolSystem "diff"
|
void $ boolSystem "diff" $
|
||||||
[ Param "-u"
|
[ Param "-u"
|
||||||
, Param (rOldFile req)
|
, Param (rOldFile req)
|
||||||
, Param (rNewFile req)
|
, Param (rNewFile req)
|
||||||
]
|
] ++ map Param diffopts
|
||||||
return True
|
return True
|
||||||
|
|
|
@ -4,7 +4,7 @@ git-annex diffdriver - git diff driver
|
||||||
|
|
||||||
# SYNOPSIS
|
# SYNOPSIS
|
||||||
|
|
||||||
git annex diffdriver --text
|
git annex diffdriver --text [-- --opts --]
|
||||||
|
|
||||||
git annex diffdriver `-- cmd --opts --`
|
git annex diffdriver `-- cmd --opts --`
|
||||||
|
|
||||||
|
@ -42,6 +42,7 @@ set `GIT_EXTERNAL_DIFF="git-annex diffdriver -- j-c-diff --"`
|
||||||
# OPTIONS
|
# OPTIONS
|
||||||
|
|
||||||
To diff text files with diff(1), use the "--text" option.
|
To diff text files with diff(1), use the "--text" option.
|
||||||
|
To pass additional options to diff(1), use eg "--text -- --color --"
|
||||||
|
|
||||||
To use an external diff driver command, the options must start with
|
To use an external diff driver command, the options must start with
|
||||||
"--" followed by the diff driver command, its options, and another "--"
|
"--" followed by the diff driver command, its options, and another "--"
|
||||||
|
|
|
@ -28,3 +28,5 @@ How about having `git annex diffdriver --text` always using `diff --text`? That
|
||||||
Thanks again a ton for git-annex, the Tübix2023-Workshop was well appreciated and lots of fun. 👍
|
Thanks again a ton for git-annex, the Tübix2023-Workshop was well appreciated and lots of fun. 👍
|
||||||
|
|
||||||
Yann
|
Yann
|
||||||
|
|
||||||
|
> [[done]] --[[Joey]]
|
||||||
|
|
Loading…
Add table
Reference in a new issue