vscode-mssql/tasks/packagetasks.js

82 строки
2.9 KiB
JavaScript
Исходник Ответственный История

Этот файл содержит невидимые символы Юникода!

Этот файл содержит невидимые символы Юникода, которые могут быть отображены не так, как показано ниже. Если это намеренно, можете спокойно проигнорировать это предупреждение. Используйте кнопку Экранировать, чтобы показать скрытые символы.

var gulp = require('gulp');
var fs = require('fs');
var cproc = require('child_process');
var del = require('del');
function installSqlToolsService(platform) {
var install = require('../out/src/languageservice/serviceInstallerUtil');
return install.installService(platform);
}
gulp.task('ext:install-service', () => {
return installSqlToolsService();
});
function doPackageSync(packageName) {
var vsceArgs = [];
vsceArgs.push('vsce');
vsceArgs.push('package'); // package command
if (packageName !== undefined) {
vsceArgs.push('-o');
vsceArgs.push(packageName);
}
var command = vsceArgs.join(' ');
console.log(command);
return cproc.execSync(command);
}
function cleanServiceInstallFolder() {
var install = require('../out/src/languageservice/serviceInstallerUtil');
var serviceInstallFolder = install.getServiceInstallDirectoryRoot();
console.log('Deleting Service Install folder: ' + serviceInstallFolder);
return del(serviceInstallFolder + '/*');
}
function doOfflinePackage(runtimeId, platform, packageName) {
return installSqlToolsService(platform).then(() => {
return doPackageSync(packageName + '-' + runtimeId + '.vsix');
});
}
//Install vsce to be able to run this task: npm install -g vsce
gulp.task('package:online', () => {
return cleanServiceInstallFolder().then(() => {
doPackageSync();
return installSqlToolsService();
});
});
//Install vsce to be able to run this task: npm install -g vsce
gulp.task('package:offline', () => {
const platform = require('../out/src/models/platform');
const Runtime = platform.Runtime;
var json = JSON.parse(fs.readFileSync('package.json'));
var name = json.name;
var version = json.version;
var packageName = name + '-' + version;
var packages = [];
packages.push({rid: 'win7-x64', runtime: Runtime.Windows_7_64});
packages.push({rid: 'win7-x86', runtime: Runtime.Windows_7_86});
packages.push({rid: 'osx.10.11-x64', runtime: Runtime.OSX_10_11_64});
packages.push({rid: 'centos.7-x64', runtime: Runtime.CentOS_7});
packages.push({rid: 'debian.8-x64', runtime: Runtime.Debian_8});
packages.push({rid: 'fedora.23-x64', runtime: Runtime.Fedora_23});
packages.push({rid: 'opensuse.13.2-x64', runtime:Runtime.OpenSUSE_13_2});
packages.push({rid: 'rhel.7.2-x64', runtime: Runtime.RHEL_7});
packages.push({rid: 'ubuntu.14.04-x64', runtime: Runtime.Ubuntu_14});
packages.push({rid: 'ubuntu.16.04-x64', runtime: Runtime.Ubuntu_16});
var promise = Promise.resolve();
cleanServiceInstallFolder().then(() => {
packages.forEach(data => {
promise = promise.then(() => {
return doOfflinePackage(data.rid, data.runtime, packageName).then(() => {
return cleanServiceInstallFolder();
});
});
});
});
return promise;
});