Я использую gulp-tar для создания файла tar ... как добавить папку верхнего уровня, чтобы при запуске пользователя tar -xzf myArchive.tar
он извлекается в определенную папку.создание архивов tar с помощью gulp
вот мой код:
gulp.task('prod', ['min', 'gittag'], function() {
//copy all files under /server into a zip file
gulp.src('../server/**/*')
.pipe(tar('xoserver' + '-'+ gittag +'.tar'))
.pipe(gzip())
.pipe(gulp.dest('../prod'));
});
выше создает tar.zip
файл все в порядке, но я должен быть осторожным, чтобы добавить -C <folder>
при извлечении, иначе файлы будут извлечены в текущей папке.
[редактировать]
То, что я пытаюсь сделать здесь генерировать тарболл формата xoserver-alpha-d414ddf.tar.gz
, который, когда экстрагируют tar xvf
создаст папку xoserver-alpha-d414ddf
и распаковать все файлы в ней. По сути, я пытаюсь добавить новое имя папки над мои упакованными файлами. Если добавить base
вариант, папка извлекаются только server
[ОТВЕТ]
Благодаря ddprrt за хороший ответ. Я воспроизвожу окончательный код, если кто-то хочет использовать аналогичную стратегию встраивания тега git в имя tarball для распространения/тестирования.
gulp.task('gittag', function(cb) { // generate the git tag
git.exec({args : 'branch -v'}, function (err, stdout) {
var lines = stdout.split('\n');
for (var l in lines) {
if (lines[l][0] == '*') {
var words = lines[l].split(/\s+/);
gittag = words[1]+ '-' + words[2];
console.log('Gittag is %s', gittag);
break;
}
}
cb();
});
});
gulp.task('min', ['runbmin', 'template', 'vendor']); // generate min files
gulp.task('prod', ['min', 'gittag'], function() { // create tarball
//copy all files under /server into a zip file
return gulp.src('../server/**/*')
.pipe(rename(function(path) {
path.dirname = 'server-' + gittag + '/' + path.dirname;
}))
.pipe(tar('xoserver-'+gittag+'.tar'))
.pipe(gzip())
.pipe(gulp.dest('../prod'));
});
Спасибо .. это только решает часть проблемы. Я отредактировал вопрос, чтобы уточнить, что я пытаюсь сделать. – user1936097
хорошо! Смотрите мое обновление ... Думаю, это может помочь :-) – ddprrt
Спасибо! работает как шарм. Я обновляю свой вопрос с окончательным кодом gulp, который я использую ... на всякий случай, если кто-то заинтересован – user1936097