Created
September 8, 2014 17:00
-
-
Save commadelimited/83c78a90d44ea238fb88 to your computer and use it in GitHub Desktop.
Gruntfile for Node-webkit project
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*jshint camelcase: false*/ | |
module.exports = function (grunt) { | |
'use strict'; | |
// load all grunt tasks | |
grunt.loadNpmTasks('grunt-contrib-clean'); | |
grunt.loadNpmTasks('grunt-contrib-compress'); | |
grunt.loadNpmTasks('grunt-contrib-copy'); | |
grunt.loadNpmTasks('grunt-contrib-jshint'); | |
grunt.loadNpmTasks('grunt-contrib-rename'); | |
grunt.loadNpmTasks('grunt-contrib-sass'); | |
grunt.loadNpmTasks('grunt-shell'); | |
// configurable paths | |
var config = { | |
app: 'app', | |
dist: 'dist', | |
tmp: 'tmp', | |
source: 'source', | |
resources: 'resources' | |
}; | |
grunt.initConfig({ | |
config: config, | |
clean: { | |
dist: { | |
files: [{ | |
dot: true, | |
src: [ | |
'<%= config.dist %>/*', | |
'<%= config.tmp %>/*' | |
] | |
}] | |
} | |
}, | |
sass: { | |
dist: { | |
options: { | |
style: 'compressed', | |
bundleExec: true | |
}, | |
files: { | |
'app/css/main.css': 'app/css/sass/main.scss' | |
} | |
} | |
}, | |
jshint: { | |
files: '<%= config.app %>/js/*.js' | |
}, | |
shell: { | |
createIcons: { | |
options: { | |
stdout: true | |
}, | |
command: 'iconutil -c icns <%= config.source %>/Minikeg.iconset' | |
}, | |
copyIcons: { | |
options: { | |
stdout: true | |
}, | |
command: 'cp <%= config.source %>/Minikeg.icns <%= config.dist %>/Minikeg.app/Contents/Resources/icon.icns' | |
} | |
}, | |
copy: { | |
appMacos: { | |
files: [{ | |
expand: true, | |
cwd: '<%= config.app %>', | |
dest: '<%= config.dist %>/node-webkit.app/Contents/Resources/app.nw', | |
src: '**' | |
}, { | |
expand: true, | |
cwd: '<%= config.resources %>/mac/', | |
dest: '<%= config.dist %>/node-webkit.app/Contents/', | |
filter: 'isFile', | |
src: '*.plist' | |
}, { | |
expand: true, | |
cwd: '<%= config.resources %>/mac/', | |
dest: '<%= config.dist %>/node-webkit.app/Contents/Resources/', | |
filter: 'isFile', | |
src: '*.icns' | |
},{ | |
expand: true, | |
cwd: '<%= config.app %>/../node_modules/xls-to-json', | |
dest: '<%= config.dist %>/node-webkit.app/Contents/Resources/app.nw/node_modules/xls-to-json', | |
src: '**' | |
}] | |
}, | |
webkit: { | |
files: [{ | |
expand: true, | |
cwd: '<%=config.resources %>/node-webkit/MacOS', | |
dest: '<%= config.dist %>/', | |
src: '**' | |
}] | |
}, | |
copyWinToTmp: { | |
files: [{ | |
expand: true, | |
cwd: '<%= config.resources %>/node-webkit/Windows/', | |
dest: '<%= config.tmp %>/', | |
src: '**' | |
}] | |
} | |
}, | |
compress: { | |
appToTmp: { | |
options: { | |
archive: '<%= config.tmp %>/app.zip' | |
}, | |
files: [{ | |
expand: true, | |
cwd: '<%= config.app %>', | |
src: ['**'] | |
}] | |
}, | |
finalWindowsApp: { | |
options: { | |
archive: '<%= config.dist %>/Minikeg.zip' | |
}, | |
files: [{ | |
expand: true, | |
cwd: '<%= config.tmp %>', | |
src: ['**'] | |
}] | |
} | |
}, | |
rename: { | |
app: { | |
files: [{ | |
src: '<%= config.dist %>/node-webkit.app', | |
dest: '<%= config.dist %>/Minikeg.app' | |
}] | |
}, | |
zipToApp: { | |
files: [{ | |
src: '<%= config.tmp %>/app.zip', | |
dest: '<%= config.tmp %>/app.nw' | |
}] | |
} | |
} | |
}); | |
grunt.registerTask('default', ['sass']); | |
grunt.registerTask('chmod', 'Add lost Permissions.', function () { | |
var fs = require('fs'); | |
fs.chmodSync('dist/Minikeg.app/Contents/Frameworks/node-webkit Helper EH.app/Contents/MacOS/node-webkit Helper EH', '555'); | |
fs.chmodSync('dist/Minikeg.app/Contents/Frameworks/node-webkit Helper NP.app/Contents/MacOS/node-webkit Helper NP', '555'); | |
fs.chmodSync('dist/Minikeg.app/Contents/Frameworks/node-webkit Helper.app/Contents/MacOS/node-webkit Helper', '555'); | |
fs.chmodSync('dist/Minikeg.app/Contents/MacOS/node-webkit', '555'); | |
}); | |
grunt.registerTask('icons', [ | |
'shell:createIcons' | |
]); | |
grunt.registerTask('build', [ | |
// 'jshint', | |
'sass', | |
'clean:dist', | |
'copy:webkit', | |
'copy:appMacos', | |
'rename:app', | |
'chmod', | |
'shell:createIcons', | |
'shell:copyIcons' | |
]); | |
grunt.registerTask('check', [ | |
'jshint' | |
]); | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment