ovh-angular-tail-logs
Version:
Poll a log API for displaying messages
279 lines (251 loc) • 7.87 kB
JavaScript
// Generated on 2016-05-04 using generator-ovh-angular-component 0.1.0
module.exports = function (grunt) {
"use strict";
require("matchdep").filterAll("grunt-*").forEach(grunt.loadNpmTasks);
grunt.initConfig({
pkg: grunt.file.readJSON("package.json"),
bower: grunt.file.readJSON("bower.json"),
distdir: "dist",
srcdir: "src",
builddir: ".work/.tmp",
name: grunt.file.readJSON("package.json").name || "ovh-angular-tail-logs", // module name
// Clean
clean: {
dist: {
src: [
"<%= builddir %>",
"<%= distdir %>"
]
}
},
// Copy files
copy: {
// Copy concatened JS file from builddir to dist/
dist: {
files: [{
"<%= distdir %>/ovh-angular-tail-logs.js": "<%= builddir %>/ovh-angular-tail-logs.js"
}]
}
},
// Concatenation
concat: {
dist: {
files: {
"<%= builddir %>/ovh-angular-tail-logs.js": [
"<%= srcdir %>/ovh-angular-tail-logs.js",
"<%= srcdir %>/**/*.js",
"<%=builddir%>/templates.js",
"!<%= srcdir %>/**/*.spec.js",
"!<%= srcdir %>/**/*.mock.js"
]
}
}
},
// ngMin
ngAnnotate: {
dist: {
files: {
"<%= builddir %>/ovh-angular-tail-logs.js": ["<%= builddir %>/ovh-angular-tail-logs.js"]
}
}
},
// Obfuscate
uglify: {
js: {
options: {
banner: "/*! ovh-angular-tail-logs - <%= pkg.version %> - <%= grunt.template.today('yyyy-mm-dd') %> */\n"
},
files: {
"<%= distdir %>/ovh-angular-tail-logs.min.js": ["<%= builddir %>/ovh-angular-tail-logs.js"]
}
}
},
// Create CSS from LESS
less: {
dist: {
options: {
compress: false
},
files: {
"<%= builddir %>/<%= name %>.css": ["less/<%= name %>.less"]
}
}
},
// ... and its prefixed vendor styles
postcss: {
options: {
processors: [
require("autoprefixer-core")({ browsers: ["last 3 versions", "ie >= 9", "> 5%"] })
]
},
dist: {
files: {
"<%= distdir %>/<%= name %>.css": ["<%= builddir %>/<%= name %>.css"]
}
}
},
// ... and now minify it
cssmin: {
options: {},
dist: {
files: {
"<%= distdir %>/<%= name %>.min.css": ["<%= distdir %>/<%= name %>.css"]
}
}
},
// JS Check
jshint: {
options: {
jshintrc: ".jshintrc",
reporter: require("jshint-stylish")
},
js: [
"<%= srcdir %>/*.js",
"<%= srcdir %>/*/*.js",
"!<%= srcdir %>/**/*.spec.js"
]
},
// Check complexity
complexity: {
generic: {
src: [
"<%= srcdir %>/**/*.js",
"!<%= srcdir %>/**/*.spec.js"
],
options: {
errorsOnly: false,
cyclomatic: 12,
halstead: 45,
maintainability: 82
}
}
},
// Watch
delta: {
dist: {
files: ["<%= srcdir %>/**/*", "!<%= srcdir %>/**/*.spec.js"],
tasks: ["buildProd"]
},
test: {
files: ["<%= srcdir %>/**/*.spec.js"],
tasks: ["test"]
}
},
// To release
bump: {
options: {
pushTo: "origin",
files: [
"package.json",
"bower.json"
],
updateConfigs: ["pkg", "bower"],
commitFiles: ["-a"]
}
},
// Testing
karma: {
unit: {
configFile: "karma.conf.js",
singleRun: true
}
},
jscs: {
src: [
"<%= srcdir %>/*.js",
"<%= srcdir %>/*/*.js",
"!<%= srcdir %>/**/*.spec.js"
],
options: {
config: ".jscsrc",
verbose: true
}
},
// Documentation
ngdocs: {
options: {
dest: "docs",
html5Mode: false,
title: "Manager tail logs",
startPage: "docs/ovhTailLogs",
sourceLink: "https://github.com/ovh-ux/<%= name %>/blob/master/{{file}}#L{{codeline}}"
},
docs: {
src: ["src/**/*.js"],
title: "API",
api: true
}
},
// DOCS connect
connect: {
docs: {
options: {
port: 9090,
base: "docs/",
keepalive: true
}
}
},
// Package all the html partials into a single javascript payload
ngtemplates: {
options: {
// This should be the name of your apps angular module
module: "ovh-angular-tail-logs",
htmlmin: {
collapseBooleanAttributes: true,
collapseWhitespace: true,
removeAttributeQuotes: true,
removeEmptyAttributes: true,
removeRedundantAttributes: true,
removeScriptTypeAttributes: true,
removeStyleLinkTypeAttributes: true
}
},
main: {
cwd: "<%=srcdir%>",
src: ["**/*.html"],
dest: "<%=builddir%>/templates.js"
}
},
wiredep: {
test: {
src: "./karma.conf.js",
devDependencies: true
}
},
eslint: {
options: {
configFile: "./.eslintrc.json"
},
target: ["src/**/!(*.spec|*.integration).js", "Gruntfile.js"]
}
});
grunt.registerTask("buildProd", [
"clean",
"ngtemplates",
"jshint",
"complexity",
"concat:dist",
"ngAnnotate",
"uglify",
"less",
"postcss",
"cssmin",
"copy:dist",
"ngdocs"
]);
grunt.registerTask("default", ["buildProd"]);
grunt.task.renameTask("watch", "delta");
grunt.registerTask("watch", ["buildProd", "delta"]);
grunt.registerTask("test", ["wiredep", "jshint", "eslint", "jscs", "karma"]);
// Increase version number. Type = minor|major|patch
grunt.registerTask("release", "Release", function () {
var type = grunt.option("type");
if (type && ~["patch", "minor", "major"].indexOf(type)) {
grunt.task.run(["bump-only:" + type]);
} else {
grunt.verbose.or.write("You try to release in a weird version type [" + type + "]").error();
grunt.fail.warn("Please try with --type=patch|minor|major");
}
});
};