[guadec-web-regcfp/develop] Use inkscape and temp files
- From: Patrick Uiterwijk <puiterwijk src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [guadec-web-regcfp/develop] Use inkscape and temp files
- Date: Thu, 6 Aug 2015 23:46:10 +0000 (UTC)
commit b3fe0229ce7aac26ab407b7d25f78b9c69b8c017
Author: Patrick Uiterwijk <puiterwijk redhat com>
Date: Fri Aug 7 01:46:02 2015 +0200
Use inkscape and temp files
package.json | 3 ++-
routes/desk.js | 45 ++++++++++++++++++++++-----------------------
2 files changed, 24 insertions(+), 24 deletions(-)
---
diff --git a/package.json b/package.json
index 849bc49..e8ba2d2 100644
--- a/package.json
+++ b/package.json
@@ -22,6 +22,7 @@
"browserid-local-verify": "*",
"browserid-verify": "*",
"paypal-rest-sdk": "*",
- "librsvg": "*"
+ "librsvg": "*",
+ "mktemp": "*"
}
}
diff --git a/routes/desk.js b/routes/desk.js
index 2e00c85..da20821 100644
--- a/routes/desk.js
+++ b/routes/desk.js
@@ -17,6 +17,8 @@ paypal.configure(config['paypal']);
var spawn = require('child_process').spawn;
var exec = require('child_process').exec;
var stream = require('stream');
+var mktemp = require('mktemp');
+var fs = require('fs');
router.all('/', utils.require_user);
@@ -130,35 +132,32 @@ router.get('/badge', function(req, res, next) {
if(!!err) {
res.status(500).send('Error generating badge: ' + err);
} else {
- var child = spawn('cairosvg', ['-']);
- /*var child = exec('cat | inkscape -f /dev/stdin -A /dev/stdout -z | cat', function(err,
stdout, stderr) {
- //var child = exec('cat', function(err, stdout, stderr) {
+ mktemp.createFile('_temp_XXXXX.svg', function(err, path) {
+ console.log('Temporary filename: ' + path);
if(!!err) {
- res.status(500).send('Error generating pdf: ' + err);
+ res.status(500).send('Unable to generate file: ' + err);
} else {
- console.log('OUTPUT error: ' + stderr);
- res.status(200).set('Content-Type', 'application/pdf').send(stdout);
- //res.status(200).set('Content-Type', 'image/svg+xml').send(stdout);
- }
- });*/
-
- child.stdout.on('data', function(chunk) {
- res.write(chunk);
- });
+ fs.writeFile(path, html, function(err) {
+ if(!!err) {
+ res.status(500).send('Unable to write temp file: ' + err);
+ } else {
+ var child = exec('inkscape -f ' + path + ' -A ' + path + '.pdf -z', function(err,
stdout, stderr) {
+ if(!!err) {
+ res.status(500).send('Error generating pdf: ' + err);
+ } else {
+ console.log('OUTPUT error: ' + stderr);
+ var filestream = fs.createReadStream(path + '.pdf');
+ filestream.pipe(res);
+ }
+ });
+ }
+ });
- child.stdout.on('finish', function() {
- res.send();
+ }
});
-
- var inp_str = stream.Readable();
- inp_str._read = function noop() {};
- inp_str.push(html);
- inp_str.push(null);
- inp_str.pipe(child.stdin);
}
- });
-
//res.status(200).set('Content-Type', 'image/svg+xml').render('desk/badge_svg', { rega: rega,
regb: regb, layout: false });
+ });
});
});
});
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]