Mercurial > hg-stable
changeset 36279:9ee10b3284da
templatefilters: add dirname() filter
This is different from stripdir() in that the last component is always
removed.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sun, 07 Jan 2018 12:09:33 +0900 |
parents | c6ce479f7a28 |
children | 48a6b1a22ccf |
files | mercurial/templatefilters.py tests/test-command-template.t |
diffstat | 2 files changed, 11 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/templatefilters.py Sun Jan 07 11:21:25 2018 +0900 +++ b/mercurial/templatefilters.py Sun Jan 07 12:09:33 2018 +0900 @@ -100,6 +100,13 @@ """List or text. Returns the length as an integer.""" return len(i) +@templatefilter('dirname') +def dirname(path): + """Any text. Treats the text as a path, and strips the last + component of the path after splitting by the path separator. + """ + return os.path.dirname(path) + @templatefilter('domain') def domain(author): """Any text. Finds the first string that looks like an email
--- a/tests/test-command-template.t Sun Jan 07 11:21:25 2018 +0900 +++ b/tests/test-command-template.t Sun Jan 07 12:09:33 2018 +0900 @@ -2232,6 +2232,10 @@ $ hg debugtemplate '{"foo/bar"|basename}|{"foo/"|basename}|{"foo"|basename}|\n' bar||foo| + $ hg debugtemplate '{"foo/bar"|dirname}|{"foo/"|dirname}|{"foo"|dirname}|\n' + foo|foo|| + $ hg debugtemplate '{"foo/bar"|stripdir}|{"foo/"|stripdir}|{"foo"|stripdir}|\n' + foo|foo|foo| Add a dummy commit to make up for the instability of the above: