15 changed files with 257 additions and 82 deletions
@ -1,10 +1,11 @@ |
|||||||
.DS_Store |
.DS_Store |
||||||
.idea |
.idea |
||||||
|
*.sublime-workspace |
||||||
|
|
||||||
# Node.js package manager |
# Node.js package manager |
||||||
/node_modules |
node_modules |
||||||
/npm-debug.log |
npm-debug.log |
||||||
dist |
dist |
||||||
package_dist |
releases |
||||||
webogram*.zip |
webogram*.zip |
||||||
*.sublime-workspace |
app/js/templates.js |
@ -0,0 +1,123 @@ |
|||||||
|
var gulp = require('gulp'); |
||||||
|
var es = require('event-stream'); |
||||||
|
var pj = require('./package.json'); |
||||||
|
var $ = require('gulp-load-plugins')(); |
||||||
|
var concat = require('gulp-concat'); |
||||||
|
|
||||||
|
|
||||||
|
// The generated file is being created at src
|
||||||
|
// so it can be fetched by usemin.
|
||||||
|
gulp.task('templates', function() { |
||||||
|
return gulp.src('app/partials/*.html') |
||||||
|
.pipe($.angularTemplatecache('templates.js', { |
||||||
|
root: 'partials', |
||||||
|
module: 'myApp.templates', |
||||||
|
standalone: true |
||||||
|
})) |
||||||
|
.pipe(gulp.dest('app/js')); |
||||||
|
}); |
||||||
|
|
||||||
|
gulp.task('usemin', ['templates', 'enable-production'], function() { |
||||||
|
return gulp.src('app/index.html') |
||||||
|
.pipe($.usemin({ |
||||||
|
html: [$.minifyHtml({empty: true})], |
||||||
|
js: ['concat', $.rev()], |
||||||
|
css: [$.minifyCss(), 'concat'] |
||||||
|
})) |
||||||
|
.pipe(gulp.dest('dist')); |
||||||
|
}); |
||||||
|
|
||||||
|
gulp.task('copy', function() { |
||||||
|
return es.concat( |
||||||
|
gulp.src(['app/favicon.ico', 'app/favicon_unread.ico', 'app/manifest.webapp', 'app/manifest.json', 'app/**/*worker.js']) |
||||||
|
.pipe(gulp.dest('dist')), |
||||||
|
gulp.src(['app/img/**/*', '!app/img/screenshot*']) |
||||||
|
.pipe(gulp.dest('dist/img')), |
||||||
|
gulp.src('app/vendor/console-polyfill/console-polyfill.js') |
||||||
|
.pipe(gulp.dest('dist/vendor/console-polyfill')), |
||||||
|
gulp.src('app/js/lib/mtproto.js') |
||||||
|
.pipe(gulp.dest('dist/js/lib')), |
||||||
|
gulp.src('app/js/lib/config.js') |
||||||
|
.pipe(gulp.dest('dist/js/lib')), |
||||||
|
gulp.src('app/vendor/jsbn/jsbn_combined.js') |
||||||
|
.pipe(gulp.dest('dist/vendor/jsbn')), |
||||||
|
gulp.src('app/vendor/cryptoJS/crypto.js') |
||||||
|
.pipe(gulp.dest('dist/vendor/cryptoJS')) |
||||||
|
); |
||||||
|
}); |
||||||
|
|
||||||
|
gulp.task('compress-dist', ['add-csp'], function() { |
||||||
|
return gulp.src('dist/**/*') |
||||||
|
.pipe($.zip('webogram_v' + pj.version + '.zip')) |
||||||
|
.pipe(gulp.dest('releases')); |
||||||
|
}); |
||||||
|
|
||||||
|
gulp.task('cleanup-dist', ['compress-dist'], function() { |
||||||
|
return gulp.src(['releases/**/*', '!releases/*.zip']).pipe($.clean()); |
||||||
|
}); |
||||||
|
|
||||||
|
gulp.task('add-csp', ['build'], function() { |
||||||
|
return gulp.src('dist/index.html') |
||||||
|
.pipe($.replace('<html lang=en ng-app=myApp>', '<html lang=en ng-app=myApp ng-csp="">')) |
||||||
|
.pipe(gulp.dest('dist')); |
||||||
|
}); |
||||||
|
|
||||||
|
gulp.task('update-version-manifests', function() { |
||||||
|
return gulp.src(['app/manifest.webapp', 'app/manifest.json']) |
||||||
|
.pipe($.replace(/"version": ".*",/, '"version": "' + pj.version + '",')) |
||||||
|
.pipe(gulp.dest('app')); |
||||||
|
}); |
||||||
|
|
||||||
|
gulp.task('update-version-settings', function() { |
||||||
|
return gulp.src('app/partials/settings_modal.html') |
||||||
|
.pipe($.replace(/<span class="settings_version">alpha .*<\/span>/, '<span class="settings_version">alpha ' + pj.version + '<\/span>')) |
||||||
|
.pipe(gulp.dest('app/partials')); |
||||||
|
}); |
||||||
|
|
||||||
|
gulp.task('update-version-comments', function() { |
||||||
|
return gulp.src('app/**/*.js') |
||||||
|
.pipe($.replace(/Webogram v[0-9.]*/, 'Webogram v' + pj.version)) |
||||||
|
.pipe(gulp.dest('app')); |
||||||
|
}); |
||||||
|
|
||||||
|
|
||||||
|
gulp.task('enable-production', function() { |
||||||
|
return es.concat( |
||||||
|
gulp.src('app/**/*.html') |
||||||
|
.pipe($.replace(/PRODUCTION_ONLY_BEGIN/g, 'PRODUCTION_ONLY_BEGIN-->')) |
||||||
|
.pipe($.replace(/PRODUCTION_ONLY_END/, '<!--PRODUCTION_ONLY_END')) |
||||||
|
.pipe(gulp.dest('app')), |
||||||
|
gulp.src('app/**/*.js') |
||||||
|
.pipe($.replace(/PRODUCTION_ONLY_BEGIN(\*\/)?/g, 'PRODUCTION_ONLY_BEGIN*/')) |
||||||
|
.pipe($.replace(/(\/\*)?PRODUCTION_ONLY_END/g, '/*PRODUCTION_ONLY_END')) |
||||||
|
.pipe(gulp.dest('app')) |
||||||
|
); |
||||||
|
}); |
||||||
|
|
||||||
|
gulp.task('disable-production', function() { |
||||||
|
return es.concat( |
||||||
|
gulp.src('app/index.html') |
||||||
|
.pipe($.replace(/PRODUCTION_ONLY_BEGIN-->/g, 'PRODUCTION_ONLY_BEGIN')) |
||||||
|
.pipe($.replace(/<!--PRODUCTION_ONLY_END/g, 'PRODUCTION_ONLY_END')) |
||||||
|
.pipe(gulp.dest('app')), |
||||||
|
gulp.src('app/**/*.js') |
||||||
|
.pipe($.replace(/PRODUCTION_ONLY_BEGIN(\*\/)?/g, 'PRODUCTION_ONLY_BEGIN')) |
||||||
|
.pipe($.replace(/(\/\*)?PRODUCTION_ONLY_END/g, 'PRODUCTION_ONLY_END')) |
||||||
|
.pipe(gulp.dest('app')) |
||||||
|
); |
||||||
|
}); |
||||||
|
|
||||||
|
|
||||||
|
gulp.task('clean', function() { |
||||||
|
return gulp.src(['dist/*', '!dist/.git']).pipe($.clean()); |
||||||
|
}); |
||||||
|
|
||||||
|
gulp.task('bump', ['update-version-manifests', 'update-version-settings', 'update-version-comments']); |
||||||
|
gulp.task('build', ['templates', 'usemin', 'copy'], function () { |
||||||
|
gulp.start('disable-production'); |
||||||
|
}); |
||||||
|
gulp.task('package', ['cleanup-dist']); |
||||||
|
|
||||||
|
gulp.task('default', ['clean'], function() { |
||||||
|
gulp.start('build'); |
||||||
|
}); |
@ -0,0 +1,36 @@ |
|||||||
|
{ |
||||||
|
"name": "webogram", |
||||||
|
"version": "0.0.19", |
||||||
|
"description": "UNOFFICIAL Telegram Web App.", |
||||||
|
"main": "server.js", |
||||||
|
"scripts": { |
||||||
|
"start": "node server.js" |
||||||
|
}, |
||||||
|
"repository": { |
||||||
|
"type": "git", |
||||||
|
"url": "https://github.com/zhukov/webogram.git" |
||||||
|
}, |
||||||
|
"author": "zhukov", |
||||||
|
"license": "GPL", |
||||||
|
"bugs": { |
||||||
|
"url": "https://github.com/zhukov/webogram/issues" |
||||||
|
}, |
||||||
|
"homepage": "http://zhukov.github.io/webogram", |
||||||
|
"devDependencies": { |
||||||
|
"gulp": "~3.5.5", |
||||||
|
"gulp-angular-templatecache": "^1.1.0", |
||||||
|
"gulp-load-plugins": "^0.4.0", |
||||||
|
"gulp-usemin": "^0.3.3", |
||||||
|
"gulp-uglify": "^0.2.1", |
||||||
|
"gulp-rev": "^0.3.0", |
||||||
|
"gulp-minify-css": "^0.3.0", |
||||||
|
"gulp-minify-html": "^0.1.1", |
||||||
|
"gulp-imagemin": "^0.1.5", |
||||||
|
"gulp-clean": "^0.2.4", |
||||||
|
"gulp-replace": "^0.2.0", |
||||||
|
"gulp-concat": "^2.1.7", |
||||||
|
"gulp-grep-stream": "0.0.2", |
||||||
|
"event-stream": "^3.1.0", |
||||||
|
"gulp-zip": "^0.1.2" |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue