mirror of
https://github.com/gradle/actions.git
synced 2025-12-08 17:15:46 +08:00
publishing v1 of action
This commit is contained in:
97
node_modules/unzipper/lib/Open/index.js
generated
vendored
Normal file
97
node_modules/unzipper/lib/Open/index.js
generated
vendored
Normal file
@@ -0,0 +1,97 @@
|
||||
var fs = require('graceful-fs');
|
||||
var Promise = require('bluebird');
|
||||
var directory = require('./directory');
|
||||
var Stream = require('stream');
|
||||
|
||||
// Backwards compatibility for node versions < 8
|
||||
if (!Stream.Writable || !Stream.Writable.prototype.destroy)
|
||||
Stream = require('readable-stream');
|
||||
|
||||
module.exports = {
|
||||
buffer: function(buffer, options) {
|
||||
var source = {
|
||||
stream: function(offset, length) {
|
||||
var stream = Stream.PassThrough();
|
||||
stream.end(buffer.slice(offset, length));
|
||||
return stream;
|
||||
},
|
||||
size: function() {
|
||||
return Promise.resolve(buffer.length);
|
||||
}
|
||||
};
|
||||
return directory(source, options);
|
||||
},
|
||||
file: function(filename, options) {
|
||||
var source = {
|
||||
stream: function(offset,length) {
|
||||
return fs.createReadStream(filename,{start: offset, end: length && offset+length});
|
||||
},
|
||||
size: function() {
|
||||
return new Promise(function(resolve,reject) {
|
||||
fs.stat(filename,function(err,d) {
|
||||
if (err)
|
||||
reject(err);
|
||||
else
|
||||
resolve(d.size);
|
||||
});
|
||||
});
|
||||
}
|
||||
};
|
||||
return directory(source, options);
|
||||
},
|
||||
|
||||
url: function(request, params, options) {
|
||||
if (typeof params === 'string')
|
||||
params = {url: params};
|
||||
if (!params.url)
|
||||
throw 'URL missing';
|
||||
params.headers = params.headers || {};
|
||||
|
||||
var source = {
|
||||
stream : function(offset,length) {
|
||||
var options = Object.create(params);
|
||||
options.headers = Object.create(params.headers);
|
||||
options.headers.range = 'bytes='+offset+'-' + (length ? length : '');
|
||||
return request(options);
|
||||
},
|
||||
size: function() {
|
||||
return new Promise(function(resolve,reject) {
|
||||
var req = request(params);
|
||||
req.on('response',function(d) {
|
||||
req.abort();
|
||||
if (!d.headers['content-length'])
|
||||
reject(new Error('Missing content length header'));
|
||||
else
|
||||
resolve(d.headers['content-length']);
|
||||
}).on('error',reject);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
return directory(source, options);
|
||||
},
|
||||
|
||||
s3 : function(client,params, options) {
|
||||
var source = {
|
||||
size: function() {
|
||||
return new Promise(function(resolve,reject) {
|
||||
client.headObject(params, function(err,d) {
|
||||
if (err)
|
||||
reject(err);
|
||||
else
|
||||
resolve(d.ContentLength);
|
||||
});
|
||||
});
|
||||
},
|
||||
stream: function(offset,length) {
|
||||
var d = {};
|
||||
for (var key in params)
|
||||
d[key] = params[key];
|
||||
d.Range = 'bytes='+offset+'-' + (length ? length : '');
|
||||
return client.getObject(d).createReadStream();
|
||||
}
|
||||
};
|
||||
|
||||
return directory(source, options);
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user