mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-20 00:28:52 +01:00
55 lines
1.8 KiB
JavaScript
55 lines
1.8 KiB
JavaScript
var gulp = require('gulp');
|
|
var decompress = require('gulp-decompress');
|
|
var download = require('gulp-download');
|
|
var del = require('del');
|
|
var fs = require('fs');
|
|
var join = require('path').join;
|
|
|
|
|
|
gulp.task('omnisharp:clean', function () {
|
|
return del('bin');
|
|
});
|
|
|
|
gulp.task('omnisharp:fetch', ['omnisharp:clean'], function () {
|
|
|
|
var release = 'https://github.com/OmniSharp/omnisharp-roslyn/releases/download/v1.5.6/omnisharp.tar.gz';
|
|
|
|
return download(release)
|
|
.pipe(decompress({strip: 1}))
|
|
.pipe(gulp.dest('bin'))
|
|
});
|
|
|
|
gulp.task('omnisharp:fixscripts', ['omnisharp:fetch'], function () {
|
|
|
|
var _fixes = Object.create(null);
|
|
_fixes['./bin/omnisharp.cmd'] = '@"%~dp0packages\\dnx-clr-win-x86.1.0.0-beta4\\bin\\dnx.exe" "%~dp0packages\\OmniSharp\\1.0.0\\root" run %*';
|
|
_fixes['./bin/omnisharp'] = '#!/bin/bash\n\
|
|
SOURCE="${BASH_SOURCE[0]}"\n\
|
|
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink\n\
|
|
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"\n\
|
|
SOURCE="$(readlink "$SOURCE")"\n\
|
|
[[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located\n\
|
|
done\n\
|
|
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"\n\
|
|
export SET DNX_APPBASE="$DIR/packages/OmniSharp/1.0.0/root"\n\
|
|
export PATH=/usr/local/bin:/Library/Frameworks/Mono.framework/Commands:$PATH # this is required for the users of the Homebrew Mono package\n\
|
|
exec "$DIR/packages/dnx-mono.1.0.0-beta4/bin/dnx" "$DNX_APPBASE" run "$@"\n\
|
|
\n';
|
|
|
|
var promises = Object.keys(_fixes).map(function (key) {
|
|
return new Promise(function(resolve, reject) {
|
|
fs.writeFile(join(__dirname, key), _fixes[key], function (err) {
|
|
if (err) {
|
|
reject(err);
|
|
} else {
|
|
resolve();
|
|
}
|
|
})
|
|
});
|
|
});
|
|
|
|
return Promise.all(promises)
|
|
});
|
|
|
|
|
|
gulp.task('omnisharp', ['omnisharp:fixscripts']); |