gulp.task("install-upstart-script", function () {
    gulp.src("init-scripts/upstart/gitlab-pull-webhook.conf")
        .pipe(replace('%installDir%', process.cwd()))
        .pipe(gulp.dest("/etc/init"));
});
Example #2
0
gulp.task('html', function() {

  return gulp.src('./src/**/*.html')
    .pipe(replace(/@VERSION@/g, version))
    .pipe(gulp.dest('./dist/'));
});
Example #3
0
module.exports = function(callback) {

  var
    stream,
    compressedStream,
    uncompressedStream
  ;

  // use a different config
  config = configSetup.addDerivedValues(config);

  // shorthand
  globs  = config.globs;
  assets = config.paths.assets;
  output = config.paths.output;
  source = config.paths.source;

  /*--------------
   Parse metadata
   ---------------*/

  // parse all *.html.eco in docs repo, data will end up in
  // metadata.result object.  Note this assumes that the docs
  // repository is present and in proper directory location as
  // specified by docs.json.
  console.info('Building Metadata');
  gulp.src(config.paths.template.eco + globs.eco)
    .pipe(map(metadata.parser))
    .on('end', function() {
      fs.writeFile(output.metadata + '/metadata.json', JSON.stringify(metadata.result, null, 2));
    })
  ;

  /*--------------
    Copy Examples
  ---------------*/

  console.info('Copying examples');
  // copy src/ to server
  gulp.src('examples/**/*.*')
    .pipe(gulp.dest(output.examples))
    .pipe(print(log.created))
  ;

  /*--------------
     Copy Source
  ---------------*/

  console.info('Copying LESS source');
  // copy src/ to server
  gulp.src('src/**/*.*')
    .pipe(gulp.dest(output.less))
    .pipe(print(log.created))
  ;

  /*--------------
        Build
  ---------------*/

  console.info('Building Semantic for docs');

  if( !install.isSetup() ) {
    console.error('Cannot build files. Run "gulp install" to set-up Semantic');
    return;
  }

  // unified css stream
  stream = gulp.src(source.definitions + '/**/' + globs.components + '.less')
    .pipe(plumber())
    .pipe(less(settings.less))
    .pipe(autoprefixer(settings.prefix))
    .pipe(flatten())
  ;

  // two concurrent streams from same source to concat release
  uncompressedStream = stream.pipe(clone());
  compressedStream   = stream.pipe(clone());

  uncompressedStream
    .pipe(plumber())
    .pipe(replace(comments.variables.in, comments.variables.out))
    .pipe(replace(comments.large.in, comments.large.out))
    .pipe(replace(comments.small.in, comments.small.out))
    .pipe(replace(comments.tiny.in, comments.tiny.out))
    .pipe(replace(assets.source, assets.uncompressed))
    .pipe(header(banner, settings.header))
    .pipe(gulpif(config.hasPermission, chmod(config.permission)))
    .pipe(gulp.dest(output.uncompressed))
    .pipe(print(log.created))
    .on('end', function() {
      gulp.start('package uncompressed docs css');
    })
  ;

  compressedStream = stream
    .pipe(plumber())
    .pipe(clone())
    .pipe(replace(assets.source, assets.compressed))
    .pipe(minifyCSS(settings.minify))
    .pipe(rename(settings.rename.minCSS))
    .pipe(header(banner, settings.header))
    .pipe(gulpif(config.hasPermission, chmod(config.permission)))
    .pipe(gulp.dest(output.compressed))
    .pipe(print(log.created))
    .on('end', function() {
      callback();
      gulp.start('package compressed docs css');
    })
  ;

  // copy assets
  gulp.src(source.themes + '/**/assets/**/*.*')
    .pipe(gulpif(config.hasPermission, chmod(config.permission)))
    .pipe(gulp.dest(output.themes))
  ;

  // copy source javascript
  gulp.src(source.definitions + '/**/' + globs.components + '.js')
    .pipe(plumber())
    .pipe(flatten())
    .pipe(gulp.dest(output.uncompressed))
    .pipe(gulpif(config.hasPermission, chmod(config.permission)))
    .pipe(print(log.created))
    .pipe(uglify(settings.uglify))
    .pipe(rename(settings.rename.minJS))
    .pipe(header(banner, settings.header))
    .pipe(gulp.dest(output.compressed))
    .pipe(gulpif(config.hasPermission, chmod(config.permission)))
    .pipe(print(log.created))
    .on('end', function() {
      gulp.start('package compressed docs js');
      gulp.start('package uncompressed docs js');
    })
  ;

};
 return streamCombiner(function (source) {
   return source
     .pipe(babel(this.babelOpts))
     .pipe(replace(/\/\/\s+transpile:(main|mocha)\s*/g, this.header))
     .pipe(renameEsX());
 }.bind(this));
Example #5
0
gulp.task('releaseHtml', function () {
  gulp.src('./*.html')
    .pipe(replace(/"dist\//g, releaseUrl))
    .pipe(gulp.dest('dist/'))
})
Example #6
0
var dataTask = function() {
  return gulp.src(paths.src)
    .pipe(replace(pattern, changeRegExp))
    .pipe(concatJson())
    .pipe(gulp.dest(paths.dest))
}
Example #7
0
gulp.task('copy:manifest', () => {
  gulp.src('src/manifest-template')
    .pipe(replace(/:revision-date/, new Date().getTime()))
    .pipe(rename('cache.manifest'))
    .pipe(gulp.dest('dist/'))
})
Example #8
0
gulp.task('js', function () {
  var chuijs_start = [
    'window.CHUIJSLIB;',
    'if(window.jQuery) {',
    '  window.CHUIJSLIB = window.jQuery;',
    '} else if (window.$chocolatechipjs) {',
    '  window.CHUIJSLIB = window.$chocolatechipjs;',
    '}',
    '(function($) {\n'
  ].join('\n');
  var chuijs_end = '\n\}\)\(window\.CHUIJSLIB\);';

  gulp.src([
    'src/chui/utils.js', 
    'src/chui/events.js', 
    'src/chui/detectors.js', 
    'src/chui/browsers.js', 
    'src/chui/gestures.js', 
    'src/chui/desktop.js', 
    'src/chui/layout.js',
    'src/chui/navbar.js',
    'src/chui/pubsub.js', 
    'src/chui/navigation.js', 
    'src/chui/buttons.js', 
    'src/chui/blockui.js', 
    'src/chui/center.js', 
    'src/chui/busy.js', 
    'src/chui/popup.js', 
    'src/chui/popover.js', 
    'src/chui/segmented.js', 
    'src/chui/togglePanel.js', 
    'src/chui/paging.js', 
    'src/chui/editableList.js', 
    'src/chui/selectList.js', 
    'src/chui/sheet.js', 
    'src/chui/slideout.js', 
    'src/chui/stepper.js', 
    'src/chui/switch.js', 
    'src/chui/scroll.js', 
    'src/chui/tabbar.js', 
    'src/chui/templates.js', 
    'src/chui/search.js', 
    'src/chui/carousel.js',
    'src/chui/range.js',
    'src/chui/select.js',
    'src/chui/scrollPanel.js',
    'src/chui/dataBinding.js'
  ])


    .pipe(replace(/^\(function\(\$\) \{\n  \"use strict\";/img, ''))
    .pipe(replace(/^\}\)\(window.\$\);/img, ''))
    .pipe(concat("chui-" + pkg.version + ".js"))
    .pipe(header(chuijs_start))
    .pipe(footer(chuijs_end))
    //.pipe(replace(/\}\)\(\);\n\}\)\(window.CHUIJSLIB\);/, '})(window.CHUIJSLIB);'))
    .pipe(header(chuiHeader, { pkg : pkg, chuiName: chui[3] }))
    .pipe(gulp.dest(pkg.projectPath + 'chui/'))
    .pipe(gulp.dest(pkg.projectPath + 'dist/'))
    .pipe(uglify())
    .pipe(header(chuiHeaderMin, { pkg : pkg, chuiName: chui[3] }))
    .pipe(rename("chui-" + pkg.version + ".min.js"))
    .pipe(gulp.dest(pkg.projectPath + 'chui/'))
    .pipe(gulp.dest(pkg.projectPath + 'dist/'));
});
Example #9
0
gulp.task('html', function() {
	gulp.src(['sources/partials/index.html'])
		.pipe(replace("[home-tmpl]", fs.readFileSync('sources/partials/home.html', 'utf8')))
		.pipe(gulp.dest('sources/'));
});
Example #10
0
gulp.task('manifest', () => (
  gulp.src(paths.manifest, {base: 'src'})
  .pipe(replace('__VERSION__', pkg.version))
  .pipe(gulp.dest('dist'))
));
Example #11
0
gulp.task('ugly', function() {
	return gulp.src(['small_promise.js'])
		.pipe(rename('ugly_small_promise.js'))
		// Remove comments
		.pipe(strip())
		// small_promise -> P
		.pipe(replace(/small_promise/mg, 'P'))
		.pipe(replace(/var P/mg, 'var small_promise'))
		// protoClass -> K
		.pipe(replace(/protoClass/mg, 'K'))
		// callback_builder -> B
		.pipe(replace(/callback_builder/mg, 'B'))
		// (callback_builder specific) promiseObj -> o 
		.pipe(replace(/promiseObj/mg, 'o'))
		// (callback_builder specific) callbackArray -> a
		.pipe(replace(/callbackArray/mg, 'a'))
		// (callback_builder specific) newStatus -> n
		.pipe(replace(/newStatus/mg, 'n'))
		// executor -> e
		.pipe(replace(/executor/mg, 'e'))
		// value -> v
		.pipe(replace(/value/mg, 'v'))
		.pipe(replace(/val/mg, 'v'))
		// .status -> .s
		.pipe(replace(/.status/mg, '.s'))
		// .then_array -> .t
		// .catch_array -> .c
		.pipe(replace(/.then_array/mg, '.t'))
		.pipe(replace(/.catch_array/mg, '.c'))
		// onFulfilled -> f
		// onRejected -> r
		.pipe(replace(/onFulfilled/mg, 'F'))
		.pipe(replace(/onRejected/mg, 'R'))
		// forEachErrMsg -> m
		.pipe(replace(/forEachErrMsg/mg, 'M'))
		// iterable -> I
		.pipe(replace(/iterable/mg, 'I'))
		// is_function -> Q
		.pipe(replace(/is_function/mg, 'Q'))
		// Remove blank lines
		.pipe(replace(/^\s*\n/mg, ''))
		// Build ugly script
		.pipe(gulp.dest('bin'));
});
Example #12
0
function addBanner( str ) {
  return replace( /^/, str );
}
Example #13
0
var envReplace = function (env) {
  return gulp.src(['src/index.html'])
    .pipe(replace('__REPLACE_ENV__', env))
    .pipe(gulp.dest('./build'));
}
Example #14
0
gulp.task('copy-config-xml', function(){
	return gulp.src('./src/config.xml')
	.pipe(replace(/{NAMESPACE}/g, configs.app.namespace))
	.pipe(replace(/{VERSION}/g, configs.app.version))
	.pipe(replace(/{APP_NAME}/g, configs.app.name))
	.pipe(replace(/{APP_DESCRIPTION}/g, configs.app.description))
	.pipe(replace(/{AUTHOR_WEBISTE}/g, configs.app.author.website))
	.pipe(replace(/{AUTHOR_EMAIL}/g, configs.app.author.email))
	.pipe(replace(/{AUTHOR_NAME}/g, configs.app.author.name))
	.pipe(replace(/{PLUGINS}/g, getPluginsXML()))
	.pipe(replace(/{ICONS}/g, getIconsXML()))
	.pipe(replace(/{SPLASHSCREENS}/g, getSplashscreenXML()))
	.pipe(replace(/{ACCESS_ORIGIN}/g, configs.app.accessOrigin))
	.pipe(replace(/{ORIENTATION}/g, configs.app.orientation))
	.pipe(replace(/{TARGET_DEVICE}/g, configs.app.targetDevice))
	.pipe(replace(/{EXIT_ON_SUSPEND}/g, configs.app.exitOnSuspend))
	.pipe(gulp.dest('./' + PHONEGAP_APP_DIR + '/www/'))
});
Example #15
0
  return new Promise(function(resolve) {
    let entryModuleFilename;
    if (entryModuleFilenames instanceof Array) {
      entryModuleFilename = entryModuleFilenames[0];
    } else {
      entryModuleFilename = entryModuleFilenames;
      entryModuleFilenames = [entryModuleFilename];
    }
    const checkTypes = options.checkTypes || argv.typecheck_only;
    const intermediateFilename = 'build/cc/' +
        entryModuleFilename.replace(/\//g, '_').replace(/^\./, '');
    // If undefined/null or false then we're ok executing the deletions
    // and mkdir.
    if (!options.preventRemoveAndMakeDir) {
      cleanupBuildDir();
    }
    const unneededFiles = [
      'build/fake-module/third_party/babel/custom-babel-helpers.js',
    ];
    let wrapper = '(function(){%output%})();';
    if (options.wrapper) {
      wrapper = options.wrapper.replace('<%= contents %>', '%output%');
    }
    wrapper += '\n//# sourceMappingURL=' + outputFilename + '.map\n';
    patchRegisterElement();
    if (fs.existsSync(intermediateFilename)) {
      fs.unlinkSync(intermediateFilename);
    }
    if (/development/.test(internalRuntimeToken)) {
      throw new Error('Should compile with a prod token');
    }
    let sourceMapBase = 'http://*****:*****@define" since we use define to pass
        // args such as FORTESTING to our runner.
        jscomp_off: ['unknownDefines'],
        define: [],
        hide_warnings_for: [
          'third_party/caja/',
          'third_party/closure-library/sha384-generated.js',
          'third_party/d3/',
          'third_party/mustache/',
          'third_party/vega/',
          'third_party/webcomponentsjs/',
          'third_party/rrule/',
          'third_party/react-dates/',
          'node_modules/',
          'build/patched-module/',
          // Can't seem to suppress `(0, win.eval)` suspicious code warning
          '3p/environment.js',
          // Generated code.
          'extensions/amp-access/0.1/access-expr-impl.js',
        ],
        jscomp_error: [],
      },
    };

    // For now do type check separately
    if (argv.typecheck_only || checkTypes) {
      // Don't modify compilation_level to a lower level since
      // it won't do strict type checking if its whitespace only.
      compilerOptions.compilerFlags.define.push('TYPECHECK_ONLY=true');
      compilerOptions.compilerFlags.jscomp_error.push(
          'checkTypes',
          'accessControls',
          'const',
          'constantProperty',
          'globalThis');
      compilerOptions.compilerFlags.conformance_configs =
          'build-system/conformance-config.textproto';

      // TODO(aghassemi): Remove when NTI is the default.
      if (argv.nti) {
        compilerOptions.compilerFlags.new_type_inf = true;
        compilerOptions.compilerFlags.jscomp_off.push(
            'newCheckTypesExtraChecks');
        compilerOptions.compilerFlags.externs.push(
            'build-system/amp.nti.extern.js'
        );
      } else {
        compilerOptions.compilerFlags.externs.push(
            'build-system/amp.oti.extern.js'
        );
      }
    }
    if (argv.pseudo_names) {
      compilerOptions.compilerFlags.define.push('PSEUDO_NAMES=true');
    }
    if (argv.fortesting) {
      compilerOptions.compilerFlags.define.push('FORTESTING=true');
    }

    if (compilerOptions.compilerFlags.define.length == 0) {
      delete compilerOptions.compilerFlags.define;
    }

    let stream = gulp.src(srcs)
        .pipe(closureCompiler(compilerOptions))
        .on('error', function(err) {
          console./* OK*/error(util.colors.red('Error compiling',
              entryModuleFilenames));
          console./* OK*/error(util.colors.red(err.message));
          process.exit(1);
        });

    // If we're only doing type checking, no need to output the files.
    if (!argv.typecheck_only) {
      stream = stream
          .pipe(rename(outputFilename))
          .pipe(replace(/\$internalRuntimeVersion\$/g, internalRuntimeVersion))
          .pipe(replace(/\$internalRuntimeToken\$/g, internalRuntimeToken))
          .pipe(shortenLicense())
          .pipe(gulp.dest(outputDir))
          .on('end', function() {
            gulp.src(intermediateFilename + '.map')
                .pipe(rename(outputFilename + '.map'))
                .pipe(gulp.dest(outputDir))
                .on('end', resolve);
          });
    }
    return stream;
  });
Example #16
0
gulp.task('replace:build', function(){
	return gulp.src(config.base.baseLayoutFile, { base : config.base.baseLayoutDir })
		.pipe(replace('data-main="'+config.scripts.srcPath.substr(1), 'data-main="'+config.scripts.dest.substr(1)))
		.pipe(gulp.dest(config.base.baseLayoutDir));
});
Example #17
0
 gulp.task('year', function () {
     return gulp.src([ './LICENSE.md', './README.md' ])
         .pipe(replace(/(Copyright )(\d{4})/g, '$1' + gutil.date('yyyy')))
         .pipe(gulp.dest('.'));
 });
Example #18
0
module.exports.modify = function(srcs, concatName) {
    return gulp.src(srcs)
        .pipe(concat(concatName))
        .pipe(replace('sourceMappingURL', 'sourceMappingURLDisabled')) // TODO: add concat for sourceMaps
}
Example #19
0
	return () => {
		const out = opts.minified ? 'out-vscode-min' : 'out-vscode';

		const checksums = computeChecksums(out, [
			'vs/workbench/workbench.main.js',
			'vs/workbench/workbench.main.css',
			'vs/workbench/electron-browser/bootstrap/index.html',
			'vs/workbench/electron-browser/bootstrap/index.js'
		]);

		const src = gulp.src(out + '/**', { base: '.' })
			.pipe(rename(function (path) { path.dirname = path.dirname.replace(new RegExp('^' + out), 'out'); }))
			.pipe(util.setExecutableBit(['**/*.sh']));

		const extensionsList = [
			'extensions/*/**',
			'!extensions/*/src/**',
			'!extensions/*/out/**/test/**',
			'!extensions/*/test/**',
			'!extensions/*/build/**',
			'!extensions/*/{client,server}/src/**',
			'!extensions/*/{client,server}/test/**',
			'!extensions/*/{client,server}/out/**/test/**',
			'!extensions/*/{client,server}/out/**/typings/**',
			'!extensions/**/.vscode/**',
			'!extensions/**/tsconfig.json',
			'!extensions/typescript/bin/**',
			'!extensions/vscode-api-tests/**',
			'!extensions/vscode-colorize-tests/**',
			...builtInExtensions.map(e => `!extensions/${e.name}/**`)
		];

		const nlsFilter = filter('**/*.nls.json', { restore: true });
		const extensions = gulp.src(extensionsList, { base: '.' })
			// TODO@Dirk: this filter / buffer is here to make sure the nls.json files are buffered
			.pipe(nlsFilter)
			.pipe(buffer())
			.pipe(nlsDev.createAdditionalLanguageFiles(languages, path.join(__dirname, '..', 'i18n')))
			.pipe(nlsFilter.restore);

		const marketplaceExtensions = es.merge(...builtInExtensions.map(extension => {
			return ext.src(extension.name, extension.version)
				.pipe(rename(p => p.dirname = `extensions/${extension.name}/${p.dirname}`));
		}));

		const sources = es.merge(src, extensions, marketplaceExtensions)
			.pipe(filter(['**', '!**/*.js.map']))
			.pipe(util.handleAzureJson({ platform }));

		let version = packageJson.version;
		const quality = product.quality;

		if (quality && quality !== 'stable') {
			version += '-' + quality;
		}

		const name = product.nameShort;
		const packageJsonStream = gulp.src(['package.json'], { base: '.' })
			.pipe(json({ name, version }));

		const date = new Date().toISOString();
		const productJsonStream = gulp.src(['product.json'], { base: '.' })
			.pipe(json({ commit, date, checksums }));

		const license = gulp.src(['LICENSES.chromium.html', 'LICENSE.txt', 'ThirdPartyNotices.txt', 'licenses/**'], { base: '.' });

		// TODO the API should be copied to `out` during compile, not here
		const api = gulp.src('src/vs/vscode.d.ts').pipe(rename('out/vs/vscode.d.ts'));

		const depsSrc = _.flatten(dependencies
			.map(function (d) { return ['node_modules/' + d + '/**', '!node_modules/' + d + '/**/{test,tests}/**']; }));

		const deps = gulp.src(depsSrc, { base: '.', dot: true })
			.pipe(util.cleanNodeModule('fsevents', ['binding.gyp', 'fsevents.cc', 'build/**', 'src/**', 'test/**'], ['**/*.node']))
			.pipe(util.cleanNodeModule('oniguruma', ['binding.gyp', 'build/**', 'src/**', 'deps/**'], ['**/*.node']))
			.pipe(util.cleanNodeModule('windows-mutex', ['binding.gyp', 'build/**', 'src/**'], ['**/*.node']))
			.pipe(util.cleanNodeModule('native-keymap', ['binding.gyp', 'build/**', 'src/**', 'deps/**'], ['**/*.node']))
			.pipe(util.cleanNodeModule('windows-foreground-love', ['binding.gyp', 'build/**', 'src/**'], ['**/*.node']))
			.pipe(util.cleanNodeModule('gc-signals', ['binding.gyp', 'build/**', 'src/**', 'deps/**'], ['**/*.node', 'src/index.js']))
			.pipe(util.cleanNodeModule('pty.js', ['binding.gyp', 'build/**', 'src/**', 'deps/**'], ['build/Release/**']));

		let all = es.merge(
			packageJsonStream,
			productJsonStream,
			license,
			api,
			sources,
			deps
		);

		if (platform === 'win32') {
			all = es.merge(all, gulp.src('resources/win32/code_file.ico', { base: '.' }));
		} else if (platform === 'linux') {
			all = es.merge(all, gulp.src('resources/linux/code.png', { base: '.' }));
		} else if (platform === 'darwin') {
			const shortcut = gulp.src('resources/darwin/bin/code.sh')
				.pipe(rename('bin/code'));

			all = es.merge(all, shortcut);
		}

		let result = all
			.pipe(util.skipDirectories())
			.pipe(util.fixWin32DirectoryPermissions())
			.pipe(electron(_.extend({}, config, { platform, arch, ffmpegChromium: true })))
			.pipe(filter(['**', '!LICENSE', '!LICENSES.chromium.html', '!version']));

		if (platform === 'win32') {
			result = es.merge(result, gulp.src('resources/win32/bin/code.js', { base: 'resources/win32' }));
			result = es.merge(result, gulp.src('resources/win32/bin/cat.exe', { base: 'resources/win32' }));

			result = es.merge(result, gulp.src('resources/win32/bin/code.cmd', { base: 'resources/win32' })
				.pipe(replace('@@NAME@@', product.nameShort))
				.pipe(rename(function (f) { f.basename = product.applicationName; })));

			result = es.merge(result, gulp.src('resources/win32/bin/code.sh', { base: 'resources/win32' })
				.pipe(replace('@@NAME@@', product.nameShort))
				.pipe(rename(function (f) { f.basename = product.applicationName; f.extname = ''; })));
		} else if (platform === 'linux') {
			result = es.merge(result, gulp.src('resources/linux/bin/code.sh', { base: '.' })
				.pipe(replace('@@NAME@@', product.applicationName))
				.pipe(rename('bin/' + product.applicationName)));
		}

		return result.pipe(vfs.dest(destination));
	};
gulp.task('html-replace', () => {
    return gulp.src([path.INDEX_SRC])
        .pipe(replace('dev/', ''))
        .pipe(replace(path.OUT, path.MINIFIED_OUT))
        .pipe(gulp.dest(dir.PUBLIC));
});
Example #21
0
gulp.task('devToProHtml', function() {
    return gulp
        .src(noteDev)
        .pipe(replace(/<!-- dev -->[.\s\S]+?<!-- \/dev -->/g, '')) // 把dev 去掉
        .pipe(replace(/<!-- pro_dep_js -->/, '<script src="/js/dep.min.js"></script>')) // 替换
        .pipe(replace(/<!-- pro_app_js -->/, '<script src="/js/app.min.js"></script>')) // 替换
        // .pipe(replace(/<!-- pro_markdown_js -->/, '<script src="/js/markdown.min.js"></script>')) // 替换
        .pipe(replace(/<!-- pro_markdown_js -->/, '<script src="/js/markdown-v2.min.js"></script>')) // 替换
        .pipe(replace('/tinymce/tinymce.js', '/tinymce/tinymce.full.min.js')) // 替换
        .pipe(replace(/<!-- pro_tinymce_init_js -->/, "var tinyMCEPreInit = {base: '/public/tinymce', suffix: '.min'};")) // 替换
        .pipe(replace(/plugins\/main.js/, "plugins/main.min.js")) // 替换
        // 连续两个空行换成一个空行
        .pipe(replace(/\r\n\r\n/g, '\r\n'))
        .pipe(replace(/\r\n\r\n/g, '\r\n'))
        .pipe(replace(/\r\n\r\n/g, '\r\n'))
        .pipe(replace(/\r\n\r\n/g, '\r\n'))
        .pipe(replace(/\r\n\r\n/g, '\r\n'))
        .pipe(replace(/\r\n\r\n/g, '\r\n'))
        .pipe(replace('console.log(o);', ''))
        .pipe(replace('console.trace(o);', ''))
        // .pipe(minifyHtml()) // 不行, 压缩后golang报错
        .pipe(rename('note.html'))
        .pipe(gulp.dest(noteProBase));
});
Example #22
0
 orchestrator.add('fixSourceMapSources', ['uglify'], function() {
     return gulp.src(path.resolve(dir, fileNameMap))
         .pipe(replace('"file":"' + fileNameMap + '"', '"file":"' + fileNameMin + '"'))
         .pipe(replace('"sources":["' + fileNameMin + '"]', '"sources":["' + fileName + '"]'))
         .pipe(gulp.dest(dir));
 });
Example #23
0
gulp.task('css-dev', function(){
    gulp.src(path.CSS)
        .pipe(replace(/.user-block [^}]*}/m, ''))
        .pipe(gulp.dest(path.DEST_FINAL_CSS));
});
Example #24
0
	return () => {
		const out = opts.minified ? 'out-vscode-min' : 'out-vscode';

		const checksums = computeChecksums(out, [
			'vs/workbench/workbench.main.js',
			'vs/workbench/workbench.main.css',
			'vs/workbench/electron-browser/bootstrap/index.html',
			'vs/workbench/electron-browser/bootstrap/index.js',
			'vs/workbench/electron-browser/bootstrap/preload.js'
		]);

		const src = gulp.src(out + '/**', { base: '.' })
			.pipe(rename(function (path) { path.dirname = path.dirname.replace(new RegExp('^' + out), 'out'); }));

		const root = path.resolve(path.join(__dirname, '..'));
		const localExtensionDescriptions = glob.sync('extensions/*/package.json')
			.map(manifestPath => {
				const extensionPath = path.dirname(path.join(root, manifestPath));
				const extensionName = path.basename(extensionPath);
				return { name: extensionName, path: extensionPath };
			})
			.filter(({ name }) => excludedExtensions.indexOf(name) === -1)
			.filter(({ name }) => builtInExtensions.every(b => b.name !== name));

		const localExtensions = es.merge(...localExtensionDescriptions.map(extension => {
			const nlsFilter = filter('**/*.nls.json', { restore: true });

			return ext.fromLocal(extension.path)
				.pipe(rename(p => p.dirname = `extensions/${extension.name}/${p.dirname}`))
				// 	// TODO@Dirk: this filter / buffer is here to make sure the nls.json files are buffered
				.pipe(nlsFilter)
				.pipe(buffer())
				.pipe(nlsDev.createAdditionalLanguageFiles(languages, path.join(__dirname, '..', 'i18n')))
				.pipe(nlsFilter.restore);
		}));

		const localExtensionDependencies = gulp.src('extensions/node_modules/**', { base: '.' });

		const marketplaceExtensions = es.merge(...builtInExtensions.map(extension => {
			return ext.fromMarketplace(extension.name, extension.version)
				.pipe(rename(p => p.dirname = `extensions/${extension.name}/${p.dirname}`));
		}));

		const sources = es.merge(src, localExtensions, localExtensionDependencies, marketplaceExtensions)
			.pipe(util.setExecutableBit(['**/*.sh']))
			.pipe(filter(['**', '!**/*.js.map']));

		let version = packageJson.version;
		const quality = product.quality;

		if (quality && quality !== 'stable') {
			version += '-' + quality;
		}

		const name = product.nameShort;
		const packageJsonStream = gulp.src(['package.json'], { base: '.' })
			.pipe(json({ name, version }));

		const settingsSearchBuildId = getBuildNumber();
		const date = new Date().toISOString();
		const productJsonStream = gulp.src(['product.json'], { base: '.' })
			.pipe(json({ commit, date, checksums, settingsSearchBuildId }));

		const license = gulp.src(['LICENSES.chromium.html', 'LICENSE.txt', 'ThirdPartyNotices.txt', 'licenses/**'], { base: '.' });

		const watermark = gulp.src(['resources/letterpress.svg', 'resources/letterpress-dark.svg', 'resources/letterpress-hc.svg'], { base: '.' });

		// TODO the API should be copied to `out` during compile, not here
		const api = gulp.src('src/vs/vscode.d.ts').pipe(rename('out/vs/vscode.d.ts'));

		const depsSrc = [
			..._.flatten(productionDependencies.map(d => path.relative(root, d.path)).map(d => [`${d}/**`, `!${d}/**/{test,tests}/**`])),
			..._.flatten(Object.keys(product.dependencies || {}).map(d => [`node_modules/${d}/**`, `!node_modules/${d}/**/{test,tests}/**`]))
		];

		const deps = gulp.src(depsSrc, { base: '.', dot: true })
			.pipe(filter(['**', '!**/package-lock.json']))
			.pipe(util.cleanNodeModule('fsevents', ['binding.gyp', 'fsevents.cc', 'build/**', 'src/**', 'test/**'], ['**/*.node']))
			.pipe(util.cleanNodeModule('oniguruma', ['binding.gyp', 'build/**', 'src/**', 'deps/**'], ['**/*.node', 'src/*.js']))
			.pipe(util.cleanNodeModule('windows-mutex', ['binding.gyp', 'build/**', 'src/**'], ['**/*.node']))
			.pipe(util.cleanNodeModule('native-keymap', ['binding.gyp', 'build/**', 'src/**', 'deps/**'], ['**/*.node']))
			.pipe(util.cleanNodeModule('native-is-elevated', ['binding.gyp', 'build/**', 'src/**', 'deps/**'], ['**/*.node']))
			.pipe(util.cleanNodeModule('native-watchdog', ['binding.gyp', 'build/**', 'src/**'], ['**/*.node']))
			.pipe(util.cleanNodeModule('spdlog', ['binding.gyp', 'build/**', 'deps/**', 'src/**', 'test/**'], ['**/*.node']))
			.pipe(util.cleanNodeModule('jschardet', ['dist/**']))
			.pipe(util.cleanNodeModule('windows-foreground-love', ['binding.gyp', 'build/**', 'src/**'], ['**/*.node']))
			.pipe(util.cleanNodeModule('windows-process-tree', ['binding.gyp', 'build/**', 'src/**'], ['**/*.node']))
			.pipe(util.cleanNodeModule('gc-signals', ['binding.gyp', 'build/**', 'src/**', 'deps/**'], ['**/*.node', 'src/index.js']))
			.pipe(util.cleanNodeModule('keytar', ['binding.gyp', 'build/**', 'src/**', 'script/**', 'node_modules/**'], ['**/*.node']))
			.pipe(util.cleanNodeModule('node-pty', ['binding.gyp', 'build/**', 'src/**', 'tools/**'], ['build/Release/**']))
			.pipe(util.cleanNodeModule('nsfw', ['binding.gyp', 'build/**', 'src/**', 'openpa/**', 'includes/**'], ['**/*.node', '**/*.a']))
			.pipe(util.cleanNodeModule('vsda', ['binding.gyp', 'README.md', 'build/**', '*.bat', '*.sh', '*.cpp', '*.h'], ['build/Release/vsda.node']));

		let all = es.merge(
			packageJsonStream,
			productJsonStream,
			license,
			watermark,
			api,
			sources,
			deps
		);

		if (platform === 'win32') {
			all = es.merge(all, gulp.src(['resources/win32/code_file.ico', 'resources/win32/code_70x70.png', 'resources/win32/code_150x150.png'], { base: '.' }));
		} else if (platform === 'linux') {
			all = es.merge(all, gulp.src('resources/linux/code.png', { base: '.' }));
		} else if (platform === 'darwin') {
			const shortcut = gulp.src('resources/darwin/bin/code.sh')
				.pipe(rename('bin/code'));

			all = es.merge(all, shortcut);
		}

		let result = all
			.pipe(util.skipDirectories())
			.pipe(util.fixWin32DirectoryPermissions())
			.pipe(electron(_.extend({}, config, { platform, arch, ffmpegChromium: true })))
			.pipe(filter(['**', '!LICENSE', '!LICENSES.chromium.html', '!version']));

		if (platform === 'win32') {
			result = es.merge(result, gulp.src('resources/win32/bin/code.js', { base: 'resources/win32' }));

			result = es.merge(result, gulp.src('resources/win32/bin/code.cmd', { base: 'resources/win32' })
				.pipe(replace('@@NAME@@', product.nameShort))
				.pipe(rename(function (f) { f.basename = product.applicationName; })));

			result = es.merge(result, gulp.src('resources/win32/bin/code.sh', { base: 'resources/win32' })
				.pipe(replace('@@NAME@@', product.nameShort))
				.pipe(rename(function (f) { f.basename = product.applicationName; f.extname = ''; })));

			result = es.merge(result, gulp.src('resources/win32/VisualElementsManifest.xml', { base: 'resources/win32' })
				.pipe(rename(product.nameShort + '.VisualElementsManifest.xml')));
		} else if (platform === 'linux') {
			result = es.merge(result, gulp.src('resources/linux/bin/code.sh', { base: '.' })
				.pipe(replace('@@NAME@@', product.applicationName))
				.pipe(rename('bin/' + product.applicationName)));
		}

		return result.pipe(vfs.dest(destination));
	};
Example #25
0
module.exports = function(gulp, callback) {
	return gulp.src('*.html', { cwd: config.html + '/' + myTextDirection + '/' + myLayoutName })
		.pipe(replace(/(<script\b.+src=")(?!http)(.+\bapp-assets\b.[^vendors].+[^min])(\.js)(".*>)/g, '$1$2.min$3$4'))
		.pipe(gulp.dest(config.html + '/' + myTextDirection + '/' + myLayoutName));
};
Example #26
0
gulp.task("amd", function() {
    var replaceText1 = [
        'var cmModePath  = "codemirror/mode/";',
        '            var cmAddonPath = "codemirror/addon/";', 
        '',
        '            var codeMirrorModules = [',
        '                "jquery", "marked", "prettify",',
        '                "katex", "raphael", "underscore", "flowchart",  "jqueryflowchart",  "sequenceDiagram",',
        '',
        '                "codemirror/lib/codemirror",',
        '                cmModePath + "css/css",',
        '                cmModePath + "sass/sass",', 
        '                cmModePath + "shell/shell",', 
        '                cmModePath + "sql/sql",',
        '                cmModePath + "clike/clike",',
        '                cmModePath + "php/php",',
        '                cmModePath + "xml/xml",',
        '                cmModePath + "markdown/markdown",', 
        '                cmModePath + "javascript/javascript",',
        '                cmModePath + "htmlmixed/htmlmixed",',
        '                cmModePath + "gfm/gfm",',
        '                cmModePath + "http/http",',
        '                cmModePath + "go/go",', 
        '                cmModePath + "dart/dart",', 
        '                cmModePath + "coffeescript/coffeescript",',
        '                cmModePath + "nginx/nginx",',
        '                cmModePath + "python/python",', 
        '                cmModePath + "perl/perl",',
        '                cmModePath + "lua/lua",', 
        '                cmModePath + "r/r", ',
        '                cmModePath + "ruby/ruby", ',
        '                cmModePath + "rst/rst",',
        '                cmModePath + "smartymixed/smartymixed",', 
        '                cmModePath + "vb/vb",',
        '                cmModePath + "vbscript/vbscript",', 
        '                cmModePath + "velocity/velocity",',
        '                cmModePath + "xquery/xquery",',
        '                cmModePath + "yaml/yaml",',
        '                cmModePath + "erlang/erlang",', 
        '                cmModePath + "jade/jade",',
        '',
        '                cmAddonPath + "edit/trailingspace", ',
        '                cmAddonPath + "dialog/dialog", ',
        '                cmAddonPath + "search/searchcursor", ',
        '                cmAddonPath + "search/search", ',
        '                cmAddonPath + "scroll/annotatescrollbar", ', 
        '                cmAddonPath + "search/matchesonscrollbar", ',
        '                cmAddonPath + "display/placeholder", ',
        '                cmAddonPath + "edit/closetag", ',
        '                cmAddonPath + "fold/foldcode",',
        '                cmAddonPath + "fold/foldgutter",',
        '                cmAddonPath + "fold/indent-fold",',
        '                cmAddonPath + "fold/brace-fold",',
        '                cmAddonPath + "fold/xml-fold", ',
        '                cmAddonPath + "fold/markdown-fold",',
        '                cmAddonPath + "fold/comment-fold", ',
        '                cmAddonPath + "mode/overlay", ',
        '                cmAddonPath + "selection/active-line", ',
        '                cmAddonPath + "edit/closebrackets", ',
        '                cmAddonPath + "display/fullscreen",',
        '                cmAddonPath + "search/match-highlighter"',
        '            ];',
        '',
        '            define(codeMirrorModules, factory);'
    ].join("\r\n");
    
    var replaceText2 = [
        "if (typeof define == \"function\" && define.amd) {",
        "       $          = arguments[0];",
        "       marked     = arguments[1];",
        "       prettify   = arguments[2];",
        "       katex      = arguments[3];",
        "       Raphael    = arguments[4];",
        "       _          = arguments[5];",
        "       flowchart  = arguments[6];",
        "       CodeMirror = arguments[9];",
        "   }"
    ].join("\r\n");
    
    gulp.src("src/editormd.js")
        .pipe(rename({ suffix: ".amd" }))
        .pipe(gulp.dest('./'))
        .pipe(header(headerComment, {pkg : pkg, fileName : function(file) { 
            var name = file.path.split(file.base);
            return name[1].replace(/[\\\/]?/, "");
        }}))
        .pipe(gulp.dest("./"))
        .pipe(replace("/* Require.js define replace */", replaceText1))
        .pipe(gulp.dest('./'))
        .pipe(replace("/* Require.js assignment replace */", replaceText2))
        .pipe(gulp.dest('./'))
        .pipe(rename({ suffix: ".min" }))
        .pipe(uglify()) //{outSourceMap: true, sourceRoot: './'}
        .pipe(gulp.dest("./"))
        .pipe(header(headerMiniComment, {pkg : pkg, fileName : function(file) {
            var name = file.path.split(file.base + ( (os.platform() === "win32") ? "\\" : "/") );
            return name[1].replace(/[\\\/]?/, "");
        }}))
        .pipe(gulp.dest("./"))
        .pipe(notify({ message: "amd version task complete"}));
}); 
Example #27
0
gulp.task('serviceworker', function() {
  return gulp.src('./src/scripts/sw.js')
    .pipe(replace(/@VERSION@/g, version))
    .pipe(gulp.dest('./dist/scripts'));
});
Example #28
0
 .on( 'finish', function()
 {
     gulp.src('./dist/microbe.js')
         .pipe(replace(token, exportName))
         .pipe(gulp.dest('./dist/'));
 });
gulp.task('site:toc', function () {
  return gulp.src(['chapters/toc.md'])
    .pipe(markdown())
    .pipe(replace(/md/g, 'html'))
    .pipe(gulp.dest(TMP_DIR));
});
Example #30
0
gulp.task("replaceFile",function(){
	var url = getInputParams("fileurl"),output = url.substring(0,url.lastIndexOf("\/")+1);
	return gulp.src(url)
		.pipe(replace(/(\.(?:jpg|png|gif)\?)(\d+)/g,"$1"+Date.now()))
		.pipe(gulp.dest(output));
});