title: Grunt for-loop on grunt.task.run with variables
body: <p>I'm currently trying to create a task in grunt sending parameters to run another task multiple times.</p>
  
  <p>Here is my already functional single build task:</p>
  
  <pre><code>var country = grunt.option('country') || 'X0';
  var product = grunt.option('product') || 'Y0';
  var subdomain = grunt.option('subdomain') || 'Z0';
  
  grunt.registerTask('build_home', [
      'sprite:publicProduct',
      'sprite:home',
      'uglify:home',
      'sass:home',
      'csscomb:home',
      'cssmin:home'
  ]);
  </code></pre>
  
  <p>So in my day to day, I would run the command:</p>
  
  <pre><code>grunt build_home --country=X0 --product=Y7 --subdomain=Z3
  </code></pre>
  
  <p>What I want now, is a task that would run all my possible predefined options:</p>
  
  <pre><code>grunt build_home_all
  </code></pre>
  
  <p>It would be something like this:</p>
  
  <pre><code>grunt.registerTask('build_home_all', function() {
  
      var products = ['Y0','Y1','Y2','Y3','Y4','Y5','Y6','Y7','Y8','Y9'];
      var subdomains = ['Z0','Z1','Z2'];
  
      for (i = 0; i &lt; products.length; i++) { 
          for (j = 0; j &lt; subdomains.length; j++) {
              grunt.task.run('build_home --product='+products[i]+' --subdomain='+subdomains[j]);
          };
      };
  
      grunt.log.ok(['Finished.']);
  
  });
  </code></pre>
  
  <p>I've already achieved this with grunt.util.spawn, but it kinda runned asynchronously and was forcing my cpu with all kinds of tasks running at the same time.</p>