Skip to content

Commit

Permalink
Merge pull request mozilla#8288 from yurydelendik/mv-make-web
Browse files Browse the repository at this point in the history
Moves 'web' target to the gulpfile.
  • Loading branch information
timvandermeij authored Apr 14, 2017
2 parents 36ef726 + 0a849e8 commit 2099a50
Show file tree
Hide file tree
Showing 3 changed files with 77 additions and 67 deletions.
78 changes: 73 additions & 5 deletions gulpfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,14 +30,15 @@ var runSequence = require('run-sequence');
var stream = require('stream');
var exec = require('child_process').exec;
var spawn = require('child_process').spawn;
var spawnSync = require('child_process').spawnSync;
var streamqueue = require('streamqueue');
var merge = require('merge-stream');
var zip = require('gulp-zip');
var webpack2 = require('webpack');
var webpackStream = require('webpack-stream');
var vinyl = require('vinyl-fs');

var BUILD_DIR = 'build/';
var JSDOC_DIR = 'jsdoc/';
var L10N_DIR = 'l10n/';
var TEST_DIR = 'test/';
var EXTENSION_SRC_DIR = 'extensions/';
Expand All @@ -48,11 +49,16 @@ var COMPONENTS_DIR = BUILD_DIR + 'components/';
var SINGLE_FILE_DIR = BUILD_DIR + 'singlefile/';
var MINIFIED_DIR = BUILD_DIR + 'minified/';
var FIREFOX_BUILD_DIR = BUILD_DIR + 'firefox/';
var CHROME_BUILD_DIR = BUILD_DIR + 'chromium/';
var JSDOC_BUILD_DIR = BUILD_DIR + 'jsdoc/';
var GH_PAGES_DIR = BUILD_DIR + 'gh-pages/';
var COMMON_WEB_FILES = [
'web/images/*.{png,svg,gif,cur}',
'web/debugger.js'
];

var REPO = 'git@github.com:mozilla/pdf.js.git';

var builder = require('./external/builder/builder.js');

var CONFIG_FILE = 'pdfjs.config';
Expand Down Expand Up @@ -287,6 +293,12 @@ function checkDir(path) {
}
}

function replaceInFile(path, find, replacement) {
var content = fs.readFileSync(path).toString();
content = content.replace(find, replacement);
fs.writeFileSync(path, content);
}

function getTempFile(prefix, suffix) {
mkdirp.sync(BUILD_DIR + 'tmp/');
var bytes = require('crypto').randomBytes(6).toString('hex');
Expand Down Expand Up @@ -926,10 +938,9 @@ gulp.task('jsdoc', function (done) {
'src/core/annotation.js'
];

var directory = BUILD_DIR + JSDOC_DIR;
rimraf(directory, function () {
mkdirp(directory, function () {
var command = '"node_modules/.bin/jsdoc" -d ' + directory + ' ' +
rimraf(JSDOC_BUILD_DIR, function () {
mkdirp(JSDOC_BUILD_DIR, function () {
var command = '"node_modules/.bin/jsdoc" -d ' + JSDOC_BUILD_DIR + ' ' +
JSDOC_FILES.join(' ');
exec(command, done);
});
Expand Down Expand Up @@ -1161,6 +1172,63 @@ gulp.task('importl10n', function(done) {
locales.downloadL10n(L10N_DIR, done);
});

gulp.task('gh-pages-prepare', ['web-pre'], function () {
console.log();
console.log('### Creating web site');

rimraf.sync(GH_PAGES_DIR);

// 'vinyl' because web/viewer.html needs its BOM.
return merge([
vinyl.src(GENERIC_DIR + '**/*', {base: GENERIC_DIR, stripBOM: false})
.pipe(gulp.dest(GH_PAGES_DIR)),
gulp.src([FIREFOX_BUILD_DIR + '*.xpi',
FIREFOX_BUILD_DIR + '*.rdf'])
.pipe(gulp.dest(GH_PAGES_DIR + EXTENSION_SRC_DIR + 'firefox/')),
gulp.src(CHROME_BUILD_DIR + '*.crx')
.pipe(gulp.dest(GH_PAGES_DIR + EXTENSION_SRC_DIR + 'chromium/')),
gulp.src('test/features/**/*', {base: 'test/'})
.pipe(gulp.dest(GH_PAGES_DIR)),
gulp.src(JSDOC_BUILD_DIR + '**/*', {base: JSDOC_BUILD_DIR})
.pipe(gulp.dest(GH_PAGES_DIR + 'api/draft/')),
]);
});

gulp.task('wintersmith', ['gh-pages-prepare'], function (done) {
var wintersmith = require('wintersmith');
var env = wintersmith('docs/config.json');
env.build(GH_PAGES_DIR, function (error) {
if (error) {
return done(error);
}
replaceInFile(GH_PAGES_DIR + '/getting_started/index.html',
/STABLE_VERSION/g, config.stableVersion);
replaceInFile(GH_PAGES_DIR + '/getting_started/index.html',
/BETA_VERSION/g, config.betaVersion);
console.log('Done building with wintersmith.');
done();
});
});

gulp.task('gh-pages-git', ['gh-pages-prepare', 'wintersmith'], function () {
var VERSION = getVersionJSON().version;
var reason = process.env['PDFJS_UPDATE_REASON'];

spawnSync('git', ['init'], {cwd: GH_PAGES_DIR});
spawnSync('git', ['remote', 'add', 'origin', REPO], {cwd: GH_PAGES_DIR});
spawnSync('git', ['add', '-A'], {cwd: GH_PAGES_DIR});
spawnSync('git', [
'commit', '-am', 'gh-pages site created via gulpfile.js script',
'-m', 'PDF.js version ' + VERSION + (reason ? ' - ' + reason : '')
], {cwd: GH_PAGES_DIR});
spawnSync('git', ['branch', '-m', 'gh-pages'], {cwd: GH_PAGES_DIR});

console.log();
console.log('Website built in ' + GH_PAGES_DIR);
});

gulp.task('web', ['gh-pages-prepare', 'wintersmith', 'gh-pages-git']);

// Getting all shelljs registered tasks and register them with gulp
require('./make.js');

Expand Down
63 changes: 2 additions & 61 deletions make.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,24 +25,15 @@ try {

var fs = require('fs');

var CONFIG_FILE = 'pdfjs.config';
var config = JSON.parse(fs.readFileSync(CONFIG_FILE));

var ROOT_DIR = __dirname + '/', // absolute path to project's root
BUILD_DIR = 'build/',
SRC_DIR = 'src/',
FIREFOX_BUILD_DIR = BUILD_DIR + '/firefox/',
CHROME_BUILD_DIR = BUILD_DIR + '/chromium/',
JSDOC_DIR = BUILD_DIR + 'jsdoc',
EXTENSION_SRC_DIR = 'extensions/',
GH_PAGES_DIR = BUILD_DIR + 'gh-pages/',
GENERIC_DIR = BUILD_DIR + 'generic/',
MINIFIED_DIR = BUILD_DIR + 'minified/',
DIST_DIR = BUILD_DIR + 'dist/',
SINGLE_FILE_DIR = BUILD_DIR + 'singlefile/',
COMPONENTS_DIR = BUILD_DIR + 'components/',
LIB_DIR = BUILD_DIR + 'lib/',
REPO = 'git@github.com:mozilla/pdf.js.git';
LIB_DIR = BUILD_DIR + 'lib/';

function getCurrentVersion() {
// The 'build/version.json' file is created by 'buildnumber' task.
Expand Down Expand Up @@ -95,57 +86,7 @@ target.jsdoc = function() {
// into place.
//
target.web = function() {
execGulp('web-pre');

cd(ROOT_DIR);
echo();
echo('### Creating web site');

if (test('-d', GH_PAGES_DIR)) {
rm('-rf', GH_PAGES_DIR);
}

mkdir('-p', GH_PAGES_DIR + '/web');
mkdir('-p', GH_PAGES_DIR + '/web/images');
mkdir('-p', GH_PAGES_DIR + BUILD_DIR);
mkdir('-p', GH_PAGES_DIR + EXTENSION_SRC_DIR + '/firefox');
mkdir('-p', GH_PAGES_DIR + EXTENSION_SRC_DIR + '/chromium');
mkdir('-p', GH_PAGES_DIR + '/api/draft/');
mkdir('-p', GH_PAGES_DIR + '/examples/');

cp('-R', GENERIC_DIR + '/*', GH_PAGES_DIR);
cp(FIREFOX_BUILD_DIR + '/*.xpi', FIREFOX_BUILD_DIR + '/*.rdf',
GH_PAGES_DIR + EXTENSION_SRC_DIR + 'firefox/');
cp(CHROME_BUILD_DIR + '/*.crx', FIREFOX_BUILD_DIR + '/*.rdf',
GH_PAGES_DIR + EXTENSION_SRC_DIR + 'chromium/');
cp('-R', 'test/features', GH_PAGES_DIR);
cp('-R', JSDOC_DIR + '/*', GH_PAGES_DIR + '/api/draft/');

var wintersmith = require('wintersmith');
var env = wintersmith('docs/config.json');
env.build(GH_PAGES_DIR, function (error) {
if (error) {
throw error;
}
sed('-i', /STABLE_VERSION/g, config.stableVersion,
GH_PAGES_DIR + '/getting_started/index.html');
sed('-i', /BETA_VERSION/g, config.betaVersion,
GH_PAGES_DIR + '/getting_started/index.html');
echo('Done building with wintersmith.');

var VERSION = getCurrentVersion();
var reason = process.env['PDFJS_UPDATE_REASON'];
cd(GH_PAGES_DIR);
exec('git init');
exec('git remote add origin ' + REPO);
exec('git add -A');
exec('git commit -am "gh-pages site created via make.js script" -m ' +
'"PDF.js version ' + VERSION + (reason ? ' - ' + reason : '') + '"');
exec('git branch -m gh-pages');

echo();
echo('Website built in ' + GH_PAGES_DIR);
});
execGulp('web');
};

target.dist = function() {
Expand Down
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,9 @@
"streamqueue": "^1.1.1",
"systemjs": "^0.20.7",
"systemjs-plugin-babel": "0.0.21",
"typogr": "~0.6.5",
"typogr": "^0.6.6",
"uglify-js": "^2.6.1",
"vinyl-fs": "^2.4.4",
"webpack": "^2.2.1",
"webpack-stream": "^3.2.0",
"wintersmith": "^2.0.0",
Expand Down

0 comments on commit 2099a50

Please sign in to comment.