git-off

git off handles large files in git repos
git clone https://noulin.net/git/git-off.git
Log | Files | Refs | README

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);