From 95a2e9e85e1783e1bf2b50ae37bd9eab003a6ca8 Mon Sep 17 00:00:00 2001 From: Federico Igne Date: Wed, 29 Sep 2021 17:36:07 +0100 Subject: Write answers to output file --- src/main/scala/uk/ac/ox/cs/rsacomb/Main.scala | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'src/main/scala/uk/ac/ox/cs/rsacomb/Main.scala') diff --git a/src/main/scala/uk/ac/ox/cs/rsacomb/Main.scala b/src/main/scala/uk/ac/ox/cs/rsacomb/Main.scala index b1fd721..c030301 100644 --- a/src/main/scala/uk/ac/ox/cs/rsacomb/Main.scala +++ b/src/main/scala/uk/ac/ox/cs/rsacomb/Main.scala @@ -16,7 +16,8 @@ package uk.ac.ox.cs.rsacomb -import java.io.File +import java.io.{File, PrintWriter} +import java.nio.file.{Path, Paths, InvalidPathException} import java.util.HashMap import scala.collection.JavaConverters._ import tech.oxfordsemantic.jrdfox.client.UpdateType @@ -97,6 +98,14 @@ object RSAConfig { println(help) sys.exit(0) } + case flag @ ("-o" | "--output") :: _output :: tail => + try { + val output = Paths.get(_output) + parse(tail, config ++ Map('output -> output)) + } catch { + case e: InvalidPathException => + exit(s"'${_output}' is not a valid filename.") + } case flag @ ("-q" | "--queries") :: _query :: tail => { val query = new File(_query) if (!query.isFile) @@ -144,6 +153,11 @@ object RSAComb extends App { val answers = rsa ask queries + /* Write answers to output file */ + val output = new PrintWriter(config('output).get[Path].toFile) + output.write(ujson.write(ujson.Arr(answers.map(_.toJSON)), indent = 4)) + output.close() + // Logger.print(s"$answers", Logger.VERBOSE) // Logger print s"Number of answers: ${answers.length} (${answers.lengthWithMultiplicity})" // Retrieve unfiltered answers -- cgit v1.2.3