#intr_system("echo x-session-manager open files: `lsof -p $X_PID | grep ICE-unix | wc -l`")
####intr_system("wmctrl -l | ( grep '"+lyx_window_name+"' || ( killall lyx ; sleep 1 ; killall -9 lyx ))")
#intr_system("wmctrl -R '"+lyx_window_name+"' ;sleep 0.1")
- system_retry(30, "wmctrl -a '"+lyx_window_name+"'")
+ system_retry(30, "wmctrl -i -a '"+lyx_window_name+"'")
lyx_pid = os.environ.get('LYX_PID')
if max_loops is None:
max_loops = 3
+PACKAGE = os.environ.get('PACKAGE')
+if not PACKAGE is None:
+ print "PACKAGE = " + PACKAGE + "\n"
+
+PO_BUILD_DIR = os.environ.get('PO_BUILD_DIR')
+if not PO_BUILD_DIR is None:
+ print "PO_BUILD_DIR = " + PO_BUILD_DIR + "\n"
+
+lyx = os.environ.get('LYX')
+if lyx is None:
+ lyx = "lyx"
+
lyx_exe = os.environ.get('LYX_EXE')
if lyx_exe is None:
- lyx_exe = "lyx"
+ lyx_exe = lyx
xvkbd_exe = os.environ.get('XVKBD_EXE')
if xvkbd_exe is None:
print "Ignoring comment line: " + c
elif c[0:9] == 'TestBegin':
print "\n"
- lyx_pid=os.popen("pidof lyx").read()
+ lyx_pid=os.popen("pidof " + lyx).read()
if lyx_pid != "":
print "Found running instance(s) of LyX: " + lyx_pid + ": killing them all\n"
- intr_system("killall lyx", True)
+ intr_system("killall " + lyx, True)
time.sleep(0.5)
- intr_system("killall -KILL lyx", True)
+ intr_system("killall -KILL " + lyx, True)
time.sleep(0.2)
print "Starting LyX . . ."
if lyx_userdir is None:
intr_system(lyx_exe + c[9:] + "&")
else:
intr_system(lyx_exe + " -userdir " + lyx_userdir + " " + c[9:] + "&")
- while True:
- lyx_pid=os.popen("pidof lyx").read().rstrip()
+ count = 5
+ while count > 0:
+ lyx_pid=os.popen("pidof " + lyx).read().rstrip()
if lyx_pid != "":
lyx_window_name=os.popen("wmctrl -l -p | grep ' " + str(lyx_pid) + " ' | cut -d ' ' -f 1").read().rstrip()
if lyx_window_name != "":
break
+ else:
+ count = count - 1
print 'lyx_win: ' + lyx_window_name + '\n'
print "Waiting for LyX to show up . . ."
time.sleep(1)
+ if count <= 0:
+ print 'Timeout: could not start ' + lyx_exe, '\n'
+ sys.stdout.flush()
+ failed = True
print 'lyx_pid: ' + lyx_pid + '\n'
print 'lyx_win: ' + lyx_window_name + '\n'
elif c[0:5] == 'Sleep':
- print "Sleeping for " + c[6:] + "\n"
+ print "Sleeping for " + c[6:] + " seconds\n"
time.sleep(float(c[6:]))
elif c[0:4] == 'Exec':
cmd = c[5:].rstrip()
sendKeystring(c[4:], lyx_pid)
else:
##intr_system('killall lyx; sleep 2 ; killall -9 lyx')
- print 'No path /proc/' + lyx_pid + '/status, exiting'
+ if lyx_pid is None:
+ print 'No path /proc/xxxx/status, exiting'
+ else:
+ print 'No path /proc/' + lyx_pid + '/status, exiting'
os._exit(1)
elif c[0:4] == 'KD: ':
key_delay = c[4:].rstrip('\n')
sendKeystring(ResetCommand, lyx_pid)
elif c[0:6] == 'Assert':
cmd = c[7:].rstrip()
- print "Executing " + cmd
result = intr_system(cmd)
failed = failed or (result != 0)
print "result=" + str(result) + ", failed=" + str(failed)
time.sleep(0.5)
if not lyx_exists():
print "LyX instance not found because of crash or assert !\n"
- failed = true
+ failed = True
else:
print "Terminating lyx instance: " + str(lyx_pid) + "\n"
intr_system("kill -9 " + str(lyx_pid), True);
lang = c[5:].rstrip()
print "Setting LANG=" + lang + "\n"
os.environ['LANG'] = lang
- os.environ['LANGUAGE'] = lang
+ os.environ['LC_ALL'] = lang
# If it doesn't exist, create a link <locale_dir>/<country-code>/LC_MESSAGES/lyx<version-suffix>.mo
# pointing to the corresponding .gmo file. Needed to let lyx find the right translation files.
# See http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg165613.html
else:
short_code = ccode
lyx_dir = os.popen("dirname \"" + lyx_exe + "\"").read().rstrip()
- print "Executing: grep 'PACKAGE =' " + lyx_dir + "/Makefile | sed -e 's/PACKAGE = \(.*\)/\\1/'"
- lyx_name = os.popen("grep 'PACKAGE =' " + lyx_dir + "/Makefile | sed -e 's/PACKAGE = \(.*\)/\\1/'").read().rstrip()
- intr_system("mkdir -p " + locale_dir + "/" + ccode + "/LC_MESSAGES")
- if lyx_dir[0:3] == "../":
- rel_dir = "../../" + lyx_dir
+ if PACKAGE is None:
+ # on cmake-build there is no Makefile in this directory
+ # so PACKAGE has to be provided
+ if os.path.exists(lyx_dir + "/Makefile"):
+ print "Executing: grep 'PACKAGE =' " + lyx_dir + "/Makefile | sed -e 's/PACKAGE = \(.*\)/\\1/'"
+ lyx_name = os.popen("grep 'PACKAGE =' " + lyx_dir + "/Makefile | sed -e 's/PACKAGE = \(.*\)/\\1/'").read().rstrip()
+ else:
+ print 'Could not determine PACKAGE name needed for translations\n'
+ failed = True
else:
- rel_dir = lyx_dir
+ lyx_name = PACKAGE
+ intr_system("mkdir -p " + locale_dir + "/" + ccode + "/LC_MESSAGES")
intr_system("rm -f " + locale_dir + "/" + ccode + "/LC_MESSAGES/" + lyx_name + ".mo")
- intr_system("ln -s " + rel_dir + "/../po/" + short_code + ".gmo " + locale_dir + "/" + ccode + "/LC_MESSAGES/" + lyx_name + ".mo")
+ if PO_BUILD_DIR is None:
+ if lyx_dir[0:3] == "../":
+ rel_dir = "../../" + lyx_dir
+ else:
+ rel_dir = lyx_dir
+ intr_system("ln -s " + rel_dir + "/../po/" + short_code + ".gmo " + locale_dir + "/" + ccode + "/LC_MESSAGES/" + lyx_name + ".mo")
+ else:
+ intr_system("ln -s " + PO_BUILD_DIR + "/" + short_code + ".gmo " + locale_dir + "/" + ccode + "/LC_MESSAGES/" + lyx_name + ".mo")
else:
print "Unrecognised Command '" + c + "'\n"
failed = True