From 19fcf57f84a04599062b0751cf781dd073ae360d Mon Sep 17 00:00:00 2001 From: Federico Igne Date: Sat, 2 Oct 2021 10:42:15 +0100 Subject: Expose logger level to CLI --- src/main/scala/uk/ac/ox/cs/rsacomb/Main.scala | 27 ++++++++++++++++++---- .../scala/uk/ac/ox/cs/rsacomb/util/Logger.scala | 2 +- 2 files changed, 24 insertions(+), 5 deletions(-) (limited to 'src/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 c030301..22b1f76 100644 --- a/src/main/scala/uk/ac/ox/cs/rsacomb/Main.scala +++ b/src/main/scala/uk/ac/ox/cs/rsacomb/Main.scala @@ -19,6 +19,7 @@ package uk.ac.ox.cs.rsacomb import java.io.{File, PrintWriter} import java.nio.file.{Path, Paths, InvalidPathException} import java.util.HashMap +import scala.collection.mutable.Map import scala.collection.JavaConverters._ import tech.oxfordsemantic.jrdfox.client.UpdateType import tech.oxfordsemantic.jrdfox.logic.expression.{IRI, Term} @@ -50,7 +51,15 @@ object RSAConfig { -h | -? | --help print this help message - -q | --queries + -l | --logger + specify the logger verbosity. Values are: quiet, normal (default), + debug, verbose. + + -o | --output + path to the output file for the answers to the query (in JSON + format) + + -q | --queries path to a file containing a single SPARQL query. If no query is provided, only the approximation to RSA will be performed. @@ -98,10 +107,19 @@ object RSAConfig { println(help) sys.exit(0) } + case flag @ ("-l" | "--logger") :: _level :: tail => { + val level = _level match { + case "quiet" => Logger.QUIET + case "debug" => Logger.DEBUG + case "verbose" => Logger.VERBOSE + case _ => Logger.NORMAL + } + parse(tail, config += ('logger -> level)) + } case flag @ ("-o" | "--output") :: _output :: tail => try { val output = Paths.get(_output) - parse(tail, config ++ Map('output -> output)) + parse(tail, config += ('output -> output)) } catch { case e: InvalidPathException => exit(s"'${_output}' is not a valid filename.") @@ -110,7 +128,7 @@ object RSAConfig { val query = new File(_query) if (!query.isFile) exit(s"'$query' is not a valid filename.") - parse(tail, config ++ Map('queries -> query)) + parse(tail, config += ('queries -> query)) } case _ontology :: _data => { val ontology = new File(_ontology) @@ -119,7 +137,7 @@ object RSAConfig { if (!file.isFile) exit(s"'$file' is not a valid filename.") } - finalise(config ++ Map('ontology -> ontology, 'data -> data)) + finalise(config += ('ontology -> ontology) += ('data -> data)) } case a => exit(s"Invalid sequence of arguments '${a.mkString(" ")}'.") } @@ -134,6 +152,7 @@ object RSAComb extends App { /* Command-line options */ val config = RSAConfig.parse(args.toList) + Logger.level = config('logger).get[Logger.Level] /* Load original ontology and normalize it */ val ontology = Ontology( diff --git a/src/main/scala/uk/ac/ox/cs/rsacomb/util/Logger.scala b/src/main/scala/uk/ac/ox/cs/rsacomb/util/Logger.scala index bcb1445..a09fcea 100644 --- a/src/main/scala/uk/ac/ox/cs/rsacomb/util/Logger.scala +++ b/src/main/scala/uk/ac/ox/cs/rsacomb/util/Logger.scala @@ -34,7 +34,7 @@ object Logger { def compare(that: Level) = this.level - that.level override def toString = name } - case object QUIET extends Level(0, "normal") + case object QUIET extends Level(0, "quiet") case object NORMAL extends Level(1, "normal") case object DEBUG extends Level(2, "debug") case object VERBOSE extends Level(3, "verbose") -- cgit v1.2.3