たくさんの zip ファイルがあり、各ファイルには .config ファイルが含まれています。
各zipを繰り返し、解凍し、構成ファイルを読み取り、その構成ファイルを使用してzipファイルをどこかにアップロードしたいと思います。
gulp.task('deploy-zips', function () {
const filter = config()[target].filter;
return gulp.src([destination + '/' + filter])
.pipe(deployZips());
});
これは、タスクのエントリ ポイントです。
function deployZips() {
return through({ objectMode: true }, function (zipFile, zipEncoding, zipCallback) {
gutil.log(zipFile.path.split('\\').reverse()[0]);
gulp.src(zipFile.path)
.pipe(unzip({
filter : function(entry){
if (entry.type !== 'File') {
return false;
}
return entry.path.indexOf('deploy-config.json') > -1;
}
}))
.pipe(through({ objectMode: true }, function(configFile, configEncoding, uploadCallback){
gutil.log(configFile.path); // Outputs the file name as deploy-config.json
//????
var config = JSON.parse(configFile);
uploadCallback(null, configFile);
}))
.on('end', function() {
zipCallback(null, zipCallback);
})
;
});
}
これは、私が求めているすべてのzipファイルを表示しているようで、次に、見たい構成ファイルを出力します。ただし、この時点で、構成ファイルを解析して構成を取得する方法について困惑しています。
を使用してファイルを読み取り、configFile を解析しようとしましたfs.readFileSync(...)
しかし、何も機能していないようです。構成にはアップロード先の資格情報が含まれているため、それを読み取ってから、それを使用して S3 または構成された場所に送信する必要があります。