gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
m2compile and next task
authorDoni Pracner <quinnuendo@gmail.com>
Sat, 8 Jun 2013 10:34:14 +0000 (12:34 +0200)
committerDoni Pracner <quinnuendo@gmail.com>
Sat, 8 Jun 2013 10:34:14 +0000 (12:34 +0200)
m2compile.java [new file with mode: 0644]
next.java [new file with mode: 0644]

diff --git a/m2compile.java b/m2compile.java
new file mode 100644 (file)
index 0000000..dfab8d7
--- /dev/null
@@ -0,0 +1,51 @@
+package svetovid;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Task;
+
+import java.io.*;
+
+public class m2compile extends Task {
+    private String module="program";
+    private File dir=null;
+
+    
+    // needs to recognize whether it's linux or not
+    
+    // needs to check wheter the compilation is needed
+    // based on the timestamps of the exe and mod
+    
+    // The method executing the task
+    public void execute() throws BuildException {
+       int exit = -1;
+       try{
+               ProcessBuilder pb = new ProcessBuilder(
+                               "wine", "xc", "=make", "=all", module);
+               pb.directory(dir);
+               pb.inheritIO();
+               
+               Process p = pb.start();
+               p.waitFor();
+               exit = p.exitValue();
+               
+       }catch (Exception ex) {
+               throw new BuildException(ex);
+       }
+        if (exit != 0) 
+               throw new BuildException("compilation ended with code "+exit);
+    }
+    
+    public void setModule(String msg) {
+        this.module = msg;
+    }
+    
+    public void setDir(File msg) {
+        this.dir = msg;
+    }
+    
+    public static void main(String[] args){
+               m2compile m = new m2compile();
+               
+               m.execute();
+    }
+}
diff --git a/next.java b/next.java
new file mode 100644 (file)
index 0000000..2153047
--- /dev/null
+++ b/next.java
@@ -0,0 +1,106 @@
+package svetovid;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Task;
+
+import java.io.*;
+
+/**
+ * Na osnovu spiska i trenutnog studenta nadji sledeceg.
+ * cita se iz current.txt, a pise u taj i current.properties
+ * Ovo se onda korisiti za kopiranje fajlova u buildu
+ * (bio je task init)
+ */
+public class next extends Task {
+    private String student, group;
+    private String current;
+    private String file="studenti.txt";
+    private String separator="\t";
+    private String currentFilename="current.txt",
+       currentProperties="current.properties";
+    
+    
+    private void setCurrent(String c) throws Exception{
+               current = c;
+               if (current != null){
+                                       String[] s = current.split(separator);
+                                       if (s.length<2) 
+                                                       throw new Exception("problem setting current student name - can't split group and name");
+                                       student = s[1];
+                                       group = s[0];
+                       } else {
+                                       student = null;
+                                       group = null;
+                       }
+    }
+    
+    private void loadCurrent(){
+       try{
+               File f = new File(currentFilename);
+               if (f.exists()){
+                               BufferedReader r = new BufferedReader(
+                                               new InputStreamReader(
+                                                               new FileInputStream(f)));
+                               setCurrent(r.readLine());
+                               r.close();
+               } else 
+                       setCurrent(null);
+       }catch (Exception ex) {
+               throw new BuildException(ex);
+       }
+    }
+    
+    private void saveCurrent(){
+       try{
+               PrintWriter w = new PrintWriter(new FileWriter(currentFilename));
+               w.println(current);
+               w.close();
+       }catch (Exception ex) {
+               throw new BuildException(ex);
+       }
+       //now the properties file
+       try{
+               PrintWriter w = new PrintWriter(new FileWriter(currentProperties));
+               w.println("student.group="+group);
+               w.println("student.current="+student);
+               w.close();
+       }catch (Exception ex) {
+               throw new BuildException(ex);
+       }               
+    }
+    
+    // The method executing the task
+    public void execute() throws BuildException {
+       loadCurrent();
+       try{
+               BufferedReader r = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
+               String s = r.readLine();
+               if (current != null) {
+                                       while (s!=null && s.compareTo(current)!=0)
+                                               s= r.readLine();
+                                       setCurrent(r.readLine());
+                       } else {
+                                       setCurrent(s);
+                       }
+               r.close();
+       }catch (Exception ex) {
+               throw new BuildException(ex);
+       }
+        saveCurrent();
+    }
+
+    public void setSeparator(String msg) {
+        this.separator = msg;
+    }
+    
+    public void setFile(String msg) {
+        this.file = msg;
+    }
+    
+    public void setCurrentFilename(String msg) {
+        this.currentFilename = msg;
+    }
+    public void setCurrentProperties(String msg) {
+        this.currentProperties = msg;
+    }
+}
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner