src/Palete/ValaSource.vala
authorAlan Knowles <alan@roojs.com>
Wed, 20 May 2015 06:06:50 +0000 (14:06 +0800)
committerAlan Knowles <alan@roojs.com>
Wed, 20 May 2015 06:06:50 +0000 (14:06 +0800)
src/Palete/ValaSource.vala

index bdc1920..9c36e81 100644 (file)
@@ -117,8 +117,58 @@ namespace Palete {
                        try {             
                           var  regex = new Regex("\\.bjs$");
                        
+                               valafn = regex.replace(this.file.path,this.file.path.length , 0 , ".vala");
+                        } catch (GLib.RegexError e) {
+                               var ret = new Json.Object();
+                               ret.set_boolean_member("success", false);
+                               ret.set_string_member("message", e.message);
+                           this.compiled(ret);
+                           return;
+                       }   
+                       
+                       string[] args = {};
+                       args += BuilderApplication._self;
+                       args += "--project";
+                       args += this.file.project.fn;
+                       args += "--target";
+                       args += this.file.build_module;
+                       args += "--add-file";
+                       args +=  tmpfile.get_path();
+                       args += "--skip-file";
+                       args += valafn;
+                       
+                        
+                       
+                       this.compiler = new Spawn("/tmp", args);
+                       this.compiler.complete.connect(spawnResult);
+                       
+                       try {
+                               this.compiler.run(); 
+                       } catch (GLib.SpawnError e) {
+                               var ret = new Json.Object();
+                               ret.set_boolean_member("success", false);
+                               ret.set_string_member("message", e.message);
+                           this.compiled(ret);
+                       }
                         
-                               valafn = regex.replace(_this.file.path,_this.file.path.length , 0 , ".vala");
+               }
+               
+               public void checkSpawn( )
+               {
+                       
+                       FileIOStream iostream;
+                       var tmpfile = File.new_tmp ("test-XXXXXX.vala", out iostream);
+                       tmpfile.ref();
+
+                       OutputStream ostream = iostream.output_stream;
+                       DataOutputStream dostream = new DataOutputStream (ostream);
+                       dostream.put_string (contents);
+                       
+                       var valafn = "";
+                       try {             
+                          var  regex = new Regex("\\.bjs$");
+                       
+                               valafn = regex.replace(this.file.path,this.file.path.length , 0 , ".vala");
                         } catch (GLib.RegexError e) {
                                var ret = new Json.Object();
                                ret.set_boolean_member("success", false);
@@ -153,6 +203,10 @@ namespace Palete {
                        }
                         
                }
+               
+               
+               
+               
                public void spawnResult(int res, string output, string stderr)
                {