#!/usr/bin/env node /* * jQuery Release Note Generator */ var fs = require("fs"), http = require("http"), extract = /(.*?)<[^"]+"component">\s*(\S+)/g, categories = [], version = process.argv[2]; if ( !/^\d+\.\d+/.test( version ) ) { console.error( "Invalid version number: " + version ); process.exit( 1 ); } http.request({ host: "bugs.jquery.com", port: 80, method: "GET", path: "/query?status=closed&resolution=fixed&max=400&component=!web&order=component&milestone=" + version }, function (res) { var data = []; res.on( "data", function( chunk ) { data.push( chunk ); }); res.on( "end", function() { var match, file = data.join(""), cur; while ( (match = extract.exec( file )) ) { if ( "#" + match[1] !== match[2] ) { var cat = match[3]; if ( !cur || cur !== cat ) { if ( cur ) { console.log(""); } cur = cat; console.log( "

" + cat.charAt(0).toUpperCase() + cat.slice(1) + "

" ); console.log("
"); } }); }).end();