2014-04-07 11:31:13 -07:00
|
|
|
module.exports = function(grunt) {
|
|
|
|
|
2014-09-24 08:34:29 -07:00
|
|
|
require('load-grunt-tasks')(grunt);
|
2014-04-07 11:31:13 -07:00
|
|
|
|
|
|
|
// Project Configuration
|
|
|
|
grunt.initConfig({
|
2014-09-19 13:22:05 -07:00
|
|
|
release: {
|
|
|
|
options: {
|
|
|
|
bump: true,
|
|
|
|
file: 'package.json',
|
|
|
|
add: true,
|
|
|
|
commit: true,
|
|
|
|
tag: true,
|
|
|
|
push: true,
|
|
|
|
pushTags: true,
|
|
|
|
npm: false,
|
|
|
|
npmtag: true,
|
|
|
|
tagName: 'v<%= version %>',
|
|
|
|
commitMessage: 'New release v<%= version %>',
|
|
|
|
tagMessage: 'Version <%= version %>',
|
2014-09-23 11:24:57 -07:00
|
|
|
github: {
|
2014-09-19 13:22:05 -07:00
|
|
|
repo: 'bitpay/copay',
|
2014-09-24 21:58:27 -07:00
|
|
|
usernameVar: 'GITHUB_USERNAME', //ENVIRONMENT VARIABLE that contains Github username
|
2014-09-19 13:22:05 -07:00
|
|
|
passwordVar: 'GITHUB_PASSWORD' //ENVIRONMENT VARIABLE that contains Github password
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
2014-12-30 07:19:16 -08:00
|
|
|
exec: {
|
2014-08-21 12:07:25 -07:00
|
|
|
prod: {
|
2015-01-05 10:20:00 -08:00
|
|
|
command: 'node ./util/build.js'
|
2014-08-21 12:07:25 -07:00
|
|
|
},
|
|
|
|
dev: {
|
|
|
|
command: 'node ./util/build.js -d'
|
2014-04-07 11:31:13 -07:00
|
|
|
}
|
|
|
|
},
|
|
|
|
watch: {
|
2014-08-21 12:07:25 -07:00
|
|
|
options: {
|
|
|
|
dateFormat: function(time) {
|
|
|
|
grunt.log.writeln('The watch finished in ' + time + 'ms at ' + (new Date()).toString());
|
|
|
|
grunt.log.writeln('Waiting for more changes...');
|
|
|
|
},
|
|
|
|
},
|
2014-04-07 11:31:13 -07:00
|
|
|
readme: {
|
|
|
|
files: ['README.md'],
|
|
|
|
tasks: ['markdown']
|
|
|
|
},
|
|
|
|
scripts: {
|
2014-08-21 12:07:25 -07:00
|
|
|
files: [
|
2014-09-02 21:25:08 -07:00
|
|
|
'js/models/*.js',
|
2014-10-24 05:36:28 -07:00
|
|
|
'js/util/*.js',
|
2014-10-24 08:24:44 -07:00
|
|
|
'js/plugins/*.js',
|
2014-10-06 12:51:40 -07:00
|
|
|
'js/*.js',
|
2014-10-16 13:36:17 -07:00
|
|
|
'!js/copayBundle.js',
|
|
|
|
'!js/copayMain.js'
|
2014-08-21 12:07:25 -07:00
|
|
|
],
|
2015-01-05 05:57:44 -08:00
|
|
|
tasks: ['exec:dev']
|
2014-04-07 11:31:13 -07:00
|
|
|
},
|
2014-08-21 12:07:25 -07:00
|
|
|
css: {
|
|
|
|
files: ['css/src/*.css'],
|
2014-12-11 11:07:43 -08:00
|
|
|
tasks: ['cssmin:desktop']
|
2014-08-21 12:49:04 -07:00
|
|
|
},
|
|
|
|
main: {
|
|
|
|
files: [
|
2014-09-11 12:09:45 -07:00
|
|
|
'js/init.js',
|
2014-09-08 11:42:55 -07:00
|
|
|
'js/app.js',
|
|
|
|
'js/directives.js',
|
|
|
|
'js/filters.js',
|
|
|
|
'js/routes.js',
|
|
|
|
'js/services/*.js',
|
2014-08-21 12:49:04 -07:00
|
|
|
'js/controllers/*.js'
|
|
|
|
],
|
|
|
|
tasks: ['concat:main']
|
2014-09-11 12:09:45 -07:00
|
|
|
},
|
|
|
|
config: {
|
|
|
|
files: ['config.js'],
|
2015-01-05 10:12:54 -08:00
|
|
|
tasks: ['exec:dev', 'concat:main']
|
2014-10-27 20:31:30 -07:00
|
|
|
},
|
|
|
|
test: {
|
|
|
|
files: ['test/**/*.js'],
|
|
|
|
tasks: ['mochaTest']
|
2014-08-21 12:07:25 -07:00
|
|
|
}
|
2014-04-07 11:31:13 -07:00
|
|
|
},
|
|
|
|
mochaTest: {
|
2014-09-24 21:58:27 -07:00
|
|
|
tests: {
|
|
|
|
options: {
|
2014-10-01 14:02:17 -07:00
|
|
|
require: 'setup/node.js',
|
2014-09-24 21:58:27 -07:00
|
|
|
reporter: 'spec',
|
|
|
|
mocha: require('mocha')
|
|
|
|
},
|
|
|
|
src: [
|
2014-10-01 14:02:17 -07:00
|
|
|
'test/*.js',
|
2014-09-24 21:58:27 -07:00
|
|
|
]
|
|
|
|
}
|
2014-04-07 11:31:13 -07:00
|
|
|
},
|
|
|
|
markdown: {
|
|
|
|
all: {
|
|
|
|
files: [{
|
|
|
|
expand: true,
|
|
|
|
src: 'README.md',
|
|
|
|
dest: '.',
|
|
|
|
ext: '.html'
|
|
|
|
}]
|
|
|
|
}
|
2014-08-21 12:07:25 -07:00
|
|
|
},
|
|
|
|
concat: {
|
|
|
|
vendors: {
|
|
|
|
src: [
|
|
|
|
'lib/moment/min/moment.min.js',
|
|
|
|
'lib/qrcode-generator/js/qrcode.js',
|
2014-10-25 15:57:12 -07:00
|
|
|
'lib/lodash/dist/lodash.js',
|
2014-08-21 12:07:25 -07:00
|
|
|
'lib/bitcore.js',
|
|
|
|
'lib/file-saver/FileSaver.js',
|
|
|
|
'lib/socket.io-client/socket.io.js',
|
|
|
|
'lib/sjcl.js',
|
2014-11-19 20:06:30 -08:00
|
|
|
'lib/qrcode-decoder-js/lib/qrcode-decoder.min.js'
|
2014-08-21 12:07:25 -07:00
|
|
|
],
|
|
|
|
dest: 'lib/vendors.js'
|
|
|
|
},
|
|
|
|
angular: {
|
|
|
|
src: [
|
|
|
|
'lib/angular/angular.min.js',
|
|
|
|
'lib/angular-route/angular-route.min.js',
|
|
|
|
'lib/angular-moment/angular-moment.js',
|
|
|
|
'lib/angular-qrcode/qrcode.js',
|
|
|
|
'lib/ng-idle/angular-idle.min.js',
|
|
|
|
'lib/angular-foundation/mm-foundation.min.js',
|
2014-09-05 12:56:47 -07:00
|
|
|
'lib/angular-foundation/mm-foundation-tpls.min.js',
|
2014-09-12 11:29:20 -07:00
|
|
|
'lib/angular-gettext/dist/angular-gettext.min.js',
|
2014-11-11 11:53:30 -08:00
|
|
|
'lib/angular-load/angular-load.min.js',
|
|
|
|
'lib/angular-gravatar/build/md5.min.js',
|
2014-11-22 19:33:57 -08:00
|
|
|
'lib/angular-gravatar/build/angular-gravatar.min.js',
|
|
|
|
'lib/angular-touch/angular-touch.min.js'
|
2014-09-17 09:03:12 -07:00
|
|
|
// If you add libs here, remember to add it too to karma.conf
|
2014-08-21 12:07:25 -07:00
|
|
|
],
|
|
|
|
dest: 'lib/angularjs-all.js'
|
|
|
|
},
|
|
|
|
main: {
|
|
|
|
src: [
|
2014-09-08 11:42:55 -07:00
|
|
|
'js/app.js',
|
|
|
|
'js/directives.js',
|
|
|
|
'js/filters.js',
|
|
|
|
'js/routes.js',
|
|
|
|
'js/services/*.js',
|
2014-08-27 16:05:30 -07:00
|
|
|
'js/controllers/*.js',
|
2014-09-05 12:56:47 -07:00
|
|
|
'js/translations.js',
|
2014-09-01 11:40:31 -07:00
|
|
|
'js/init.js',
|
2014-08-21 12:07:25 -07:00
|
|
|
],
|
|
|
|
dest: 'js/copayMain.js'
|
|
|
|
}
|
|
|
|
},
|
|
|
|
cssmin: {
|
2014-12-11 11:07:43 -08:00
|
|
|
desktop: {
|
2014-08-21 12:07:25 -07:00
|
|
|
files: {
|
|
|
|
'css/copay.min.css': ['css/src/*.css'],
|
2014-08-21 12:49:04 -07:00
|
|
|
}
|
|
|
|
},
|
2014-12-11 11:07:43 -08:00
|
|
|
mobile: {
|
|
|
|
files: {
|
|
|
|
'css/copay.min.css': ['css/src/*.css', '!css/src/desktop.css', '!css/src/animation.css'],
|
|
|
|
}
|
|
|
|
},
|
2014-08-21 12:49:04 -07:00
|
|
|
vendors: {
|
|
|
|
files: {
|
2014-12-16 12:21:37 -08:00
|
|
|
'css/vendors.min.css': ['css/foundation.min.css', 'css/foundation-icons.css']
|
2014-08-21 12:07:25 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
uglify: {
|
|
|
|
options: {
|
|
|
|
mangle: false
|
|
|
|
},
|
|
|
|
prod: {
|
|
|
|
files: {
|
2014-08-27 16:05:30 -07:00
|
|
|
'js/copayMain.js': ['js/copayMain.js'],
|
|
|
|
'lib/angularjs-all.js': ['lib/angularjs-all.js'],
|
|
|
|
'lib/vendors.js': ['lib/vendors.js']
|
2014-08-21 12:07:25 -07:00
|
|
|
}
|
|
|
|
}
|
2014-09-05 12:56:47 -07:00
|
|
|
},
|
|
|
|
nggettext_extract: {
|
|
|
|
pot: {
|
|
|
|
files: {
|
|
|
|
'po/template.pot': ['index.html', 'views/*.html', 'views/**/*.html']
|
|
|
|
}
|
|
|
|
},
|
|
|
|
},
|
|
|
|
nggettext_compile: {
|
|
|
|
all: {
|
|
|
|
options: {
|
|
|
|
module: 'copayApp'
|
|
|
|
},
|
|
|
|
files: {
|
|
|
|
'js/translations.js': ['po/*.po']
|
|
|
|
}
|
|
|
|
},
|
2014-09-08 11:42:55 -07:00
|
|
|
},
|
2014-11-22 12:36:19 -08:00
|
|
|
copy: {
|
|
|
|
dist: {
|
|
|
|
files: [
|
|
|
|
{
|
|
|
|
src: [
|
|
|
|
'index.html',
|
|
|
|
'init.js',
|
|
|
|
'config.js',
|
2014-11-25 12:40:40 -08:00
|
|
|
'popup.html',
|
2014-11-22 12:36:19 -08:00
|
|
|
'css/vendors.min.css',
|
|
|
|
'css/copay.min.css',
|
|
|
|
'js/copayBundle.js',
|
|
|
|
'js/copayMain.js',
|
|
|
|
'lib/vendors.js',
|
|
|
|
'lib/angularjs-all.js',
|
|
|
|
'font/**',
|
|
|
|
'img/**',
|
|
|
|
'sound/**',
|
|
|
|
'views/**'
|
|
|
|
],
|
|
|
|
dest: 'dist/web/'
|
|
|
|
}
|
|
|
|
],
|
|
|
|
},
|
|
|
|
},
|
2014-09-08 11:42:55 -07:00
|
|
|
jsdoc: {
|
2014-09-23 11:24:57 -07:00
|
|
|
dist: {
|
2014-10-24 08:24:44 -07:00
|
|
|
src: ['js/models/*.js', 'js/plugins/*.js'],
|
2014-09-08 11:42:55 -07:00
|
|
|
options: {
|
|
|
|
destination: 'doc',
|
|
|
|
configure: 'jsdoc.conf.json',
|
|
|
|
template: './node_modules/grunt-jsdoc/node_modules/ink-docstrap/template',
|
|
|
|
theme: 'flatly'
|
|
|
|
}
|
|
|
|
}
|
2014-04-07 11:31:13 -07:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2014-09-08 11:42:55 -07:00
|
|
|
|
2014-12-11 11:07:43 -08:00
|
|
|
grunt.registerTask('default', [
|
2014-12-30 07:19:16 -08:00
|
|
|
'exec:dev', 'nggettext_compile', 'concat', 'cssmin:desktop', 'cssmin:vendors'
|
2014-12-11 11:07:43 -08:00
|
|
|
]);
|
|
|
|
grunt.registerTask('mobile', [
|
2014-12-30 07:19:16 -08:00
|
|
|
'exec:dev', 'nggettext_compile', 'concat', 'cssmin:mobile', 'cssmin:vendors'
|
2014-12-11 11:07:43 -08:00
|
|
|
]);
|
|
|
|
grunt.registerTask('dist', [
|
2014-12-30 07:19:16 -08:00
|
|
|
'exec:prod', 'nggettext_compile', 'concat', 'cssmin:desktop', 'cssmin:vendors', 'uglify', 'copy:dist'
|
2014-12-11 11:07:43 -08:00
|
|
|
]);
|
|
|
|
grunt.registerTask('dist-dbg', [
|
2014-12-30 07:19:16 -08:00
|
|
|
'exec:prod', 'nggettext_compile', 'concat', 'cssmin:desktop', 'cssmin:vendors', 'copy:dist'
|
2014-12-11 11:07:43 -08:00
|
|
|
]);
|
|
|
|
grunt.registerTask('dist-mobile', [
|
2014-12-30 07:19:16 -08:00
|
|
|
'exec:prod', 'nggettext_compile', 'concat', 'cssmin:mobile', 'cssmin:vendors', 'uglify', 'copy:dist'
|
2014-12-11 11:07:43 -08:00
|
|
|
]);
|
|
|
|
grunt.registerTask('dist-mobile-dbg', [
|
2014-12-30 07:19:16 -08:00
|
|
|
'exec:dev', 'nggettext_compile', 'concat', 'cssmin:mobile', 'cssmin:vendors', 'copy:dist'
|
2014-12-11 11:07:43 -08:00
|
|
|
]);
|
|
|
|
grunt.registerTask('prod', [
|
2014-12-30 07:19:16 -08:00
|
|
|
'exec:prod', 'nggettext_compile', 'concat', 'cssmin:desktop', 'cssmin:vendors', 'uglify'
|
2014-12-11 11:07:43 -08:00
|
|
|
]);
|
2014-09-05 12:56:47 -07:00
|
|
|
grunt.registerTask('translate', ['nggettext_extract']);
|
2014-09-10 17:38:30 -07:00
|
|
|
grunt.registerTask('docs', ['jsdoc']);
|
2014-04-07 11:31:13 -07:00
|
|
|
};
|