Fix case where intltool-merge is missing that causes an exception when trying to install with setup.py

This commit is contained in:
Stephen Boddy 2017-07-04 19:30:33 +02:00
parent cb99bf5511
commit eedac08179
1 changed files with 12 additions and 3 deletions

View File

@ -55,7 +55,7 @@ class BuildData(build):
if rc != 0: if rc != 0:
raise Warning, "msgfmt returned %d" % rc raise Warning, "msgfmt returned %d" % rc
except Exception, e: except Exception, e:
error("Building gettext files failed. Try setup.py --without-gettext [build|install]") error("Building gettext files failed. Ensure you have gettext installed. Alternatively, try setup.py --without-gettext [build|install]")
error("Error: %s" % str(e)) error("Error: %s" % str(e))
sys.exit(1) sys.exit(1)
@ -63,14 +63,23 @@ class BuildData(build):
INTLTOOL_MERGE='intltool-merge' INTLTOOL_MERGE='intltool-merge'
desktop_in='data/terminator.desktop.in' desktop_in='data/terminator.desktop.in'
desktop_data='data/terminator.desktop' desktop_data='data/terminator.desktop'
os.system ("C_ALL=C " + INTLTOOL_MERGE + " -d -u -c " + TOP_BUILDDIR + rc = os.system ("C_ALL=C " + INTLTOOL_MERGE + " -d -u -c " + TOP_BUILDDIR +
"/po/.intltool-merge-cache " + TOP_BUILDDIR + "/po " + "/po/.intltool-merge-cache " + TOP_BUILDDIR + "/po " +
desktop_in + " " + desktop_data) desktop_in + " " + desktop_data)
if rc != 0:
# run the desktop_in through a command to strip the "_" characters
with open(desktop_in) as file_in, open(desktop_data, 'w') as file_data:
[file_data.write(line.lstrip('_')) for line in file_in]
appdata_in='data/terminator.appdata.xml.in' appdata_in='data/terminator.appdata.xml.in'
appdata_data='data/terminator.appdata.xml' appdata_data='data/terminator.appdata.xml'
os.system ("C_ALL=C " + INTLTOOL_MERGE + " -x -u -c " + TOP_BUILDDIR + rc = os.system ("C_ALL=C " + INTLTOOL_MERGE + " -x -u -c " + TOP_BUILDDIR +
"/po/.intltool-merge-cache " + TOP_BUILDDIR + "/po " + "/po/.intltool-merge-cache " + TOP_BUILDDIR + "/po " +
appdata_in + " " + appdata_data) appdata_in + " " + appdata_data)
if rc != 0:
# run the appdata_in through a command to strip the "_" characters
with open(appdata_in) as file_in, open(appdata_data, 'w') as file_data:
[file_data.write(line.replace('<_','<').replace('</_','</')) for line in file_in]
class Uninstall(Command): class Uninstall(Command):
description = "Attempt an uninstall from an install --record file" description = "Attempt an uninstall from an install --record file"