From 04adb28045b82c599ffd310f93f69d18b6d880a8 Mon Sep 17 00:00:00 2001 From: Doni Pracner Date: Sat, 8 Jun 2013 12:34:14 +0200 Subject: [PATCH] m2compile and next task --- m2compile.java | 51 ++++++++++++++++++++++++ next.java | 106 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 157 insertions(+) create mode 100644 m2compile.java create mode 100644 next.java diff --git a/m2compile.java b/m2compile.java new file mode 100644 index 0000000..dfab8d7 --- /dev/null +++ b/m2compile.java @@ -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 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; + } +} -- 2.17.1