コード例 #1
0
ファイル: index.js プロジェクト: darocha/gulp-asar
        }, function (cb) {
            var headerPickle = pickle.createEmpty();
            headerPickle.writeString(JSON.stringify(filesystem.header));
            var headerBuf = headerPickle.toBuffer();

            var sizePickle = pickle.createEmpty();
            sizePickle.writeUInt32(headerBuf.length);
            var sizeBuf = sizePickle.toBuffer();

            outLen += headerBuf.length;
            outLen += sizeBuf.length;
            out.unshift(headerBuf);
            out.unshift(sizeBuf);

            var archive = Buffer.concat(out, outLen);
            out = [];

            this.push(new util.File({
                cwd: cwd,
                base: cwd,
                path: targetFilename,
                contents: archive,
                enc: 'utf8'
            }));

            cb();
        });
コード例 #2
0
ファイル: asarUtil.js プロジェクト: BluJINonlee/repertoire
function writeAsarFile(filesystem, dest, toPack, changedFiles) {
    const headerPickle = pickle.createEmpty();
    headerPickle.writeString(JSON.stringify(filesystem.header));
    const headerBuf = headerPickle.toBuffer();
    const sizePickle = pickle.createEmpty();
    sizePickle.writeUInt32(headerBuf.length);
    const sizeBuf = sizePickle.toBuffer();
    const writeStream = fs_extra_p_1.createWriteStream(dest);
    return new bluebird_1.Promise((resolve, reject) => {
        writeStream.on("error", reject);
        writeStream.once("finish", resolve);
        writeStream.write(sizeBuf);
        function w(list, index) {
            if (list.length === index) {
                writeStream.end();
                return;
            }
            const file = list[index];
            const data = changedFiles.get(file);
            if (data != null) {
                writeStream.write(data, () => w(list, index + 1));
                return;
            }
            const readStream = fs_extra_p_1.createReadStream(file);
            readStream.on("error", reject);
            readStream.once("end", () => w(list, index + 1));
            readStream.pipe(writeStream, {
                end: false
            });
        }
        writeStream.write(headerBuf, () => w(toPack, 0));
    });
}
コード例 #3
0
ファイル: disk.js プロジェクト: JSA10/Udacity_git
module.exports.writeFilesystem = function(dest, filesystem, files, cb) {
  var headerPickle = pickle.createEmpty();
  headerPickle.writeString(JSON.stringify(filesystem.header));
  var headerBuf = headerPickle.toBuffer();

  var sizePickle = pickle.createEmpty();
  sizePickle.writeUInt32(headerBuf.length);
  var sizeBuf = sizePickle.toBuffer();

  var out = fs.createWriteStream(dest);
  out.write(sizeBuf);
  out.write(headerBuf, writeFileListToStream.bind(this, dest, filesystem, out, files, cb));
};
コード例 #4
0
ファイル: disk.js プロジェクト: electron/asar
module.exports.writeFilesystem = async function (dest, filesystem, files, metadata) {
  const headerPickle = pickle.createEmpty()
  headerPickle.writeString(JSON.stringify(filesystem.header))
  const headerBuf = headerPickle.toBuffer()

  const sizePickle = pickle.createEmpty()
  sizePickle.writeUInt32(headerBuf.length)
  const sizeBuf = sizePickle.toBuffer()

  const out = fs.createWriteStream(dest)
  await new Promise((resolve, reject) => {
    out.on('error', reject)
    out.write(sizeBuf)
    return out.write(headerBuf, () => resolve())
  })
  return writeFileListToStream(dest, filesystem, out, files, metadata)
}
コード例 #5
0
ファイル: asar.js プロジェクト: DonJayamanne/vscode
 let finish = () => {
     {
         const headerPickle = pickle.createEmpty();
         headerPickle.writeString(JSON.stringify(filesystem.header));
         const headerBuf = headerPickle.toBuffer();
         const sizePickle = pickle.createEmpty();
         sizePickle.writeUInt32(headerBuf.length);
         const sizeBuf = sizePickle.toBuffer();
         out.unshift(headerBuf);
         out.unshift(sizeBuf);
     }
     const contents = Buffer.concat(out);
     out.length = 0;
     this.queue(new VinylFile({
         cwd: folderPath,
         base: folderPath,
         path: destFilename,
         contents: contents
     }));
     this.queue(null);
 };
コード例 #6
0
ファイル: disk.js プロジェクト: callahanrts/dotfiles
module.exports.writeFilesystem = function (dest, filesystem, files, metadata, callback) {
  let sizeBuf
  let headerBuf
  try {
    const headerPickle = pickle.createEmpty()
    headerPickle.writeString(JSON.stringify(filesystem.header))
    headerBuf = headerPickle.toBuffer()

    const sizePickle = pickle.createEmpty()
    sizePickle.writeUInt32(headerBuf.length)
    sizeBuf = sizePickle.toBuffer()
  } catch (error) {
    return callback(error)
  }

  const out = fs.createWriteStream(dest)
  out.on('error', callback)
  out.write(sizeBuf)
  return out.write(headerBuf, function () {
    return writeFileListToStream(dest, filesystem, out, files, metadata, callback)
  })
}