Files
NightAlert/ThirdParty/SocketIoClientDotNet/grunt/tasks/createNugetPackage.js

99 lines
3.7 KiB
JavaScript

module.exports = function (grunt) {
grunt.registerTask('createNugetPackage',
'create package ', function () {
var
fs = require('fs'),
S = require('string'),
string = require('string-formatter'),
os = grunt.config('os'),
config = grunt.config('config'),
working_path = grunt.config('working_path'),
package_path = working_path + '/NuGet/',
package_lib_path = working_path + '/NuGet/lib/',
//configuration = grunt.config('msbuild_configuration'),
configuration = grunt.config('msbuild_configuration'),
output_path_base = 'bin\\' + configuration + '\\',
nuget_builds = grunt.config('nuget_builds'),
nuget_path = os === 'win' ?
config.win.nuget : config.linux.nuget,
dst_path,
template_file_content,
i,
tasks = [];
//function createPackageWithTitle(title) {
// var
// dir_path = string.format('{0}/../../{1}/', __dirname, title),
// csproj = string.format('{0}{1}.csproj', dir_path, title),
// pack = string.format('{0} pack {1}', nuget_path, csproj);
// tasks.push(pack);
//}
if (os !== 'win') {
return;
}
if (configuration !== 'Release') {
grunt.log.writeln('wrong configuration = ' + configuration);
return;
}
//createPackageWithTitle('SocketIoClientDotNet');
if (! fs.existsSync(working_path)) {
fs.mkdirSync(working_path);
fs.mkdirSync(package_path);
fs.mkdirSync(package_lib_path);
}
if (!fs.existsSync(package_path)) {
fs.mkdirSync(package_path);
fs.mkdirSync(package_lib_path);
}
if (!fs.existsSync(package_lib_path)) {
fs.mkdirSync(package_lib_path);
}
for (i = 0; i < nuget_builds.length; i++) {
dst_path = package_lib_path + nuget_builds[i].NuGetDir + '/';
//files = fs.readdirSync(dst_path);
grunt.log.writeln(string.format('dst_path={0}', dst_path));
fs.mkdirSync(dst_path);
}
template_file_content = fs.readFileSync('./templates/SocketIoClientDotNet.nuspec');
template_file_content = S(template_file_content).replaceAll('@VERSION@', config.version).s;
fs.writeFileSync(string.format('{0}SocketIoClientDotNet.nuspec', package_path), template_file_content);
function addBuildWithTitle(title, destsubdir, srcsubdir) {
var
src_path = string.format('{0}/../../Src/{1}/{2}{3}/', __dirname, title, output_path_base, srcsubdir),
dst_path = package_lib_path + destsubdir + '/',
//src_file = string.format('{0}SocketIoClientDotNet.dll', src_path),
src_file = string.format('{0}SocketIoClientDotNet.dll', src_path),
dst_file = string.format('{0}SocketIoClientDotNet.dll', dst_path);
grunt.log.writeln(string.format('src_file={0} dst_file={1}', src_file, dst_file));
fs.writeFileSync(dst_file, fs.readFileSync(src_file));
//src_file = src_path + string.format('{0}.xml', title);
//dst_file = string.format('{0}SocketIoClientDotNet.xml', dst_path);
//grunt.log.writeln(string.format('src_file={0} dst_file={1}', src_file, dst_file));
//fs.writeFileSync(dst_file, fs.readFileSync(src_file));
}
for (i = 0; i < nuget_builds.length; i++) {
addBuildWithTitle(nuget_builds[i].Name, nuget_builds[i].NuGetDir, nuget_builds[i].SourceDir);
}
tasks.push('C:/WINDOWS/System32/WindowsPowerShell/v1.0/powershell.exe pwd');
tasks.push(string.format('{0} pack SocketIoClientDotNet.nuspec', config.win.nuget));
grunt.log.writeln('tasks = %s', JSON.stringify(tasks));
grunt.config('shell.exec.options.execOptions.cwd', package_path);
grunt.config('shell.exec.command', tasks.join('&&'));
grunt.task.run('shell');
});
};