Update runcmd to actually run comands from input
[clnl] / bin / runcmd.scala
index 1e7987b94d5c8055d7012a8baac4be40b16fe547..eb0d46394a3e2b1697f655a4ab0ea0d93c0c4fea 100755 (executable)
@@ -1,8 +1,12 @@
 #!/bin/sh
-exec scalas "$0" "$@"
+exec scalas "$0" -q "$@"
 !#
 
 /***
+  logLevel := Level.Error
+
+  logLevel in Global := Level.Error
+
   scalaVersion := "2.10.3"
 
   libraryDependencies ++= Seq(
@@ -19,29 +23,36 @@ import org.nlogo.api
 import org.nlogo.nvm
 import org.nlogo.util.Utils.url2String
 
+System.out.println("----")
 val workspace = HeadlessWorkspace.newInstance
 workspace.silent = true
-workspace.openFromSource(url2String(api.ModelReader.emptyModelPath))
-/*
-workspace.runCompiledCommands(new api.SimpleJobOwner("test", workspace.world.mainRNG, api.AgentKind.Observer), workspace.compileCommands("resize-world -2 2 -2 2 crt 1", api.AgentKind.Observer))
+workspace.openFromSource(url2String("file:resources/empty.nlogo"))
+
+val commands = io.Source.stdin.getLines.mkString("\n")
+
+workspace.runCompiledCommands(new api.SimpleJobOwner("test", workspace.world.mainRNG, api.AgentKind.Observer), workspace.compileCommands(commands, api.AgentKind.Observer))
 mirror.Mirrorables.allMirrorables(workspace.world).map( x => {
   System.out.print("(")
-  System.out.print(x.kind)
+  System.out.print(":" + x.kind)
   System.out.print(" ")
   System.out.print(x.agentKey.id)
   System.out.print(" (")
   x.kind.Variables.values.toSeq.map( k => {
-    System.out.print("(" + k + " ")
-    x.getVariable(k.id) match {
-      case s: java.lang.String => System.out.print("\"s\"")
-      case v => System.out.print(v)
-    }
+    System.out.print("(:" + k + " ")
+    System.out.print(x.getVariable(k.id) match {
+      case s: java.lang.String => "\"s\""
+      case d: java.lang.Double => d + "d0"
+      case b: java.lang.Boolean => if(b)"T" else "NIL"
+      case _: org.nlogo.api.ShapeList => ":SHAPELIST"
+      case v => v
+    })
     System.out.print(") ")
   })
   System.out.println(")")
   
-  })*/
+  })
 
+/*
 workspace.runCompiledCommands(new api.SimpleJobOwner("test", workspace.world.mainRNG, api.AgentKind.Observer), workspace.compileCommands("random-seed 15", api.AgentKind.Observer))
 for(_ <- 1 to 40)
   System.out.println(workspace.runCompiledReporter(new api.SimpleJobOwner("test", workspace.world.mainRNG, api.AgentKind.Observer), workspace.compileReporter("random-float 30")))
@@ -49,6 +60,6 @@ for(_ <- 1 to 40)
 val m = new org.nlogo.util.MersenneTwisterFast();
 m.setSeed(15);
 for(_ <- 1 to 40)
-  System.out.println(30d * m.nextDouble())
+  System.out.println(30d * m.nextDouble())*/
 
 workspace.dispose