Use http://styliner.slaks.net
node.js, css, nodemailer HTML.
/ , . (.. " /local.html" "\myhostname\afolder\coverage\local.html"
script, , .
var nodemailer = require('nodemailer');
var os = require("os");
var hostname = os.hostname();
var originalFile = process.argv[2].toString();
var baseDir = process.argv[3].toString();
var recipient = process.argv[4].toString();
var Styliner = require('styliner');
var uncDrive = '\\\\' + hostname + '\\DevTC';
var uncPath = baseDir.replace(/.*DevTC/gi, uncDrive);
function prependUNCPath(path, type) {
return uncPath + path;
}
var options = { url : prependUNCPath, noCSS : true };
var styliner = new Styliner(baseDir, options);
function sendEmail(source) {
var nodemailer = require('nodemailer');
var smtpTransport = require('nodemailer-smtp-transport');
var transport = nodemailer.createTransport(smtpTransport({
host: 'your-smtp-server.local',
port: 25,
}));
var mailOptions = {
from: 'TeamCity <teamcity@company.com>',
to: recipient,
subject: 'Code Coverage results',
html: source
};
transport.sendMail(mailOptions, function (error, info) {
if (error) {
console.log(error);
} else {
console.log('Message sent: ' + info.response);
}
});
}
var fs = require('fs')
fs.readFile(originalFile, 'utf8', function (err, data) {
if (err) {
return console.log(err);
}
styliner.processHTML(data)
.then(function (source)
{
sendEmail(source);
fs.writeFile("newindex.html", source, function (err) {
if (err) {
return console.log(err);
}
console.log("The file was saved!");
});
}
);
});