gitweb on Svarog
projekti pod git sistemom za održavanje verzija -- projects under the git version control systemauthor | Doni Pracner <quinnuendo@gmail.com> | |
Sat, 8 Jun 2013 10:34:14 +0000 (12:34 +0200) | ||
committer | Doni Pracner <quinnuendo@gmail.com> | |
Sat, 8 Jun 2013 10:34:14 +0000 (12:34 +0200) |
m2compile.java | [new file with mode: 0644] | patch | blob |
next.java | [new file with mode: 0644] | patch | blob |
diff --git a/m2compile.java b/m2compile.java
--- /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
--- /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;
+ }
+}