Files
Archetype/Gruntfile.js
T

221 lines
6.9 KiB
JavaScript
Raw Normal View History

2014-01-10 17:20:35 -07:00
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
2014-01-17 00:12:29 -07:00
pkgMeta: grunt.file.readJSON('pkg/meta.json'),
2014-01-10 17:20:35 -07:00
dest: 'dist',
package_dir: 'pkg',
package_temp_dir: '<%= package_dir %>/tmp/',
2014-02-22 00:32:37 -07:00
csProj: 'app/Umbraco/Umbraco.Archetype/Archetype.Umbraco.csproj',
2014-01-10 17:20:35 -07:00
2014-01-17 00:12:29 -07:00
2014-01-10 17:20:35 -07:00
watch: {
less: {
files: ['app/less/*.less', 'lib/**/*.less'],
tasks: ['less:build'],
options: {
2014-01-12 23:51:37 -07:00
spawn: false
2014-01-10 17:20:35 -07:00
}
},
js: {
files: ['app/**/*.js', 'lib/**/*.js'],
tasks: ['concat', 'jshint'],
options: {
2014-01-12 23:51:37 -07:00
spawn: false
2014-01-10 17:20:35 -07:00
}
},
dev: {
2014-02-24 01:00:08 -07:00
files: ['app/**', '!app/Umbraco/**', 'app/Umbraco/**/*.dll'],
2014-01-12 23:51:37 -07:00
tasks: ['deploy'],
options: {
spawn: false
}
2014-01-10 17:20:35 -07:00
}
},
jshint: {
options: {
jshintrc: '.jshintrc'
},
src: {
src: ['app/**/*.js', 'lib/**/*.js']
}
},
less: {
build: {
options: {
paths: ["app/less", "lib/less", "vendor"],
},
files: {
'<%= dest %>/css/archetype.css': 'app/less/archetype.less',
}
}
},
concat: {
options: {
stripBanners: false
},
application: {
src: [
2014-01-12 14:33:09 -05:00
'app/controllers/controller.js',
2014-01-14 12:10:17 -05:00
'app/controllers/config.controller.js',
2014-01-15 14:36:06 -05:00
'app/directives/archetypeproperty.js',
'app/directives/localize.js',
'app/services/localization.js',
'app/resources/propertyeditor.js'
2014-01-10 17:20:35 -07:00
],
dest: '<%= dest %>/js/archetype.js'
}
},
2014-01-11 22:17:12 -07:00
nugetpack: {
dist: {
src: '<%= package_temp_dir %>/nuget/package.nuspec',
dest: '<%= package_dir %>'
2014-01-11 22:17:12 -07:00
}
},
template: {
'nuget_manifest': {
'options': {
'data': {
2014-01-17 00:12:29 -07:00
name: '<%= pkgMeta.name %>',
version: '<%= pkgMeta.version %>',
url: '<%= pkgMeta.url %>',
license: '<%= pkgMeta.license %>',
licenseUrl: '<%= pkgMeta.licenseUrl %>',
author: '<%= pkgMeta.author %>',
authorUrl: '<%= pkgMeta.authorUrl %>',
2014-02-27 13:38:07 -07:00
files: [{ path: '..\\..\\..\\<%= package_temp_dir %>\\nuget\\**', target: 'content\\App_Plugins\\Archetype'}]
}
},
'files': {
'<%= package_temp_dir %>/nuget/package.nuspec': ['<%= package_dir %>/nuget/package.nuspec']
}
}
},
clean: {
2014-01-17 00:12:29 -07:00
build: ['<%= dest %>']
2014-01-16 23:30:38 -07:00
},
2014-01-12 23:51:37 -07:00
copy: {
build: {
files: [
{expand: true, cwd: 'app/', src: ['package.manifest'], dest: '<%= dest %>', flatten: true},
{expand: true, cwd: 'app/views/', src: ['archetype.html', 'archetype.config.html'], dest: '<%= dest %>/views', flatten: true},
{expand: true, cwd: 'app/config/', src: ['propertyEditors.views.js'], dest: '<%= dest %>/js', flatten: true},
{expand: true, cwd: 'app/langs/', src: ['**'], dest: '<%= dest %>/langs', flatten: true},
2014-02-24 01:00:08 -07:00
{expand: true, cwd: 'app/Umbraco/Umbraco.Archetype/bin/Debug/', src: ['Archetype.dll', 'Archetype.pdb'], dest: '<%= dest %>/bin', flatten: true}
2014-01-12 23:51:37 -07:00
]
},
deploy: {
files: [
2014-02-24 01:00:08 -07:00
{expand: true, cwd: '<%= dest %>/', src: ['**/*', "!bin", "!bin/**/*"], dest: '<%= grunt.option("target") %>\\App_Plugins\\Archetype', flatten: false},
{expand: true, cwd: '<%= dest %>/', src: ['bin/**/*'], dest: '<%= grunt.option("target") %>', flatten: false},
2014-01-12 23:51:37 -07:00
]
2014-01-16 23:30:38 -07:00
},
nuget_prepare: {
files: [
2014-02-27 13:38:07 -07:00
{expand: true, cwd: '<%= dest %>/', src: ['**/*', '!bin', '!bin/*'], dest: '<%= package_temp_dir %>/nuget/content/App_Plugins/Archetype', flatten: false},
2014-02-24 01:00:08 -07:00
{expand: true, cwd: '<%= dest %>/', src: ['bin/**/*.dll'], dest: '<%= package_temp_dir %>/nuget/lib/net40/', flatten: true}
2014-01-12 23:51:37 -07:00
]
2014-01-15 14:16:17 -07:00
},
umbracopackage: {
files: [
2014-02-24 01:00:08 -07:00
{expand: true, cwd: '<%= dest %>/', src: ['**/*', '!bin', "!bin/*"], dest: 'pkg/tmp/umbraco/App_Plugins/Archetype', flatten: false},
{expand: true, cwd: '<%= dest %>/', src: ['bin/**/*.dll'], dest: 'pkg/tmp/umbraco', flatten: false}
2014-01-15 14:16:17 -07:00
]
2014-01-12 23:51:37 -07:00
}
},
touch: {
options: {},
webconfig: {
src: ['<%= grunt.option("target") %>\\Web.config']
}
},
2014-01-15 14:16:17 -07:00
umbracoPackage: {
options: {
2014-01-17 00:12:29 -07:00
name: "<%= pkgMeta.name %>",
version: '<%= pkgMeta.version %>',
url: '<%= pkgMeta.url %>',
license: '<%= pkgMeta.license %>',
licenseUrl: '<%= pkgMeta.licenseUrl %>',
author: '<%= pkgMeta.author %>',
authorUrl: '<%= pkgMeta.authorUrl %>',
2014-01-15 14:16:17 -07:00
manifest: 'pkg/umbraco/package.xml',
readme: 'pkg/umbraco/readme.txt',
sourceDir: 'pkg/tmp/umbraco',
outputDir: 'pkg',
}
},
2014-01-17 00:12:29 -07:00
clean: {
build: ['<%= dest %>'],
package_temp: ['pkg/tmp'],
package_artifacts: ['pkg/*.zip', 'pkg/*.nupkg'],
},
2014-02-22 00:32:37 -07:00
assemblyinfo: {
options: {
files: ['<%= csProj %>'],
filename: 'VersionInfo.cs',
info: {
version: '<%= (pkgMeta.version.indexOf("-") ? pkgMeta.version.substring(0, pkgMeta.version.indexOf("-")) : pkgMeta.version) %>',
fileVersion: '<%= pkgMeta.version %>'
}
}
},
msbuild: {
dev: {
2014-02-22 00:32:37 -07:00
src: ["<%= csProj %>"],
options: {
projectConfiguration: 'Debug',
targets: ['Clean', 'Rebuild'],
stdout: true,
maxCpuCount: 4,
buildParameters: {
2014-02-22 00:32:37 -07:00
WarningLevel: 2,
NoWarn: 1607,
},
verbosity: 'quiet'
}
}
2014-01-16 23:30:38 -07:00
}
2014-01-10 17:20:35 -07:00
});
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-less');
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-jshint');
2014-01-11 22:17:12 -07:00
grunt.loadNpmTasks('grunt-nuget');
grunt.loadNpmTasks('grunt-template');
grunt.loadNpmTasks('grunt-touch');
grunt.loadNpmTasks('grunt-msbuild');
2014-02-22 00:32:37 -07:00
grunt.loadNpmTasks('grunt-dotnet-assembly-info');
2014-01-15 14:16:17 -07:00
grunt.loadTasks('tasks');
2014-01-10 17:20:35 -07:00
2014-01-31 16:11:33 -07:00
grunt.registerTask('package', ['clean:package_artifacts', 'default', 'package:nuget', 'package:umbraco']);
grunt.registerTask('package:nuget', ['copy:nuget_prepare', 'template:nuget_manifest', 'nugetpack', 'clean:package_temp']);
grunt.registerTask('package:umbraco', ['copy:umbracopackage', 'umbracoPackage', 'clean:package_temp']);
grunt.registerTask('touchwebconfigifenabled', function() { if (grunt.option("touch")) grunt.task.run("touch:webconfig") });
grunt.registerTask('deploy', ['default', 'copy:deploy', 'touchwebconfigifenabled']);
2014-01-10 17:20:35 -07:00
grunt.registerTask('css:build', ['less']);
grunt.registerTask('js:build', ['concat']);
2014-02-22 00:32:37 -07:00
grunt.registerTask('cs:build', ['assemblyinfo', 'msbuild:dev']);
grunt.registerTask('default', ['clean', 'css:build', 'js:build', 'copy:build', 'cs:build']);
2014-01-10 17:20:35 -07:00
};