module.exports = function(grunt) { dist_files = [ { src: [ 'public/**', 'vendor/**', 'app/**', '!/tests', '!grunt045**', '!/public/images/menubar/png/', '!/public/dist/bootswatch/', '/public/dist/bootswatch/*/*.css', '!/public/dist/bootswatch-5/', '/public/dist/bootswatch-5/*/*.css', 'app/Database/**', '*.txt', '*.md', 'LICENSE', 'docker*', 'docker/**', 'Dockerfile', '**/.htaccess', '*.csv' ] } ]; ospos_css = ['public/css/*.css', '!public/css/login.css', '!public/css/login.min.css', '!public/css/invoice_email.css', '!public/css/barcode_font.css', '!public/css/darkly.css']; ospos_js = ['public/dist/bootstrap/js/*.min.js', 'public/js/jquery*', 'public/js/*.js']; ospos_min_css = ['public/dist/jquery-ui/*.css', 'public/dist/*.css']; ospos_min_js = ['public/dist/*min.js']; grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), wiredep: { task: { ignorePath: '../../../public/', src: ['app/Views/partial/header.php'] } }, injector: { options: { lineEnding: '\n', ignorePath: 'public/', addRootSlash: false, }, css_js_header: { files: { 'app/Views/partial/header.php': [ospos_css, ospos_js] }, }, mincss_header: { options: { starttag: '', }, files: { 'app/Views/partial/header.php': [ospos_min_css] }, }, minjs: { options: { starttag: '', }, files: { 'app/Views/partial/header.php': [ospos_min_js] }, }, css_login: { files: { 'app/Views/login.php': ['public/css/login.min.css'] }, }, }, bowercopy: { options: { report: false }, targetdistjqueryui: { options: { srcPrefix: 'public/resources/jquery-ui', destPrefix: 'public/dist' }, files: { 'jquery-ui': 'themes/base/jquery-ui.min.css' } }, targetdistbootswatch: { options: { srcPrefix: 'public/resources/bootswatch', destPrefix: 'public/dist' }, files: { bootswatch: '*/' } }, targetlicense: { options: { srcPrefix: './' }, files: { 'public/license': 'LICENSE' } } }, cssmin: { target: { files: { 'public/dist/opensourcepos.min.css': ['tmp/opensourcepos_bower.css', 'public/css/*.css', '!public/css/login.css', '!public/css/login.min.css', '!public/css/invoice_email.css', '!public/css/barcode_font.css', '!public/css/darkly.css'], 'public/css/login.min.css': ['public/css/login.css'] } } }, concat: { js: { options: { separator: '\n' }, files: { 'tmp/opensourcepos.js': ['public/dist/jquery/jquery.js', 'tmp/opensourcepos_bower.js', 'public/js/*.js'] } }, sql: { options: { banner: '-- >> This file is autogenerated from tables.sql and constraints.sql. Do not modify directly << --' }, files: { 'app/Database/database.sql': ['app/Database/tables.sql', 'app/Database/constraints.sql'], 'app/Database/migrate_phppos_dist.sql': ['app/Database/tables.sql', 'app/Database/Migrations/sqlscripts/pre-3.0.2/phppos_migrate.sql', 'database/constraints.sql'] } } }, uglify: { options: { banner: '/*! opensourcepos <%= grunt.template.today("dd-mm-yyyy") %> */\n' }, dist: { files: { 'public/dist/opensourcepos.min.js': ['tmp/opensourcepos.js'] } } }, jshint: { files: ['public/js/imgpreview.full.jquery.js', 'public/js/manage_tables.js', 'public/js/nominatim.autocomplete.js'], options: { esversion: 6, globals: { jQuery: true, console: true, module: true, document: true } } }, watch: { files: ['<%= jshint.files %>'], tasks: ['jshint'] }, compress: { tar: { options: { mode: 'tar', archive: 'dist/opensourcepos.tgz', level: 2, }, files: dist_files }, zip: { options: { mode: 'zip', archive: 'dist/opensourcepos.zip', }, files: dist_files } } }); require('load-grunt-tasks')(grunt); grunt.loadNpmTasks('grunt-contrib-compress'); grunt.registerTask('task1', ['wiredep']); grunt.registerTask('task3', ['bowercopy']); grunt.registerTask('task5', ['concat','uglify','cssmin','injector','jshint']); grunt.registerTask('task7', ['compress']); grunt.registerTask('watch', ['watch']); };