diff --git a/Gruntfile.js b/Gruntfile.js index 8a941f895..699653dde 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -242,10 +242,19 @@ module.exports = function(grunt) { }); }); + grunt.registerTask('getExpireTime', function() { + var gitinfo = grunt.config.get('gitinfo'); + var commited = gitinfo.local.branch.current.lastCommitTime; + var time = Date.parse(commited) + 1000 * 60 * 60 * 24 * 90; + grunt.file.write('config/local-production.json', + JSON.stringify({ buildExpiration: time }) + '\n'); + }); + grunt.registerTask('tx', ['exec:tx-pull', 'locale-patch']); grunt.registerTask('dev', ['default', 'connect', 'watch']); grunt.registerTask('test', ['jshint', 'jscs', 'connect', 'saucelabs-mocha']); grunt.registerTask('copy_dist', ['gitinfo', 'copy']); + grunt.registerTask('date', ['gitinfo', 'getExpireTime']); grunt.registerTask('default', ['concat', 'sass', 'copy_dist']); }; diff --git a/config/default.json b/config/default.json index 2091de0d9..bc80b74af 100644 --- a/config/default.json +++ b/config/default.json @@ -1,4 +1,5 @@ { "disableAutoUpdate": false, - "openDevTools": false + "openDevTools": false, + "buildExpiration": 0 } diff --git a/js/expire.js b/js/expire.js index 639aeae8e..4e5e2d0da 100644 --- a/js/expire.js +++ b/js/expire.js @@ -1,6 +1,12 @@ ;(function() { 'use strict'; var BUILD_EXPIRATION = 0; + try { + BUILD_EXPIRATION = parseInt(window.config.buildExpiration); + if (BUILD_EXPIRATION) { + console.log("Build expires: ", new Date(BUILD_EXPIRATION).toISOString()); + } + } catch (e) {} window.extension = window.extension || {}; diff --git a/main.js b/main.js index 6279a27b6..6650559ba 100644 --- a/main.js +++ b/main.js @@ -68,6 +68,7 @@ function createWindow () { query: { locale: locale, version: package_json.version, + buildExpiration: config.get('buildExpiration'), serverUrl: config.get('serverUrl'), NODE_ENV: process.env.NODE_ENV } diff --git a/package.json b/package.json index c74285ae7..f9ab2e358 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "test": "grunt test", "lint": "grunt jshint", "start": "electron .", - "dist": "build --em.environment=$NODE_ENV", + "dist": "grunt && build --em.environment=$NODE_ENV", "pack": "npm run dist -- --dir", "pack-staging": "NODE_ENV=staging npm run pack", "dist-staging": "NODE_ENV=staging npm run dist", @@ -74,6 +74,7 @@ "package.json", "config/default.json", "config/${env.NODE_ENV}.json", + "config/local-${env.NODE_ENV}.json", "background.html", "_locales/**", "protos/*",