<result>
<output>Usage:
/usr/local/bin/tesseract --help | --help-extra | --version
/usr/local/bin/tesseract --list-langs
/usr/local/bin/tesseract imagename outputbase [options...] [configfile...]
OCR options:
-l LANG[+LANG] Specify language(s) used for OCR.
NOTE: These options must occur before any configfile.
Single options:
--help Show this help message.
--help-extra Show extra help for advanced users.
--version Show version information.
--list-langs List available languages for tesseract engine.
</output>
<code>1</code>
</result>
I guess that the "1" code blocks the printing. If I use proc:system("/usr/local/bin/tesseract", "--help"), it works.
Interestingly, proc:execute("/usr/local/bin/tesseract") works (I have BaseX 9.2).
How does the output look like?
proc:system("/usr/local/bin/tesseract") returns the following:
If the code 1 is raised, it indicates that your command will be
executed indeed, but it returns the exit code 1. Which output would
you expect?
SET DEBUG true
DEBUG: true
XQUERY proc:system("/usr/local/bin/tesseract")
org.basex.query.QueryException:
at org.basex.query.func.proc.ProcSystem.item(ProcSystem.java:26)
at org.basex.query.expr.ParseExpr.value(ParseExpr.java:50)
at org.basex.query.expr.ParseExpr.iter(ParseExpr.java:45)
at org.basex.query.scope.MainModule.iter(MainModule.java:97)
at org.basex.query.QueryContext.iter(QueryContext.java:332)
at org.basex.query.QueryProcessor.iter(QueryProcessor.java:90)
at org.basex.core.cmd.AQuery.query(AQuery.java:107)
at org.basex.core.cmd.XQuery.run(XQuery.java:22)
at org.basex.core.Command.run(Command.java:257)
at org.basex.core.Command.execute(Command.java:93)
at org.basex.api.client.LocalSession.execute(LocalSession.java:132)
at org.basex.api.client.Session.execute(Session.java:36)
at org.basex.core.CLI.execute(CLI.java:92)
at org.basex.core.CLI.execute(CLI.java:76)
at org.basex.BaseX.console(BaseX.java:176)
at org.basex.BaseX.<init>(BaseX.java:151)
at org.basex.BaseX.main(BaseX.java:42)
org.basex.core.BaseXException: Stopped at ., 1/12:
[proc:code0001]
at org.basex.core.Command.execute(Command.java:94)
at org.basex.api.client.LocalSession.execute(LocalSession.java:132)
at org.basex.api.client.Session.execute(Session.java:36)
at org.basex.core.CLI.execute(CLI.java:92)
at org.basex.core.CLI.execute(CLI.java:76)
at org.basex.BaseX.console(BaseX.java:176)
at org.basex.BaseX.<init>(BaseX.java:151)
at org.basex.BaseX.main(BaseX.java:42)
Caused by: org.basex.query.QueryException:
at org.basex.query.func.proc.ProcSystem.item(ProcSystem.java:26)
at org.basex.query.expr.ParseExpr.value(ParseExpr.java:50)
at org.basex.query.expr.ParseExpr.iter(ParseExpr.java:45)
at org.basex.query.scope.MainModule.iter(MainModule.java:97)
at org.basex.query.QueryContext.iter(QueryContext.java:332)
at org.basex.query.QueryProcessor.iter(QueryProcessor.java:90)
at org.basex.core.cmd.AQuery.query(AQuery.java:107)
at org.basex.core.cmd.XQuery.run(XQuery.java:22)
at org.basex.core.Command.run(Command.java:257)
at org.basex.core.Command.execute(Command.java:93)
... 7 more
Stopped at ., 1/12:
[proc:code0001]
On Nov 13, 2019, at 5:50 PM, Christian Grün <christian.gruen@gmail.com> wrote:
Hi Giuseppe,
When I try to run
proc:system("/usr/local/bin/tesseract") I get the error [proc:code0001]
On my system, I get the (expected) error…
[proc:error] Cannot run program "/usr/local/bin/tesseract":
CreateProcess error=2, Das System kann die angegebene Datei nicht finden
…so we may need to find out what code 1 means in your case. Could you
run the query with debugging enabled and pass us on the stack trace?
And your error code indicates that you are using an older version of
BaseX. Does it work with a more recent version? If not, what do you
get?
Best,
Christian
Similarly:
proc:system("tesseract") returns [proc:error] Cannot run program "tesseract": error=2, No such file or directory
Similarly:
proc:system("tesseract", (), map {"dir" : "/usr/local/bin/"}) returns [proc:error] Cannot run program "tesseract" (in directory "/usr/local/bin"): error=2, No such file or directory
The command "tesseract" works at the command line. I suspect there may be a problem with permissions: is there a way to overcome this error? Thanks.
Best,
Giuseppe