UNPKG

grunt-webapppool

Version:

Grunt integration for Powershell WebAppPool commands

48 lines (40 loc) 1.15 kB
"use strict"; var commands = require("../lib/commands"); module.exports = function (grunt) { function wrapCommand(fn) { return function () { var self = this; function exec() { var args = Array.prototype.slice.call(arguments); var callback = args.pop(); var options = self.options({ verbose: false }); var spawnOpts = {}; //build spawn options based on task options if (options.cwd) { //verify that the specified cwd exists if (grunt.file.isDir(options.cwd)) { spawnOpts.cwd = options.cwd; } else { throw new Error("The specified cwd does not exist: \"" + options.cwd + "\""); } } if (options.verbose) { spawnOpts.stdio = "inherit"; } grunt.util.spawn({ cmd: "powershell", args: args, opts: spawnOpts }, function () { callback.apply(this, arguments); }); } var done = self.async(); fn(self, exec, done); }; } for (var command in commands) { var fn = commands[command]; grunt.registerMultiTask(command + "WebAppPool", fn.description || "", wrapCommand(fn)); } };