diff --git a/.gitignore b/.gitignore index 70537cd028..39b72d1b81 100644 --- a/.gitignore +++ b/.gitignore @@ -9,5 +9,6 @@ webfonts/ *.pem *.zip build/ +build.safariextension/ package-lock.json coverage/ diff --git a/gulpfile.js b/gulpfile.js index 240c365413..580bb7b86a 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -20,11 +20,22 @@ const paths = { cssDir: './src/popup/css/' }; -const fontsFilter = [ - '!build/popup/fonts/*', - 'build/popup/fonts/Open_Sans*.woff', - 'build/popup/fonts/fontawesome*.woff' -]; +const filters = { + fonts: [ + '!build/popup/fonts/*', + 'build/popup/fonts/Open_Sans*.woff', + 'build/popup/fonts/fontawesome*.woff' + ], + safari: [ + '!build/Info.plist' + ], + notSafari: [ + '!build/manifest.json' + ], + notEdge: [ + '!build/edge/**/*' + ] +}; function buildString() { var build = ''; @@ -40,7 +51,7 @@ function distFileName(browserName, ext) { function dist(browserName, manifest) { return gulp.src(paths.build + '**/*') - .pipe(filter(['**', '!build/edge/**/*'].concat(fontsFilter))) + .pipe(filter(['**'].concat(filters.notEdge).concat(filters.fonts).concat(filters.safari))) .pipe(gulpif('popup/index.html', replace('__BROWSER__', browserName))) .pipe(gulpif('manifest.json', jeditor(manifest))) .pipe(zip(distFileName(browserName, 'zip'))) @@ -97,7 +108,7 @@ function edgeCopyBuild(source, dest) { return new Promise((resolve, reject) => { gulp.src(source) .on('error', reject) - .pipe(filter(['**'].concat(fontsFilter))) + .pipe(filter(['**'].concat(filters.fonts).concat(filters.safari))) .pipe(gulpif('popup/index.html', replace('__BROWSER__', 'edge'))) .pipe(gulpif('manifest.json', jeditor((manifest) => { delete manifest.applications; @@ -148,6 +159,28 @@ gulp.task('ci:coverage', (cb) => { .pipe(gulp.dest(paths.coverage)); }); +gulp.task('safari:build', (cb) => { + const buildPath = './build.safariextension/'; + + return del([buildPath + '**/*']) + .then(() => safariMoveBuild(paths.build + '**/*', buildPath)) + .then(() => { + return cb; + }, () => { + return cb; + }); +}); + +function safariMoveBuild(source, dest) { + return new Promise((resolve, reject) => { + gulp.src(source) + .on('error', reject) + .pipe(filter(['**'].concat(filters.notEdge).concat(filters.fonts).concat(filters.notSafari))) + .pipe(gulp.dest(dest)) + .on('end', resolve); + }); +} + // LEGACY CODE! gulp.task('lint', () => { diff --git a/webpack.common.js b/webpack.common.js index 047b38d1ce..5a69674f05 100644 --- a/webpack.common.js +++ b/webpack.common.js @@ -96,6 +96,7 @@ module.exports = { }), new CopyWebpackPlugin([ './src/manifest.json', + './src/Info.plist', { from: './src/_locales', to: '_locales' }, { from: './src/edge', to: 'edge' }, { from: './src/images', to: 'images' },