mirror of https://github.com/BTCPrivate/copay.git
224 lines
6.2 KiB
JavaScript
224 lines
6.2 KiB
JavaScript
module.exports = function(grunt) {
|
|
|
|
// Project Configuration
|
|
grunt.initConfig({
|
|
pkg: grunt.file.readJSON('package.json'),
|
|
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 %>',
|
|
github: {
|
|
repo: 'bitpay/copay',
|
|
usernameVar: 'GITHUB_USERNAME', //ENVIRONMENT VARIABLE that contains Github username
|
|
passwordVar: 'GITHUB_PASSWORD' //ENVIRONMENT VARIABLE that contains Github password
|
|
}
|
|
}
|
|
},
|
|
exec: {
|
|
version: {
|
|
command: 'node ./util/version.js'
|
|
},
|
|
clear: {
|
|
command: 'rm -Rf bower_components node_modules'
|
|
}
|
|
},
|
|
watch: {
|
|
options: {
|
|
dateFormat: function(time) {
|
|
grunt.log.writeln('The watch finished in ' + time + 'ms at ' + (new Date()).toString());
|
|
grunt.log.writeln('Waiting for more changes...');
|
|
},
|
|
},
|
|
readme: {
|
|
files: ['README.md'],
|
|
tasks: ['markdown']
|
|
},
|
|
css: {
|
|
files: ['src/css/*.css'],
|
|
tasks: ['concat:css']
|
|
},
|
|
main: {
|
|
files: [
|
|
'src/js/init.js',
|
|
'src/js/app.js',
|
|
'src/js/directives/*.js',
|
|
'src/js/filters/*.js',
|
|
'src/js/routes.js',
|
|
'src/js/services/*.js',
|
|
'src/js/models/*.js',
|
|
'src/js/controllers/*.js'
|
|
],
|
|
tasks: ['concat:js']
|
|
}
|
|
},
|
|
markdown: {
|
|
all: {
|
|
files: [{
|
|
expand: true,
|
|
src: 'README.md',
|
|
dest: './doc',
|
|
ext: '.html'
|
|
}]
|
|
}
|
|
},
|
|
concat: {
|
|
options: {
|
|
sourceMap: false,
|
|
sourceMapStyle: 'link' // embed, link, inline
|
|
},
|
|
angular: {
|
|
src: [
|
|
'bower_components/fastclick/lib/fastclick.js',
|
|
'bower_components/qrcode-generator/js/qrcode.js',
|
|
'bower_components/qrcode-decoder-js/lib/qrcode-decoder.js',
|
|
'bower_components/moment/min/moment-with-locales.js',
|
|
'bower_components/angular/angular.js',
|
|
'bower_components/angular-ui-router/release/angular-ui-router.js',
|
|
'bower_components/angular-foundation/mm-foundation.js',
|
|
'bower_components/angular-foundation/mm-foundation-tpls.js',
|
|
'bower_components/angular-animate/angular-animate.js',
|
|
'bower_components/angular-moment/angular-moment.js',
|
|
'bower_components/ng-lodash/build/ng-lodash.js',
|
|
'bower_components/angular-qrcode/qrcode.js',
|
|
'bower_components/angular-gettext/dist/angular-gettext.js',
|
|
'bower_components/angular-touch/angular-touch.js',
|
|
'bower_components/angular-bitcore-wallet-client/angular-bitcore-wallet-client.js',
|
|
'bower_components/angular-ui-switch/angular-ui-switch.js'
|
|
],
|
|
dest: 'public/lib/angular.js'
|
|
},
|
|
js: {
|
|
src: [
|
|
'src/js/app.js',
|
|
'src/js/routes.js',
|
|
'src/js/directives/*.js',
|
|
'src/js/filters/*.js',
|
|
'src/js/models/*.js',
|
|
'src/js/services/*.js',
|
|
'src/js/controllers/*.js',
|
|
'src/js/translations.js',
|
|
'src/js/version.js',
|
|
'src/js/init.js'
|
|
],
|
|
dest: 'public/js/copay.js'
|
|
},
|
|
css: {
|
|
src: ['src/css/*.css'],
|
|
dest: 'public/css/copay.css'
|
|
},
|
|
foundation: {
|
|
src: [
|
|
'bower_components/angular/angular-csp.css',
|
|
'bower_components/foundation/css/foundation.css',
|
|
'bower_components/animate.css/animate.css',
|
|
'bower_components/angular-ui-switch/angular-ui-switch.css'
|
|
],
|
|
dest: 'public/css/foundation.css',
|
|
}
|
|
},
|
|
cssmin: {
|
|
copay: {
|
|
files: {
|
|
'public/css/copay.css': ['src/css/*.css'],
|
|
}
|
|
},
|
|
foundation: {
|
|
files: {
|
|
'public/css/foundation.css': [
|
|
'bower_components/angular/angular-csp.css',
|
|
'bower_components/foundation/css/foundation.css',
|
|
'bower_components/animate.css/animate.css'
|
|
]
|
|
}
|
|
}
|
|
},
|
|
uglify: {
|
|
options: {
|
|
mangle: false
|
|
},
|
|
prod: {
|
|
files: {
|
|
'public/js/copay.js': ['public/js/copay.js'],
|
|
'public/lib/angular.js': ['public/lib/angular.js']
|
|
}
|
|
}
|
|
},
|
|
nggettext_extract: {
|
|
pot: {
|
|
files: {
|
|
'po/template.pot': ['public/index.html', 'public/views/*.html', 'public/views/**/*.html']
|
|
}
|
|
},
|
|
},
|
|
nggettext_compile: {
|
|
all: {
|
|
options: {
|
|
module: 'copayApp'
|
|
},
|
|
files: {
|
|
'src/js/translations.js': ['po/*.po']
|
|
}
|
|
},
|
|
},
|
|
copy: {
|
|
icons: {
|
|
expand: true,
|
|
flatten: true,
|
|
src: 'bower_components/foundation-icon-fonts/foundation-icons.*',
|
|
dest: 'public/icons/'
|
|
}
|
|
},
|
|
karma: {
|
|
unit: {
|
|
configFile: 'test/karma.conf.js'
|
|
},
|
|
prod: {
|
|
configFile: 'test/karma.conf.js',
|
|
singleRun: true
|
|
}
|
|
},
|
|
coveralls: {
|
|
options: {
|
|
debug: false,
|
|
coverageDir: 'coverage/report-lcov',
|
|
dryRun: true,
|
|
force: true,
|
|
recursive: false
|
|
}
|
|
}
|
|
});
|
|
|
|
grunt.loadNpmTasks('grunt-contrib-concat');
|
|
grunt.loadNpmTasks('grunt-contrib-copy');
|
|
grunt.loadNpmTasks('grunt-contrib-watch');
|
|
grunt.loadNpmTasks('grunt-contrib-uglify');
|
|
grunt.loadNpmTasks('grunt-contrib-cssmin');
|
|
grunt.loadNpmTasks('grunt-angular-gettext');
|
|
grunt.loadNpmTasks('grunt-markdown');
|
|
grunt.loadNpmTasks('grunt-release');
|
|
grunt.loadNpmTasks('grunt-exec');
|
|
grunt.loadNpmTasks('grunt-karma');
|
|
grunt.loadNpmTasks('grunt-karma-coveralls');
|
|
|
|
|
|
grunt.registerTask('default', [
|
|
'nggettext_compile', 'exec:version', 'concat', 'copy'
|
|
]);
|
|
grunt.registerTask('prod', [
|
|
'default', 'uglify'
|
|
]);
|
|
grunt.registerTask('translate', ['nggettext_extract']);
|
|
grunt.registerTask('test', ['karma:unit']);
|
|
grunt.registerTask('test-coveralls', ['karma:prod', 'coveralls']);
|
|
};
|