45 lines
1.5 KiB
JavaScript
45 lines
1.5 KiB
JavaScript
module.exports = function (grunt) {
|
|
|
|
grunt.registerTask('createXamarinComponent',
|
|
'create component ', function () {
|
|
var
|
|
fs = require('fs'),
|
|
S = require('string'),
|
|
string = require('string-formatter'),
|
|
os = grunt.config('os'),
|
|
config = grunt.config('config'),
|
|
xamarin_component = os === 'win' ? config.win.xamarin_component : config.linux.xamarin_component,
|
|
working_path = grunt.config('working_path'),
|
|
package_path = working_path + '/Component/',
|
|
configuration = grunt.config('msbuild_configuration'),
|
|
template_file_content,
|
|
tasks = [];
|
|
|
|
if (configuration !== 'Release') {
|
|
grunt.log.writeln('wrong configuration = ' + configuration);
|
|
return;
|
|
}
|
|
|
|
|
|
if (! fs.existsSync(working_path)) {
|
|
fs.mkdirSync(working_path);
|
|
fs.mkdirSync(package_path);
|
|
}
|
|
if (!fs.existsSync(package_path)) {
|
|
fs.mkdirSync(package_path);
|
|
}
|
|
|
|
|
|
template_file_content = fs.readFileSync('./templates/SocketIoClientDotNet.yaml');
|
|
template_file_content = S(template_file_content).replaceAll('@VERSION@', config.version).s;
|
|
fs.writeFileSync(string.format('{0}component.yaml', package_path), template_file_content);
|
|
|
|
|
|
tasks.push('echo %cd%');
|
|
tasks.push(string.format('{0} package', xamarin_component));
|
|
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');
|
|
});
|
|
}; |