exec(command, args, envVariables) {

      var path = require('path'),
        os = require('os')

      return new Promise(function(resolve, reject) {

        if (os.platform() == 'win32' || os.platform() == 'win64') command += '.cmd'

        // extend the env variables with some other custom options
        utils.extend(process.env, envVariables)
        utils.print(`Executing: ${command}  ${args.join(' ')} \n`, 'confirm')

        var cmd = spawn(path.normalize(command), args, {
          stdio: 'inherit',
          cwd: process.cwd()
        })

        cmd.on('exit', function(code) {
          if (code === 1)
            reject()
          else
            resolve()
        })

      })

    }
Run any system command
@param  { String } command - command to execute
@param  { Array } args - command arguments
@param  { Object } envVariables - command environment variables
@returns { Promise } chainable promise object