1#! /usr/bin/env python 2 3# Copyright (c) 2013, 2021, Oracle and/or its affiliates. 4# 5# This program is free software; you can redistribute it and/or modify 6# it under the terms of the GNU General Public License, version 2.0, 7# as published by the Free Software Foundation. 8# 9# This program is also distributed with certain software (including 10# but not limited to OpenSSL) that is licensed under separate terms, 11# as designated in a particular file or component or in included license 12# documentation. The authors of MySQL hereby grant you an additional 13# permission to link the program and your derivative works with the 14# separately licensed software that they have included with MySQL. 15# 16# This program is distributed in the hope that it will be useful, 17# but WITHOUT ANY WARRANTY; without even the implied warranty of 18# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19# GNU General Public License, version 2.0, for more details. 20# 21# You should have received a copy of the GNU General Public License 22# along with this program; if not, write to the Free Software 23# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 24 25"""Launch script for the configurator backend. Parses command line options and starts the web server.""" 26 27import sys 28import platform 29import os.path 30import mcc_config 31 32def num_pyver(vn): 33 if isinstance(vn, str): 34 return int(''.join(filter(str.isdigit, vn))) 35 return vn 36 37def num_py_major_minor_tuple(): 38 return map(num_pyver, platform.python_version_tuple()[0:2]) 39 40if __name__ == '__main__': 41 if os.path.isabs(mcc_config.MCC_INSTALL_BINDIR): 42 print "Running out of source dir..." 43 # abs_install_bindir = mcc_config.MCC_INSTALL_BINDIR 44 mcc_config.abs_install_subdir = mcc_config.MCC_INSTALL_BINDIR 45 mcc_config.abs_install_frontenddir = os.path.normpath(os.path.join(mcc_config.MCC_INSTALL_BINDIR, mcc_config.MCC_INSTALL_FRONTENDDIR)) 46 else: 47 print "Running out of install dir: "+os.path.dirname(os.path.abspath(sys.argv[0])) 48 abs_install_bindir = os.path.dirname(os.path.abspath(sys.argv[0])) 49 mcc_config.install_prefix = abs_install_bindir[0:abs_install_bindir.rindex(mcc_config.MCC_INSTALL_BINDIR)] 50 mcc_config.abs_install_subdir = os.path.normpath(os.path.join(mcc_config.install_prefix, 51 mcc_config.MCC_INSTALL_SUBDIR)) 52 mcc_config.install_frontenddir = os.path.join(mcc_config.install_prefix, mcc_config.MCC_INSTALL_FRONTENDDIR) 53 54 sys.path.append(mcc_config.abs_install_subdir) 55 56 (pymajor, pyminor) = num_py_major_minor_tuple() 57 assert (pymajor == 2 and pyminor >= 6), 'Unsupported Python version: '+str(platform.python_version()) 58 sys.path.append('/opt/csw/lib/python/site-packages') 59 60 import request_handler 61 request_handler.main(mcc_config.install_prefix, mcc_config.abs_install_subdir) 62 63