/* * aegis - project change supervisor * Copyright (C) 2004, 2006-2009, 2012 Peter Miller * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see * . */ columns ( { left = 0; right = 0; }, /* for the change heading */ { left = 2; right = 3; }, /* for the star */ { left = 4; right = 0; } /* for the change description */ ); title(sprintf("Project \"%s\"", project_name()), "Debian Change Log"); auto pss, ps, j, ph, cs, tmp, tmp2, tmp3, the_list; pss = project[project_name()].state; ps = pss.branch; /* * Build the list of changes to be put into the change log. */ the_list = []; if (ps.currently_integrating_change != "") { the_list ##= ps.currently_integrating_change; } for (j = count(ps.history) - 1; j >= 0; j = j - 1) { ph = ps.history[j]; the_list ##= ph.change_number; } /* * Now print information about each of them. */ for (j in the_list) { cs = ps.change[j]; /* * Mangle the project name and change version into the format that * the Debian changelog wants it to be in. */ tmp = sprintf("%s.D%3.3d-1", pss.name, cs.delta_number); tmp2 = split(tmp, ".")[0]; tmp3 = substr(tmp, length(tmp2) + 1, 9999); print(sprintf("%s (%s) unstable; urgency=low", tmp2, tmp3)); print(""); /* * Print the change description. */ if (cs.description == "") cs.description = "No commit comment."; tmp = split(substr(cs.description, 0, 2000), "\n"); for (tmp2 in tmp) { if (tmp2 != "") print("", "*", tmp2); } print(""); /* * find the developer name */ auto dev, h, when, email; dev = ""; for (h in cs.history) { if (h.what == develop_begin) dev = h.who; } when = cs.history[count(cs.history) - 1].when; /* * You absolutely positively have to have "a " as the email * address, "b@c" is not sufficient, according to the debian * changelog parser. */ email = user[dev].email_address; if (count(split(email, '<')) < 2) email = passwd[dev].pw_comment ## " <" ## email ## ">"; /* * Print the developer's email address and the date the change * was integrated. */ print ( " --", "", email ## " " ## strftime("%a, %d %b %Y %H:%M:%S %z", when) ); print(""); } /* vim: set ts=8 sw=4 et : */