| X:stylesheet { |
| |
| X:output method="text"; |
| |
| X:param format="'generic'"; |
| X:param pkgname="'nginx'"; |
| X:param versionmask="'0'"; |
| X:param configuration="'change_log_conf.xml'"; |
| |
| X:var conf = "document($configuration)/configuration"; |
| |
| X:var start = { |
| X:choose { |
| X:when "$format='rpm'" { |
| !{$conf/rpm/start} |
| } |
| X:when "$format='deb'" { |
| !{$conf/deb/start} |
| } |
| X:when "$format='generic'" { |
| !{$conf/generic/start} |
| } |
| } |
| } |
| |
| X:var indent = { |
| X:choose { |
| X:when "$format='rpm'" { |
| !{$conf/rpm/indent} |
| } |
| X:when "$format='deb'" { |
| !{$conf/deb/indent} |
| } |
| X:when "$format='generic'" { |
| !{$conf/generic/indent} |
| } |
| } |
| } |
| |
| X:var max = { |
| X:choose { |
| X:when "$format='rpm'" { |
| !{$conf/rpm/length} |
| } |
| X:when "$format='deb'" { |
| !{$conf/deb/length} |
| } |
| X:when "$format='generic'" { |
| !{$conf/generic/length} |
| } |
| } |
| } |
| |
| X:var br = {<br>} |
| |
| |
| X:template = "/" { !! "change_log"; } |
| X:template = "change_log" { !! "changes"; } |
| |
| |
| X:template = "changes" { |
| X:var pday = { !padded_day(date="@date") } |
| X:var dow = { !day_of_week(date="@date") } |
| X:var apply = { !string_in_list(list="@apply", string="$pkgname") } |
| |
| X:var _pkgs = {} |
| |
| X:var basever_t = { |
| X:choose { |
| X:when "position()=1 and $versionmask='1'" {%%TARGET_VERSION%%} |
| X:otherwise { !{@basever} } |
| } |
| } |
| |
| X:var ver_t = { |
| X:choose { |
| X:when "position()=1 and $versionmask='1' and $pkgname='nginx'" {%%BASE_VERSION%%} |
| X:when "position()=1 and $versionmask='1' and $pkgname!='nginx'" {%%MODULE_VERSION%%} |
| X:otherwise { !{@ver} } |
| } |
| } |
| |
| X:var rev_t = { |
| X:choose { |
| X:when "position()=1 and $versionmask='1' and $pkgname='nginx'" {%%BASE_RELEASE%%} |
| X:when "position()=1 and $versionmask='1' and $pkgname!='nginx'" {%%MODULE_RELEASE%%} |
| X:otherwise { !{@rev} } |
| } |
| } |
| |
| X:var ver_ = { |
| X:choose { |
| X:when "@basever = '0'" { !{$ver_t} } |
| X:otherwise { |
| X:choose { |
| X:when "@basever = @ver" { !{$ver_t} } |
| X:otherwise { !{concat($basever_t, '+', @ver) } } |
| } |
| } |
| } |
| } |
| |
| X:choose { |
| X:when "$pkgname='nginx' and $format='generic' and @rev!=1" {} |
| X:otherwise { |
| X:if "$apply=$pkgname" { |
| |
| X:if "$format='generic'" { |
| X:text { } |
| |
| !{substring(concat($conf/changes/title, |
| $pkgname, |
| ' ', @ver, |
| ' '), |
| 1, $conf/changes/length)} |
| |
| !{substring(@date, 9, 2)} |
| !{$conf/changes/month[number(substring(current()/@date, |
| 6, 2))]} |
| !{substring(@date, 1, 4)} |
| } |
| |
| X:if "$format='rpm'" { |
| !{concat('* ', $conf/changes/day[number($dow)], |
| $conf/changes/month[number(substring(current()/@date, 6, 2))], |
| $pday, ' ', |
| substring(@date, 1, 4), ' ', @packager, ' - ', |
| $ver_, '-', $rev_t, '%{?dist}.ngx')} |
| } |
| |
| X:if "$format='deb'" { |
| !{concat($pkgname, ' (', $ver_, '-', $rev_t, |
| '~%%CODENAME%%) %%CODENAME%%; urgency=low')} |
| |
| X:text { } |
| } |
| |
| X:text { } |
| |
| !! "change"; |
| |
| X:text { } |
| |
| X:if "$format='deb'" { |
| !{concat(' -- ', @packager, ' ', |
| $conf/changes/day[number($dow)], ', ', |
| $pday, |
| $conf/changes/month[number(substring(current()/@date, 6, 2))], |
| substring(@date, 1, 4), ' ', @time)} |
| |
| X:text { } |
| X:text { } |
| } |
| } |
| } |
| } |
| } |
| |
| |
| X:template = "change" { |
| X:var prefix = "$conf/changes/*[local-name(.)=current()/@type]" |
| |
| X:var postfix = { X:if "$prefix" { X:text {: } } } |
| |
| !! "para" (prefix = "concat($start, $prefix, $postfix)"); |
| } |
| |
| |
| X:template para(prefix) = "para" { |
| X:var text = { !!; } |
| |
| X:if "$format='generic'" { |
| X:text { } |
| } |
| |
| !wrap(text = "normalize-space($text)", |
| prefix = { X:if "position() = 1" { !{$prefix} } else { !{$indent} } }) |
| } |
| |
| |
| X:template wrap(text, prefix) { |
| X:if "$text" { |
| X:var offset = { |
| X:choose { |
| X:when "starts-with($text, concat($br, ' '))" { |
| !{string-length($br) + 2} |
| } |
| X:when "starts-with($text, $br)" { |
| !{string-length($br) + 1} |
| } |
| X:otherwise { |
| 1 |
| } |
| } |
| } |
| |
| X:var length = { |
| !length(text = "substring($text, $offset)", |
| prefix = "string-length($prefix)", |
| length = "$max") |
| } |
| |
| !{$prefix} |
| |
| !{normalize-space(translate(substring($text, $offset, $length), |
| ' ', ' '))} |
| |
| X:text { } |
| |
| !wrap(text = "substring($text, $length + $offset)", prefix = "$indent") |
| } |
| } |
| |
| |
| X:template length(text, prefix, length) { |
| X:var break = "substring-before(substring($text, 1, |
| $length - $prefix + string-length($br)), |
| $br)" |
| |
| X:choose { |
| X:when "$break" { !{string-length($break)} } |
| |
| X:when "$length = 0" { !{$max - $prefix} } |
| |
| X:when "string-length($text) + $prefix <= $length" { |
| !{$length - $prefix} |
| } |
| |
| X:when "substring($text, $length - $prefix + 1, 1) = ' '" { |
| !{$length - $prefix + 1} |
| } |
| |
| X:otherwise { |
| !length(text = "$text", prefix = "$prefix", length = "$length - 1") |
| } |
| } |
| } |
| |
| |
| X:template day_of_week(date) { |
| X:param year = "substring-before($date, '-')"; |
| X:param month = "substring-before(substring-after($date, '-'), '-')"; |
| X:param day = "substring-after(substring-after($date, '-'), '-')"; |
| |
| X:var a = "floor((14 - $month) div 12)"; |
| |
| X:var y = "$year - $a"; |
| |
| X:var m = "$month + 12 * $a - 2"; |
| |
| !{($day + $y + floor($y div 4) - floor($y div 100) |
| + floor($y div 400) + floor((31 * $m) div 12)) mod 7 + 1} |
| } |
| |
| |
| X:template padded_day(date) { |
| !{substring(concat(' ', format-number(substring($date, 9, 2), '##')), |
| 1 + string-length(format-number(substring($date, 9, 2), '##')))} |
| } |
| |
| |
| X:template string_in_list(list, string) { |
| X:choose { |
| X:when "contains($list, ' ')" { |
| X:var str = "substring-before($list, ' ')"; |
| X:choose { |
| X:when "$str=$string" { |
| !{$string} |
| } |
| X:otherwise { |
| !string_in_list(list="substring-after($list, ' ')", |
| string="$string") |
| } |
| } |
| } |
| X:otherwise { |
| X:if "$list=$string" { !{$string} } |
| X:if "$list='*'" { !{$string} } |
| } |
| } |
| } |
| |
| |
| X:template = "at" {@} |
| X:template = "br" { !{$br} } |
| X:template = "nobr" { !{translate(., ' ', ' ')} } |
| |
| |
| } |