- /**
- Web site tools and generator via index.html template files
- <!-- MAIN_CONTENT_START -->
- ...
- <!-- MAIN_CONTENT_END -->
- @method compileHeaderFooter
- **/
-
- var gulp = require('gulp');
- var express = require('express');
- var gutil = require('gulp-util');
- var tsAbstractsGen = require('gulp-ts-abstracts-gen');
- var htmlmin = require('gulp-htmlmin');
- var browserSync = require('browser-sync');
- var runSequence = require('run-sequence');
- var shell = require('gulp-shell');
- var minifyHTML = require('gulp-minify-html');
- var rename = require("gulp-rename");
- var yuidoc = require("gulp-yuidoc");
- var sortJSON = require('gulp-sort-json');
- var Rsync = require('rsync');
-
- var server;
-
- var paths = [
- '_views/**/*.js',
- '_lang/**/*.js',
- '_models/**/*.js',
- '_controllers/**/*.js',
- '_templates/**/*.js',
- '_libs/**/*.js',
- './*.js'
- ];
-
- // generate abstract definition files on public and protected members/methods for
- // typescript files that have a bookmark of "//GULP_ABSTRACT"
- gulp.task('TS_CreateAbstracts', function (done) {
- gulp.src('./**/*.ts')
- .pipe(tsAbstractsGen('TSLiteModules')).on('error', handleError)
- .pipe(gulp.dest('./'));
- done()
- });
-
- gulp.task('release', function (done) {
- runSequence('_genDocs', '_uploadVersionFiles', '_uploadDocs', done);
- });
-
- gulp.task('releaseDocs', function (done) {
- runSequence('_genDocs', '_uploadDocs', done);
- });
-
- gulp.task('minifyHTML', function (done) {
- runSequence('_htmlMinify', '_htmlCopy', '_rsync', done);
- });
-
- gulp.task('liveServer', ['watchTmpDir'], function () {
- server = express();
- server.use(express.static('C:/msweb/studiolite/studiolite.html'));
- server.listen(8002);
- browserSync({
- proxy: 'localhost:8002'
- });
- });
-
-
- gulp.task('sample', function () {
- gulp.src('./_source/*.html')
- .pipe(gulplocaltranslate('5')).on('error', handleError)
- .pipe(gulp.dest('./_tmp/'))
- .pipe(reload());
- });
-
-
- gulp.task('_uploadDocs', shell.task([
- 'uploadDocs.bat'
- ], {cwd: './_utils'}));
-
-
- gulp.task('_uploadVersionFiles', shell.task([
- 'scp /cygdrive/c/msweb/studiolite/package.json Sean@digitalsignage.com:/var/www/sites/dynasite/htdocs/_studiolite-dev/',
- 'scp /cygdrive/c/msweb/studiolite/studiolite.html Sean@digitalsignage.com:/var/www/sites/dynasite/htdocs/_studiolite-dev/'
- ]));
-
- gulp.task('_genDocs', function () {
- var version = updVersion();
- gulp.src(paths)
- .pipe(yuidoc({
- project: {
- "name": "digitalsignage.com - open source docs",
- "description": "MediaSignage open source SignageStudio project",
- "version": version,
- "url": "http://digitalsignage.com",
- "logo": "http://www.digitalsignage.com/_images/logo.png",
- "themedir": "_doctheme/",
- "helpers": ["_doctheme/helpers/helpers.js"],
- "options": {
- "linkNatives": "true",
- "attributesEmit": "true",
- "paths": [
- "./lib"
- ],
- "outdir": "../_msdocs"
- }
- }
- }))
- .pipe(gulp.dest("../_msdocs"));
- });
-
-
- gulp.task('sortLocals', function () {
- gulp.src('_lang/*.json')
- .pipe(sortJSON())
- .pipe(gulp.dest("_lang/"))
- });
-
-
- function reload() {
- if (1) {
- return browserSync.reload({
- stream: true
- });
- }
- return gutil.noop();
- }
-
- function handleError(err) {
- console.log(err.toString());
- this.emit('end');
- }
-
- function updVersion() {
-
- var fs = require('fs');
- var path = require('path');
-
- var build = fs.readFileSync('./_utils/version.log', 'utf8');
- build = parseInt(build);
- build++;
- fs.writeFileSync('./_utils/version.log', build, 'utf8');
-
- // add build number to docs page
- var doc = fs.readFileSync('./_utils/yuidoc.json', 'utf8');
- var expression = new RegExp(/version": "([0-9]+).([0-9]+).([0-9]+)(.*)",/i);
- var v = doc.match(expression);
-
- var fullBuild = v[1] + '.' + v[2] + '.' + build;
- console.log(fullBuild);
- var rawVer = v[1] + '.' + v[2] + '.' + build;
- var version = 'version": "' + rawVer + '",';
- doc = doc.replace(/version": "[0-9]+.[0-9]+.[0-9]+",/g, version);
- fs.writeFileSync('./_utils/yuidoc.json', doc, 'utf8');
-
- // add build number to studiolite page
- var footer = '<span class="reshid hiddenElement" id="footerText"> MediaSignage Inc © | version :BUILD: </span>';
- footer = footer.replace(/:BUILD:/gi, fullBuild);
-
- var dashVersion = '<span class="dashboardBullets" data-localize="version"> Version :BUILD: </span>';
- dashVersion = dashVersion.replace(/:BUILD:/gi, fullBuild);
-
- var studiolite = fs.readFileSync('studiolite.html', 'utf8');
- studiolite = studiolite.replace(/<span class="reshid hiddenElement" id="footerText">(.*)<\/span>/gi, footer);
- studiolite = studiolite.replace(/<span class="dashboardBullets" data-localize="version">(.*)<\/span>/gi, dashVersion);
- fs.writeFileSync('studiolite.html', studiolite, 'utf8');
-
- // add build number to npm
- var git = fs.readFileSync('README.md', 'utf8');
- var gitver = 'current version: ' + fullBuild + ' dev-build';
- git = git.replace(/current version: (.*) dev-build/gi, gitver);
- fs.writeFileSync('README.md', git, 'utf8');
-
- // add build number to github
- var git = fs.readFileSync('package.json', 'utf8');
- var npmVer = '"version": "' + fullBuild + '",';
- git = git.replace(/"version": ".*",/gi, npmVer);
- fs.writeFileSync('package.json', git, 'utf8');
-
- return rawVer;
- }
-
- gulp.task('_htmlMinify', function () {
- return gulp.src('studiolite.html')
- .pipe(htmlmin({collapseWhitespace: true}))
- .pipe(gulp.dest('temp/tmp_studiolite.html'))
- });
-
- gulp.task('_htmlCopy', function () {
- return gulp.src("temp/tmp_studiolite.html")
- .pipe(rename("studiolite.html"))
- .pipe(gulp.dest("./"));
- });
-
- gulp.task('_rsync', function () {
- var rsync = Rsync.build({
- source: '/cygdrive/c/msweb/studiolite/',
- destination: 'Sean@digitalsignage.com:/var/www/sites/dynasite/htdocs/_studiolite-dev/',
- exclude: ['*.bat', '*.iml', '.gitignore', 'gulpfile.js', '.git', '.idea/', '_common/', '_doctheme/', '_assets/', '_utils/', '*node_modules', '*SignageStudio/', '*Spotify/']
- });
- rsync.set('progress');
- rsync.flags('avz');
- console.log('running the command ' + rsync.command());
- rsync.output(
- function (data) {
- console.log('sync: ' + data);
- }, function (data) {
- console.log('sync: ' + data);
- }
- );
- rsync.execute(function (error, stdout, stderr) {
- console.log('completed ' + error + ' ' + stdout + ' ' + stderr)
- });
- });
-
-