1*369Sdefan@nginx.comX:stylesheet { 2*369Sdefan@nginx.com 3*369Sdefan@nginx.comX:output method="text"; 4*369Sdefan@nginx.com 5*369Sdefan@nginx.comX:param format="'generic'"; 6*369Sdefan@nginx.comX:param pkgname="'unit'"; 7*369Sdefan@nginx.comX:param configuration="'change_log_conf.xml'"; 8*369Sdefan@nginx.com 9*369Sdefan@nginx.comX:var conf = "document($configuration)/configuration"; 10*369Sdefan@nginx.com 11*369Sdefan@nginx.comX:var start = { 12*369Sdefan@nginx.com X:choose { 13*369Sdefan@nginx.com X:when "$format='rpm'" { 14*369Sdefan@nginx.com !{$conf/rpm/start} 15*369Sdefan@nginx.com } 16*369Sdefan@nginx.com X:when "$format='deb'" { 17*369Sdefan@nginx.com !{$conf/deb/start} 18*369Sdefan@nginx.com } 19*369Sdefan@nginx.com X:when "$format='generic'" { 20*369Sdefan@nginx.com !{$conf/generic/start} 21*369Sdefan@nginx.com } 22*369Sdefan@nginx.com } 23*369Sdefan@nginx.com} 24*369Sdefan@nginx.com 25*369Sdefan@nginx.comX:var indent = { 26*369Sdefan@nginx.com X:choose { 27*369Sdefan@nginx.com X:when "$format='rpm'" { 28*369Sdefan@nginx.com !{$conf/rpm/indent} 29*369Sdefan@nginx.com } 30*369Sdefan@nginx.com X:when "$format='deb'" { 31*369Sdefan@nginx.com !{$conf/deb/indent} 32*369Sdefan@nginx.com } 33*369Sdefan@nginx.com X:when "$format='generic'" { 34*369Sdefan@nginx.com !{$conf/generic/indent} 35*369Sdefan@nginx.com } 36*369Sdefan@nginx.com } 37*369Sdefan@nginx.com} 38*369Sdefan@nginx.com 39*369Sdefan@nginx.comX:var max = { 40*369Sdefan@nginx.com X:choose { 41*369Sdefan@nginx.com X:when "$format='rpm'" { 42*369Sdefan@nginx.com !{$conf/rpm/length} 43*369Sdefan@nginx.com } 44*369Sdefan@nginx.com X:when "$format='deb'" { 45*369Sdefan@nginx.com !{$conf/deb/length} 46*369Sdefan@nginx.com } 47*369Sdefan@nginx.com X:when "$format='generic'" { 48*369Sdefan@nginx.com !{$conf/generic/length} 49*369Sdefan@nginx.com } 50*369Sdefan@nginx.com } 51*369Sdefan@nginx.com} 52*369Sdefan@nginx.com 53*369Sdefan@nginx.comX:var br = {<br>} 54*369Sdefan@nginx.com 55*369Sdefan@nginx.com 56*369Sdefan@nginx.comX:template = "/" { !! "change_log"; } 57*369Sdefan@nginx.comX:template = "change_log" { !! "changes"; } 58*369Sdefan@nginx.com 59*369Sdefan@nginx.com 60*369Sdefan@nginx.comX:template = "changes" { 61*369Sdefan@nginx.com X:var pday = { !padded_day(date="@date") } 62*369Sdefan@nginx.com X:var dow = { !day_of_week(date="@date") } 63*369Sdefan@nginx.com X:var apply = { !string_in_list(list="@apply", string="$pkgname") } 64*369Sdefan@nginx.com X:var pkgname_ = { !beautify(pkgname="$pkgname") } 65*369Sdefan@nginx.com 66*369Sdefan@nginx.com X:if "$apply=$pkgname" { 67*369Sdefan@nginx.com 68*369Sdefan@nginx.com X:if "$format='generic'" { 69*369Sdefan@nginx.com X:text { } 70*369Sdefan@nginx.com 71*369Sdefan@nginx.com !{substring(concat($conf/changes/title, 72*369Sdefan@nginx.com $pkgname_, 73*369Sdefan@nginx.com ' ', @ver, 74*369Sdefan@nginx.com ' '), 75*369Sdefan@nginx.com 1, $conf/changes/length)} 76*369Sdefan@nginx.com 77*369Sdefan@nginx.com !{substring(@date, 9, 2)} 78*369Sdefan@nginx.com !{$conf/changes/month[number(substring(current()/@date, 79*369Sdefan@nginx.com 6, 2))]} 80*369Sdefan@nginx.com !{substring(@date, 1, 4)} 81*369Sdefan@nginx.com } 82*369Sdefan@nginx.com 83*369Sdefan@nginx.com X:if "$format='rpm'" { 84*369Sdefan@nginx.com !{concat('* ', $conf/changes/day[number($dow)], 85*369Sdefan@nginx.com $conf/changes/month[number(substring(current()/@date, 6, 2))], 86*369Sdefan@nginx.com $pday, ' ', 87*369Sdefan@nginx.com substring(@date, 1, 4), ' ', @packager, ' - ', 88*369Sdefan@nginx.com @ver, '-', @rev, '%{?dist}.ngx')} 89*369Sdefan@nginx.com } 90*369Sdefan@nginx.com 91*369Sdefan@nginx.com X:if "$format='deb'" { 92*369Sdefan@nginx.com !{concat($pkgname, ' (', @ver, '-', @rev, 93*369Sdefan@nginx.com '~%%CODENAME%%) %%CODENAME%%; urgency=low')} 94*369Sdefan@nginx.com 95*369Sdefan@nginx.com X:text { } 96*369Sdefan@nginx.com } 97*369Sdefan@nginx.com 98*369Sdefan@nginx.com X:text { } 99*369Sdefan@nginx.com 100*369Sdefan@nginx.com !! "change"; 101*369Sdefan@nginx.com 102*369Sdefan@nginx.com X:text { } 103*369Sdefan@nginx.com 104*369Sdefan@nginx.com X:if "$format='deb'" { 105*369Sdefan@nginx.com !{concat(' -- ', @packager, ' ', 106*369Sdefan@nginx.com $conf/changes/day[number($dow)], ', ', 107*369Sdefan@nginx.com $pday, 108*369Sdefan@nginx.com $conf/changes/month[number(substring(current()/@date, 6, 2))], 109*369Sdefan@nginx.com substring(@date, 1, 4), ' ', @time)} 110*369Sdefan@nginx.com 111*369Sdefan@nginx.com X:text { } 112*369Sdefan@nginx.com X:text { } 113*369Sdefan@nginx.com } 114*369Sdefan@nginx.com } 115*369Sdefan@nginx.com} 116*369Sdefan@nginx.com 117*369Sdefan@nginx.com 118*369Sdefan@nginx.comX:template = "change" { 119*369Sdefan@nginx.com X:var prefix = "$conf/changes/*[local-name(.)=current()/@type]" 120*369Sdefan@nginx.com 121*369Sdefan@nginx.com X:var postfix = { X:if "$prefix" { X:text {: } } } 122*369Sdefan@nginx.com 123*369Sdefan@nginx.com !! "para" (prefix = "concat($start, $prefix, $postfix)"); 124*369Sdefan@nginx.com} 125*369Sdefan@nginx.com 126*369Sdefan@nginx.com 127*369Sdefan@nginx.comX:template para(prefix) = "para" { 128*369Sdefan@nginx.com X:var text = { !!; } 129*369Sdefan@nginx.com 130*369Sdefan@nginx.com X:if "$format='generic'" { 131*369Sdefan@nginx.com X:text { } 132*369Sdefan@nginx.com } 133*369Sdefan@nginx.com 134*369Sdefan@nginx.com !wrap(text = "normalize-space($text)", 135*369Sdefan@nginx.com prefix = { X:if "position() = 1" { !{$prefix} } else { !{$indent} } }) 136*369Sdefan@nginx.com} 137*369Sdefan@nginx.com 138*369Sdefan@nginx.com 139*369Sdefan@nginx.comX:template wrap(text, prefix) { 140*369Sdefan@nginx.com X:if "$text" { 141*369Sdefan@nginx.com X:var offset = { 142*369Sdefan@nginx.com X:choose { 143*369Sdefan@nginx.com X:when "starts-with($text, concat($br, ' '))" { 144*369Sdefan@nginx.com !{string-length($br) + 2} 145*369Sdefan@nginx.com } 146*369Sdefan@nginx.com X:when "starts-with($text, $br)" { 147*369Sdefan@nginx.com !{string-length($br) + 1} 148*369Sdefan@nginx.com } 149*369Sdefan@nginx.com X:otherwise { 150*369Sdefan@nginx.com 1 151*369Sdefan@nginx.com } 152*369Sdefan@nginx.com } 153*369Sdefan@nginx.com } 154*369Sdefan@nginx.com 155*369Sdefan@nginx.com X:var length = { 156*369Sdefan@nginx.com !length(text = "substring($text, $offset)", 157*369Sdefan@nginx.com prefix = "string-length($prefix)", 158*369Sdefan@nginx.com length = "$max") 159*369Sdefan@nginx.com } 160*369Sdefan@nginx.com 161*369Sdefan@nginx.com !{$prefix} 162*369Sdefan@nginx.com 163*369Sdefan@nginx.com !{normalize-space(translate(substring($text, $offset, $length), 164*369Sdefan@nginx.com ' ', ' '))} 165*369Sdefan@nginx.com 166*369Sdefan@nginx.com X:text { } 167*369Sdefan@nginx.com 168*369Sdefan@nginx.com !wrap(text = "substring($text, $length + $offset)", prefix = "$indent") 169*369Sdefan@nginx.com } 170*369Sdefan@nginx.com} 171*369Sdefan@nginx.com 172*369Sdefan@nginx.com 173*369Sdefan@nginx.comX:template length(text, prefix, length) { 174*369Sdefan@nginx.com X:var break = "substring-before(substring($text, 1, 175*369Sdefan@nginx.com $length - $prefix + string-length($br)), 176*369Sdefan@nginx.com $br)" 177*369Sdefan@nginx.com 178*369Sdefan@nginx.com X:choose { 179*369Sdefan@nginx.com X:when "$break" { !{string-length($break)} } 180*369Sdefan@nginx.com 181*369Sdefan@nginx.com X:when "$length = 0" { !{$max - $prefix} } 182*369Sdefan@nginx.com 183*369Sdefan@nginx.com X:when "string-length($text) + $prefix <= $length" { 184*369Sdefan@nginx.com !{$length - $prefix} 185*369Sdefan@nginx.com } 186*369Sdefan@nginx.com 187*369Sdefan@nginx.com X:when "substring($text, $length - $prefix + 1, 1) = ' '" { 188*369Sdefan@nginx.com !{$length - $prefix + 1} 189*369Sdefan@nginx.com } 190*369Sdefan@nginx.com 191*369Sdefan@nginx.com X:otherwise { 192*369Sdefan@nginx.com !length(text = "$text", prefix = "$prefix", length = "$length - 1") 193*369Sdefan@nginx.com } 194*369Sdefan@nginx.com } 195*369Sdefan@nginx.com} 196*369Sdefan@nginx.com 197*369Sdefan@nginx.com 198*369Sdefan@nginx.comX:template day_of_week(date) { 199*369Sdefan@nginx.com X:param year = "substring-before($date, '-')"; 200*369Sdefan@nginx.com X:param month = "substring-before(substring-after($date, '-'), '-')"; 201*369Sdefan@nginx.com X:param day = "substring-after(substring-after($date, '-'), '-')"; 202*369Sdefan@nginx.com 203*369Sdefan@nginx.com X:var a = "floor((14 - $month) div 12)"; 204*369Sdefan@nginx.com 205*369Sdefan@nginx.com X:var y = "$year - $a"; 206*369Sdefan@nginx.com 207*369Sdefan@nginx.com X:var m = "$month + 12 * $a - 2"; 208*369Sdefan@nginx.com 209*369Sdefan@nginx.com !{($day + $y + floor($y div 4) - floor($y div 100) 210*369Sdefan@nginx.com + floor($y div 400) + floor((31 * $m) div 12)) mod 7 + 1} 211*369Sdefan@nginx.com} 212*369Sdefan@nginx.com 213*369Sdefan@nginx.com 214*369Sdefan@nginx.comX:template padded_day(date) { 215*369Sdefan@nginx.com !{substring(concat(' ', format-number(substring($date, 9, 2), '##')), 216*369Sdefan@nginx.com 1 + string-length(format-number(substring($date, 9, 2), '##')))} 217*369Sdefan@nginx.com} 218*369Sdefan@nginx.com 219*369Sdefan@nginx.com 220*369Sdefan@nginx.comX:template string_in_list(list, string) { 221*369Sdefan@nginx.com X:choose { 222*369Sdefan@nginx.com X:when "contains($list, ',')" { 223*369Sdefan@nginx.com X:var str = "substring-before($list, ',')"; 224*369Sdefan@nginx.com !string_in_list(list="substring-after($list, ',')", string="$string") 225*369Sdefan@nginx.com } 226*369Sdefan@nginx.com X:otherwise { 227*369Sdefan@nginx.com X:if "$list=$string" { !{$string} } 228*369Sdefan@nginx.com X:if "$list='*'" { !{$string} } 229*369Sdefan@nginx.com } 230*369Sdefan@nginx.com } 231*369Sdefan@nginx.com} 232*369Sdefan@nginx.com 233*369Sdefan@nginx.com 234*369Sdefan@nginx.comX:template beautify(pkgname) { 235*369Sdefan@nginx.com X:choose { 236*369Sdefan@nginx.com X:when "$pkgname='unit'" {Unit} 237*369Sdefan@nginx.com X:otherwise { 238*369Sdefan@nginx.com !{$pkgname} 239*369Sdefan@nginx.com } 240*369Sdefan@nginx.com } 241*369Sdefan@nginx.com} 242*369Sdefan@nginx.com 243*369Sdefan@nginx.com 244*369Sdefan@nginx.comX:template = "at" {@} 245*369Sdefan@nginx.comX:template = "br" { !{$br} } 246*369Sdefan@nginx.comX:template = "nobr" { !{translate(., ' ', ' ')} } 247*369Sdefan@nginx.com 248*369Sdefan@nginx.com 249*369Sdefan@nginx.com} 250