mirror of
https://github.com/NaN-tic/sao-old.git
synced 2023-12-14 02:12:52 +01:00
165 lines
4.5 KiB
JavaScript
165 lines
4.5 KiB
JavaScript
module.exports = function(grunt) {
|
|
|
|
var _ = grunt.util._;
|
|
var locales = ["bg", "ca", "cs", "de", "es", "es_AR", "es_CO", "es_EC",
|
|
"es_MX", "fr", "hu", "it", "lo", "lt", "nl", "pt_BR", "ru", "sl", "zh_CN"];
|
|
var jsfiles = [
|
|
'src/sao.js',
|
|
'src/rpc.js',
|
|
'src/pyson.js',
|
|
'src/session.js',
|
|
'src/model.js',
|
|
'src/tab.js',
|
|
'src/screen.js',
|
|
'src/view.js',
|
|
'src/view/form.js',
|
|
'src/view/tree.js',
|
|
'src/view/graph.js',
|
|
'src/view/calendar.js',
|
|
'src/action.js',
|
|
'src/common.js',
|
|
'src/window.js',
|
|
'src/wizard.js',
|
|
'src/board.js'
|
|
];
|
|
|
|
// Project configuration.
|
|
grunt.initConfig({
|
|
pkg: grunt.file.readJSON('package.json'),
|
|
xgettext: {
|
|
locale: {
|
|
files: {
|
|
javascript: jsfiles
|
|
},
|
|
options: {
|
|
functionName: "Sao.i18n.gettext",
|
|
potFile: "locale/messages.pot"
|
|
},
|
|
}
|
|
},
|
|
shell: {
|
|
options: {
|
|
failOnError: true
|
|
},
|
|
msgmerge: {
|
|
command: _.map(locales, function(locale) {
|
|
var po = "locale/" + locale + ".po";
|
|
return "msgmerge -U " + po + " locale/messages.pot;";
|
|
}).join("")
|
|
}
|
|
},
|
|
po2json: {
|
|
options: {
|
|
format: 'raw'
|
|
},
|
|
all: {
|
|
src: ['locale/*.po'],
|
|
dest: 'locale/'
|
|
}
|
|
},
|
|
concat: {
|
|
dist: {
|
|
src: jsfiles,
|
|
dest: 'dist/<%= pkg.name %>.js'
|
|
}
|
|
},
|
|
jshint: {
|
|
dist: {
|
|
options: {
|
|
jshintrc: 'src/.jshintrc'
|
|
},
|
|
src: ['dist/<%= pkg.name %>.js']
|
|
},
|
|
grunt: {
|
|
src: ['Gruntfile.js']
|
|
},
|
|
tests: {
|
|
options: {
|
|
jshintrc: 'tests/.jshintrc'
|
|
},
|
|
src: ['tests/*.js']
|
|
}
|
|
},
|
|
uglify: {
|
|
options: {
|
|
banner: '/*! <%= pkg.name %>-<%= pkg.version %> | GPL-3\n' +
|
|
'This file is part of Tryton. ' +
|
|
'The COPYRIGHT file at the top level of\n' +
|
|
'this repository contains the full copyright notices ' +
|
|
'and license terms. */\n'
|
|
},
|
|
dist: {
|
|
src: 'dist/<%= pkg.name %>.js',
|
|
dest: 'dist/<%= pkg.name %>.min.js'
|
|
}
|
|
},
|
|
less: {
|
|
dev: {
|
|
options: {
|
|
paths: ['src', 'bower_components/bootstrap/less']
|
|
},
|
|
files: {
|
|
'dist/<%= pkg.name %>.css': 'src/*.less'
|
|
}
|
|
},
|
|
'default': {
|
|
options: {
|
|
paths: ['src', 'bower_components/bootstrap/less'],
|
|
yuicompress: true
|
|
},
|
|
files: {
|
|
'dist/<%= pkg.name %>.min.css': 'src/*.less'
|
|
}
|
|
}
|
|
},
|
|
watch: {
|
|
scripts: {
|
|
files: ['src/*.js'],
|
|
tasks: ['concat', 'jshint']
|
|
},
|
|
styles: {
|
|
files: ['src/*.less'],
|
|
tasks: 'less:dev'
|
|
}
|
|
},
|
|
qunit: {
|
|
all: ['tests/*.html']
|
|
}
|
|
});
|
|
|
|
grunt.registerTask('default', 'Build for production.', function() {
|
|
grunt.loadNpmTasks('grunt-contrib-concat');
|
|
grunt.loadNpmTasks('grunt-contrib-jshint');
|
|
grunt.loadNpmTasks('grunt-contrib-uglify');
|
|
grunt.loadNpmTasks('grunt-contrib-less');
|
|
grunt.loadNpmTasks('grunt-po2json');
|
|
grunt.task.run(['concat', 'jshint', 'uglify', 'less', 'po2json']);
|
|
});
|
|
grunt.registerTask('dev', 'Build for development.', function() {
|
|
grunt.loadNpmTasks('grunt-contrib-concat');
|
|
grunt.loadNpmTasks('grunt-contrib-jshint');
|
|
grunt.loadNpmTasks('grunt-contrib-less');
|
|
grunt.task.run(['concat', 'jshint', 'less:dev']);
|
|
});
|
|
grunt.registerTask('devwatch', 'Watch development', function() {
|
|
grunt.loadNpmTasks('grunt-contrib-watch');
|
|
grunt.task.run(['watch']);
|
|
});
|
|
grunt.registerTask('msgmerge', 'Update locale messages.', function() {
|
|
grunt.loadNpmTasks('grunt-shell');
|
|
grunt.task.run(['shell:msgmerge']);
|
|
});
|
|
grunt.registerTask('xgettext', ' Extracts translatable messages', function() {
|
|
grunt.loadNpmTasks('grunt-xgettext');
|
|
grunt.task.run(['xgettext']);
|
|
});
|
|
grunt.registerTask('test', 'Run tests', function() {
|
|
grunt.loadNpmTasks('grunt-contrib-concat');
|
|
grunt.loadNpmTasks('grunt-contrib-jshint');
|
|
grunt.loadNpmTasks('grunt-contrib-less');
|
|
grunt.loadNpmTasks('grunt-contrib-qunit');
|
|
grunt.task.run(['concat', 'jshint', 'less:dev', 'qunit']);
|
|
});
|
|
|
|
};
|