read-pipes.js (1112B)
1 // Generated by CoffeeScript 1.9.3 2 (function() { 3 var fs, timeout; 4 5 fs = require('fs'); 6 7 timeout = require('./timeout'); 8 9 module.exports = function(dir, max_wait) { 10 var deleted, i, len, pipe, read, ref, result, t_limit; 11 t_limit = Date.now() + max_wait; 12 while (!read) { 13 try { 14 if (fs.readFileSync(dir + '/done').length) { 15 read = true; 16 } 17 } catch (_error) {} 18 timeout(t_limit, 'Process execution timeout or exit flag read failure'); 19 } 20 while (!deleted) { 21 try { 22 fs.unlinkSync(dir + '/done'); 23 deleted = true; 24 } catch (_error) {} 25 timeout(t_limit, 'Can not delete exit code file'); 26 } 27 result = {}; 28 ref = ['stdout', 'stderr', 'status']; 29 for (i = 0, len = ref.length; i < len; i++) { 30 pipe = ref[i]; 31 result[pipe] = fs.readFileSync(dir + '/' + pipe, { 32 encoding: 'utf-8' 33 }); 34 read = true; 35 fs.unlinkSync(dir + '/' + pipe); 36 } 37 try { 38 fs.rmdirSync(dir); 39 } catch (_error) {} 40 result.status = Number(result.status); 41 return result; 42 }; 43 44 }).call(this);