It is published.... FYI you can use sbt publish-local to deploy it on your computer.

I'll think a bit more on how to achieve that. The exception handling mecanism is hardcoded in a private variable of the scala console, I don't know yet how to get the control over it.

Le 28/04/2015 19:56, Andreas Schuh a écrit :
This is why I think the “:quit” console command cannot be utilised for this:

OpenMOLE>try {
     | throw new Exception("runtime error")
     | } catch {
     | :quit 1
<console>:4: error: illegal start of simple expression
       :quit 1
       ^
OpenMOLE>

That is why I was wondering if maybe you would need some global setting which let’s users of the console request you to handle all exceptions and quit with non-zero exit code if one is caught. This would always make sense in headless batch mode, but I would also want it when I pipe in the OpenMOLE script via STDIN (which could also be made explicit via let’s say “-s -” or “-s stdin” or similar).

On 28 Apr 2015, at 18:40, Andreas Schuh <[email protected] <mailto:[email protected]>> wrote:

Hi Romain,

if it is possible to invoke “:quit” within a Scala code block, this would be fine. Not sure if that is possible, though. Right now, I am having some troubles getting a working OpenMOLE build again after I update the master branch and cannot try it out. I was experiencing some issues with my plugin that I believe used to work before. But with the most recent master branch my plugin doesn’t work b/c of changes of InputOutputBuilder and the snapshot MAVEN .jar files not being in sync with these most recent changes.

If you could update the MAVEN snapshot archives which I compile my plugin against, I should be able to run my code in the latest OpenMOLE master branch version and try out the recent return code related changes.

Thanks,
Andreas

On 28 Apr 2015, at 18:34, Romain Reuillon <[email protected] <mailto:[email protected]>> wrote:

Hi Andreas,

I just pushed some code so the console should return a non-0 return code in case of compilation error. For runtime errors so, you should wrap your code in a try catch and use the ":quit erno" command to get an non 0 return code. Would that suite your requierements?

Romain

Le 23/04/2015 15:51, Andreas Schuh a écrit :
It turns out for the first purpose, to quit when no appropriate arguments were supplied, I should just check these in my wrapping application *before* starting OpenMOLE console process at all… sorry I didn’t see this earlier.

On the other hand, I would like to be able to catch errors in the script and if one is encountered exit with non-zero return code. The problem with :quit is that it cannot be part of a conditional branch, e.g.,

if (args.length == 0) :quit 1

doesn’t work b/c :quit is not actually a Scala function, but a special console command.

Is it feasible to have something similar to Bash’s “set -e” which would make the OpenMOLE process quit as soon as it encounters an error in one of the statements or catches an unhandled exception ?

If it’s too complicated or requires more than just small changes, I can life with checking all arguments in my wrapper App before starting the OpenMOLE console.

On 23 Apr 2015, at 11:22, Romain Reuillon <[email protected] <mailto:[email protected]>> wrote:

Yep, I am placing much hopes in this JSR: https://jcp.org/en/jsr/detail?id=376, that will make it possible...

Le 23/04/2015 12:20, Andreas Schuh a écrit :
Thanks, Romain, that’ll do. I think in the long run it would anyway be nicer to be able to use OpenMOLE as library. Then this wouldn’t be needed any longer.

On 23 Apr 2015, at 10:41, Romain Reuillon <[email protected] <mailto:[email protected]>> wrote:

Hi Andreas,

I just pushed code so you may now pass a return code to the quit command: :q 14 will exit OpenMOLE and you'll get the 14 exit code for the openmole process.

This is a bit hacky though and depends on some scala console internal behaviour, I hope it will not be too hard to maintain in the long run.

cheers,
Romain

Le 22/04/2015 18:19, Andreas Schuh a écrit :
Sorry, wanted to include more specifics on my intention… a wrong argument would be for example one that doesn’t exist in the configuration file or simply no argument at all. In that case I would rather print a help screen and exit. In a way I would like to use an OpenMOLE script within the REPL as in any other scripting language. If I could execute my plugin code without the OpenMOLE console (REPL) but directly via a library call, that would be best of course...

Within the REPL, exceptions are caught and the next instruction is read from STDIN and executed. In my case, I would prefer if the execution would stop then and the console quit with error code instead.

On 22 Apr 2015, at 17:16, Andreas Schuh <[email protected] <mailto:[email protected]>> wrote:

Not sure if that would be enough. An “exit” command that can be passed a return code for the OpenMOLE console would be nice.

Here’s my main function where I execute OpenMOLE as a subprocess: https://github.com/schuhschuh/REPEAT/blob/a8ebb2ca826616fca66fcd91832dc87ed585a2ff/src/main/scala/com/andreasschuh/repeat/app/Main.scala#L41

On 22 Apr 2015, at 17:13, Romain Reuillon <[email protected] <mailto:[email protected]>> wrote:

.... actually returning at the end of the start method would be ok.

Le 22/04/2015 18:11, Romain Reuillon a écrit :
Hi Andreas,

would you like to be able to set the retrun code it from a script ? What does an incorect argument mean in your case?

I would say, this post is a good starting point to implement such a feature into openmole: http://stackoverflow.com/questions/6431119/control-over-exit-codes-in-a-osgi-shutdown, we could add a command in the console to achieve that.

Romain

Le 22/04/2015 17:38, Andreas Schuh a écrit :
Hi,

I was wondering if it is somehow possible to have a OpenMOLE batch script (read either from file or STDIN), terminate the console with a non-zero exit code ? In my particular case, I start a workflow execution within an application that wraps the OpenMOLE console execution. Users need not be to be aware that they are running OpenMOLE… if some error occurs or when the user forgot some command arguments, I want to be able to print an error message and exit (the console) with non-zero exit code.

Andreas
_______________________________________________
OpenMOLE-users mailing list
[email protected]
http://fedex.iscpif.fr/mailman/listinfo/openmole-users




_______________________________________________
OpenMOLE-users mailing list
[email protected]
http://fedex.iscpif.fr/mailman/listinfo/openmole-users











Attachment: smime.p7s
Description: Signature cryptographique S/MIME

_______________________________________________
OpenMOLE-users mailing list
[email protected]
http://fedex.iscpif.fr/mailman/listinfo/openmole-users

Reply via email to