- System.err.println("== unprogramming fpga " + idx);
- proc = Runtime.getRuntime().exec("user_unprogram "+idx);
- new Gobbler(proc.getInputStream()).start();
- proc.waitFor();
- System.err.println("== programming fpga " + idx);
- proc = Runtime.getRuntime().exec("user_program "+idx+" main.bit");
- new Gobbler(proc.getInputStream()).start();
- int ret = proc.waitFor();
- if (ret!=0) System.exit(ret);
-
- raf = new RandomAccessFile(new File("/dev/selectmap"+idx), "rw");
- fos = new FileOutputStream(raf.getFD());
- fis = new BufferedInputStream(new FileInputStream(raf.getFD()));
- ServerSocket ss = new ServerSocket(3133);
-
- while(true) {
- System.out.println("listening...");
- Socket socket = ss.accept();
- try {
- socket.setKeepAlive(true);
- System.out.println("accept!");
-
- //final InputStream is = new BufferedInputStream(socket.getInputStream());
- final InputStream is = socket.getInputStream();
- final OutputStream os = socket.getOutputStream(); //new BufferedOutputStream(socket.getOutputStream());
+ int res;
+
+ if (args[0].equals("-client")) {
+
+ System.err.println("== rsyncing");
+ proc = Runtime.getRuntime().exec("rsync -are ssh --progress --verbose fleet.jar build/bee2/main.bit misc/bicat.c "+host+":");
+ new Gobbler(proc.getInputStream()).start();
+ res = proc.waitFor();
+ if (res != 0) throw new RuntimeException("nonzero exit code");
+
+ System.err.println("== (un)programming fpga " + idx);
+ proc = Runtime.getRuntime().exec("ssh "+host+" -- user_unprogram "+idx+"; user_program "+idx+" main.bit");
+ new Gobbler(proc.getInputStream()).start();
+ res = proc.waitFor();
+ if (res != 0) throw new RuntimeException("nonzero exit code");
+
+ System.err.println("== launching java");
+ proc = Runtime.getRuntime().exec("ssh "+host+" -- gcc -o bicat bicat.c && ./bicat /dev/selectmap"+idx);
+ //return proc.getInputStream();
+
+ } else if (args[0].equals("-server")) {
+
+ raf = new RandomAccessFile(new File("/dev/selectmap"+idx), "rw");
+ fos = new FileOutputStream(raf.getFD());
+ fis = new BufferedInputStream(new FileInputStream(raf.getFD()));
+
+ //socket.setKeepAlive(true);
+ //final InputStream is = new BufferedInputStream(socket.getInputStream());
+ //final InputStream is = socket.getInputStream();
+ //final OutputStream os = socket.getOutputStream(); //new BufferedOutputStream(socket.getOutputStream());
+
+ final InputStream is = System.in;
+ final OutputStream os = System.out;
+ PrintStream log = new PrintStream(new FileOutputStream("log"));