]> git.immae.eu Git - github/fretlink/purs-loader.git/blobdiff - src/PursLoader/ChildProcess.purs
PureScript 0.7 updates and migration to pulp
[github/fretlink/purs-loader.git] / src / PursLoader / ChildProcess.purs
index 34558fa74504b44f3343a64914bd718a5e0916bb..3bd960b784b12f6016f489ca020c91fd06a205ae 100644 (file)
@@ -3,6 +3,8 @@ module PursLoader.ChildProcess
   , spawn
   ) where
 
+import Prelude (Unit(), ($))
+
 import Control.Monad.Aff (Aff(), makeAff)
 import Control.Monad.Eff (Eff())
 import Control.Monad.Eff.Exception (Error())
@@ -11,46 +13,11 @@ import Data.Function
 
 foreign import data ChildProcess :: !
 
-spawn :: forall eff. String -> [String] -> Aff (cp :: ChildProcess | eff) String
+spawn :: forall eff. String -> Array String -> Aff (cp :: ChildProcess | eff) String
 spawn command args = makeAff $ runFn4 spawnFn command args
 
-foreign import spawnFn """
-function spawnFn(command, args, errback, callback) {
-  return function(){
-    var child_process = require('child_process');
-
-    var process = child_process.spawn(command, args);
-
-    var stdout = new Buffer(0);
-
-    var stderr = new Buffer(0);
-
-    process.stdout.on('data', function(data){
-      stdout = Buffer.concat([stdout, new Buffer(data)]);
-    });
-
-    process.stderr.on('data', function(data){
-      stderr = Buffer.concat([stderr, new Buffer(data)]);
-    });
-
-    process.on('close', function(code){
-      var chalk = require('chalk');
-
-      var output = stdout.toString('utf-8');
-
-      var error = stderr.toString('utf-8');
-
-      if (error.length > 0) {
-         console.error('\n' + chalk.red('*') + ' ' + error);
-      }
-
-      if (code !== 0) errback(new Error('Process terminated with code ' + code))();
-      else callback(output)();
-    });
-  };
-}
-""" :: forall eff. Fn4 String
-                       [String]
-                       (Error -> Eff (cp :: ChildProcess | eff) Unit)
-                       (String -> Eff (cp :: ChildProcess | eff) Unit)
-                       (Eff (cp :: ChildProcess | eff) Unit)
+foreign import spawnFn :: forall eff. Fn4 String
+                                          (Array String)
+                                          (Error -> Eff (cp :: ChildProcess | eff) Unit)
+                                          (String -> Eff (cp :: ChildProcess | eff) Unit)
+                                          (Eff (cp :: ChildProcess | eff) Unit)