1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
|
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Copyright (c) 2004 - 2023 Detlev Offenbach <detlev@die-offenbachs.de>
#
# This is the install script for eric's translation files.
"""
Installation script for the eric IDE translation files.
"""
import getopt
import glob
import os
import shutil
import sys
try:
from eric7.Globals import getConfig
except ImportError:
print("The eric IDE doesn't seem to be installed. Aborting.")
sys.exit(1)
except SyntaxError:
# an incomplete or old config file was found
print("The eric IDE seems to be installed incompletely. Aborting.")
sys.exit(1)
def getConfigDir():
"""
Global function to get the name of the directory storing the config data.
@return directory name of the config dir (string)
"""
cdn = ".eric7"
hp = os.path.join(os.path.expanduser("~"), cdn)
if not os.path.exists(hp):
os.mkdir(hp)
return hp
# Define the globals.
progName = None
configDir = getConfigDir()
privateInstall = False
def usage(rcode=2):
"""
Display a usage message and exit.
@param rcode return code passed back to the calling process (integer)
"""
global progName, configDir
print()
print("Usage:")
print(" {0} [-hp]".format(progName))
print("where:")
print(" -h display this help message")
print(" -p install into the private area ({0})".format(configDir))
sys.exit(rcode)
def installTranslations():
"""
Install the translation files into the right place.
"""
global privateInstall, configDir
targetDir = configDir if privateInstall else getConfig("ericTranslationsDir")
try:
for fn in glob.glob(os.path.join("eric", "src", "eric7", "i18n", "*.qm")):
shutil.copy2(fn, targetDir)
os.chmod(os.path.join(targetDir, os.path.basename(fn)), 0o644)
except OSError as msg:
if sys.platform.startswith(("win", "cygwin")):
sys.stderr.write(
"OSError: {0}\nTry install-i18n with admin rights.\n".format(msg)
)
else:
sys.stderr.write("OSError: {0}\nTry install-i18n as root.\n".format(msg))
def main(argv):
"""
The main function of the script.
@param argv list of command line arguments (list of strings)
"""
# Parse the command line.
global progName, privateInstall
progName = os.path.basename(argv[0])
try:
optlist, args = getopt.getopt(argv[1:], "hp")
except getopt.GetoptError:
usage()
global platBinDir
for opt, _arg in optlist:
if opt == "-h":
usage(0)
elif opt == "-p":
privateInstall = 1
installTranslations()
if __name__ == "__main__":
try:
main(sys.argv)
except SystemExit:
raise
except Exception:
print(
"""An internal error occured. Please report all the output of"""
""" the program,\nincluding the following traceback, to"""
""" eric-bugs@eric-ide.python-projects.org.\n"""
)
raise
#
# eflag: noqa = M801
|