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