var constants = require('./constants'),
  logger = require('./logger'),
  net = require('net'),
  path = require('path'),
  util = require('./util');

var client;
var server = net.createServer();

server.once('connection', function(c) {

  client = c;

  // client disconnected
  c.on('end', function() {
    server.emit('end', 'client disconnected');
    process.exit(1);
  });

  // listen for returned data
  c.once('data', function(data) {

    // parse the initial app data response
    var appData = JSON.parse(data);

    // save the Resources directory location
    // TODO: this is very ios-specific now, will need updating
    constants.resourcesDir = appData.resourcesDir
      .replace(/%20/g, ' ')
      .replace(/^file:/, '');

    // tell the server we're ready for messages
    server.emit('ready');

    // listen for return values from app
    c.on('data', function(data) {
      var doPrompt = true,
        json = JSON.parse(data.toString());

      switch (json.type) {
        case 'error':
          logger.error(json.data);
          break;
        case 'return':
          logger.log(json.data);
          break;
        default:
          logger.error('invalid message type "' + json.type + '"');
          break;
      }

      if (doPrompt) {
        process.stdout.write(constants.PROMPT);
      }
    });
  });

});

// send message for eval to client(s)
server.on('message', function(message) {
	client.write(message);
});

module.exports = server;

@@ -33,18 +33,17 @@
 ants'),%0A
-  
+%09
 logger =
@@ -64,18 +64,17 @@
 gger'),%0A
-  
+%09
 net = re
@@ -87,18 +87,17 @@
 'net'),%0A
-  
+%09
 path = r
@@ -112,18 +112,17 @@
 path'),%0A
-  
+%09
 util = r
@@ -227,18 +227,17 @@
 n(c) %7B%0A%0A
-  
+%09
 client =
@@ -241,18 +241,17 @@
 t = c;%0A%0A
-  
+%09
 // clien
@@ -265,18 +265,17 @@
 nnected%0A
-  
+%09
 c.on('en
@@ -291,20 +291,18 @@
 ion() %7B%0A
-    
+%09%09
 server.e
@@ -336,20 +336,18 @@
 cted');%0A
-    
+%09%09
 process.
@@ -359,17 +359,15 @@
 1);%0A
-  
+%09
 %7D);%0A%0A
-  
+%09
 // l
@@ -390,18 +390,17 @@
 ed data%0A
-  
+%09
 c.once('
@@ -424,20 +424,18 @@
 ata) %7B%0A%0A
-    
+%09%09
 // parse
@@ -465,20 +465,18 @@
 esponse%0A
-    
+%09%09
 var appD
@@ -500,20 +500,18 @@
 data);%0A%0A
-    
+%09%09
 // save 
@@ -543,20 +543,18 @@
 ocation%0A
-    
+%09%09
 // TODO:
@@ -604,20 +604,18 @@
 pdating%0A
-    
+%09%09
 constant
@@ -652,22 +652,19 @@
 rcesDir%0A
-      
+%09%09%09
 .replace
@@ -677,22 +677,19 @@
 g, ' ')%0A
-      
+%09%09%09
 .replace
@@ -705,20 +705,18 @@
 , '');%0A%0A
-    
+%09%09
 // tell 
@@ -751,20 +751,18 @@
 essages%0A
-    
+%09%09
 server.e
@@ -776,20 +776,18 @@
 ady');%0A%0A
-    
+%09%09
 // liste
@@ -815,20 +815,18 @@
 rom app%0A
-    
+%09%09
 c.on('da
@@ -847,22 +847,19 @@
 data) %7B%0A
-      
+%09%09%09
 var doPr
@@ -871,24 +871,20 @@
 = true,%0A
-        
+%09%09%09%09
 json = J
@@ -912,22 +912,19 @@
 ng());%0A%0A
-      
+%09%09%09
 switch (
@@ -936,24 +936,20 @@
 type) %7B%0A
-        
+%09%09%09%09
 case 'er
@@ -954,26 +954,21 @@
 error':%0A
-          
+%09%09%09%09%09
 logger.e
@@ -988,33 +988,24 @@
 a);%0A
-          break;%0A        
+%09%09%09%09%09break;%0A%09%09%09%09
 case
@@ -1015,26 +1015,21 @@
 eturn':%0A
-          
+%09%09%09%09%09
 logger.l
@@ -1047,52 +1047,38 @@
 a);%0A
-          break;%0A        default:%0A          
+%09%09%09%09%09break;%0A%09%09%09%09default:%0A%09%09%09%09%09
 logg
@@ -1135,40 +1135,29 @@
 ');%0A
-          break;%0A      %7D%0A%0A      
+%09%09%09%09%09break;%0A%09%09%09%7D%0A%0A%09%09%09
 if (
@@ -1172,16 +1172,12 @@
 ) %7B%0A
-        
+%09%09%09%09
 proc
@@ -1216,26 +1216,20 @@
 T);%0A
-      %7D%0A    
+%09%09%09%7D%0A%09%09
 %7D);%0A
-  
+%09
 %7D);%0A

fix indent formatting