1
2 """
3 Startup plugin for command-line importer.
4
5 Copyright 2009 Glencoe Software, Inc. All rights reserved.
6 Use is subject to license terms supplied in LICENSE.txt
7
8 """
9
10 import subprocess, optparse, os, sys, signal, time
11 from omero.cli import BaseControl, CLI, OMERODIR
12 import omero.java
13
14 START_CLASS="ome.formats.importer.cli.CommandLineImporter"
15 TEST_CLASS="ome.formats.test.util.TestEngine"
16
17 HELP = """Run the Java-based command-line importer
18
19 This is a Python wrapper around the Java importer. Login is handled
20 by Python OmeroCli. To see more options, use "--javahelp".
21
22 Options marked with "**" are passed strictly to Java. If they interfere
23 with any of the Python arguments, you may need to end precede your arguments
24 with a "--".
25
26 Examples:
27
28 bin/omero import ~/Data/my_file.dv # Use current login
29 bin/omero import -- --debug=ALL ~/Data/my_file2.png # Set Java debug
30
31 """
32 TESTHELP = """Run the Importer TestEngine suite (devs-only)"""
33
35
36 COMMAND = [START_CLASS]
37
59
60
62
63 client_dir = self.ctx.dir / "lib" / "client"
64 log4j = "-Dlog4j.configuration=log4j-cli.properties"
65 classpath = [ file.abspath() for file in client_dir.files("*.jar") ]
66 xargs = [ log4j, "-Xmx1024M", "-cp", os.pathsep.join(classpath) ]
67
68
69
70
71 out = args.file
72 err = args.errs
73
74 if out:
75 out = open(out, "w")
76 if err:
77 err = open(err, "w")
78
79 login_args = []
80 if args.javahelp:
81 login_args.append("-h")
82
83 if "-h" not in login_args and "-f" not in login_args and not args.java_f:
84 client = self.ctx.conn(args)
85 srv = client.getProperty("omero.host")
86 prt = client.getProperty("omero.port")
87 login_args.extend(["-s", srv])
88 login_args.extend(["-p", prt])
89 login_args.extend(["-k", client.getSessionId()])
90
91
92
93
94 java_args = {
95 "java_a": "-a",
96 "java_f": "-f",
97 "java_c": "-c",
98 "java_l": "-l",
99 "java_d": "-d",
100 "java_r": "-r",
101 "java_r": "-r",
102 "java_n": "-n",
103 "java_x": "-x",
104 "java_report": "--report",
105 "java_upload": "--upload",
106 "java_logs": "--logs",
107 "java_email": "--email",
108 "java_debug": "--debug" }
109
110 for attr_name, arg_name in java_args.items():
111 arg_value = getattr(args, attr_name)
112 if arg_value:
113 login_args.append(arg_name)
114 if isinstance(arg_value, (str, unicode)):
115 login_args.append(arg_value)
116
117 a = self.COMMAND + login_args + args.arg
118 p = omero.java.popen(a, debug=False, xargs = xargs, stdout=out, stderr=err)
119 self.ctx.rv = p.wait()
120
123
124 try:
125 register("import", ImportControl, HELP)
126 register("testengine", TestEngine, TESTHELP)
127 except NameError:
128 if __name__ == "__main__":
129 cli = CLI()
130 cli.register("import", ImportControl, HELP)
131 cli.register("testengine", TestEngine, TESTHELP)
132 cli.invoke(sys.argv[1:])
133