title: How can process.stdin be used as the start point for a gulp task?
body: <p>I'm using gulp to convert SCSS into CSS code with the gulp-sass plugin. This is all working fine, but I also want to use gulp to receive input (SCSS code) from a Unix pipe (i.e. read <code>process.stdin</code>) and consume this and stream the output to <code>process.stdout</code>.</p>
  
  <p>From reading around <code>process.stdin</code> is a <code>ReadableStream</code> and <code>vinyl</code> seems like it could wrap <code>stdin</code> and then be used onwards in a gulp task, e.g.</p>
  
  <pre><code>gulp.task('stdin-sass', function () {
      process.stdin.setEncoding('utf8');
      var file = new File({contents: process.stdin, path: './test.scss'});
      file.pipe(convert_sass_to_css())
          .pipe(gulp.dest('.'));
  });
  </code></pre>
  
  <p>However, when I do this I get an error:</p>
  
  <pre><code>TypeError: file.isNull is not a function
  </code></pre>
  
  <p>This makes me think that <code>stdin</code> is somehow special, but the official documentation for node.js states that it is a true <code>ReadableStream</code>.</p>