diff options
author | kali <kali@leap.se> | 2012-09-20 02:40:56 +0900 |
---|---|---|
committer | kali <kali@leap.se> | 2012-09-20 02:40:56 +0900 |
commit | 50396fca082652dd1a1617e0d029c1c726e4c651 (patch) | |
tree | ee7a91c49034c95493957550c94164c06ecbea30 /setup.py | |
parent | cfb7f5a2e9bae74dd60067a399a222d62e81da2c (diff) | |
parent | ecd8696e6e009826523b62a508cdf2202eaa2411 (diff) |
Merge branch 'feature/branding' into develop
Closes #553
Diffstat (limited to 'setup.py')
-rwxr-xr-x | setup.py | 149 |
1 files changed, 143 insertions, 6 deletions
@@ -12,11 +12,17 @@ except ImportError: import os from pkg import utils +from pkg import branding import versioneer versioneer.versionfile_source = 'src/leap/_version.py' versioneer.versionfile_build = 'leap/_version.py' versioneer.tag_prefix = '' # tags are like 1.2.0 -versioneer.parentdir_prefix = 'leap_client-' +#versioneer.parentdir_prefix = 'leap_client-' +versioneer.parentdir_prefix = branding.APP_PREFIX + +branding.brandingfile = 'src/leap/_branding.py' +branding.brandingfile_build = 'leap/_branding.py' +branding.cert_path = 'src/leap/certs' setup_root = os.path.dirname(__file__) sys.path.insert(0, os.path.join(setup_root, "src")) @@ -37,11 +43,139 @@ trove_classifiers = [ "Topic :: Utilities" ] +BRANDING_OPTS = """ +# Do NOT manually edit this file! +# This file has been written from pkg/branding/config.py data by leap setup.py +# script. + +BRANDING = { + 'short_name': "%(short_name)s", + 'provider_domain': "%(provider_domain)s", + 'provider_ca_file': "%(provider_ca_file)s"} +""" + + +def write_to_branding_file(filename, branding_dict): + f = open(filename, "w") + f.write(BRANDING_OPTS % branding_dict) + f.close() + + +def copy_pemfile_to_certdir(frompath, topath): + with open(frompath, "r") as cert_f: + cert_s = cert_f.read() + with open(topath, "w") as f: + f.write(cert_s) + + +def do_branding(targetfile=branding.brandingfile): + if branding.BRANDED_BUILD: + opts = branding.BRANDED_OPTS + print("DOING BRANDING FOR LEAP") + certpath = opts['provider_ca_path'] + shortname = opts['short_name'] + tocertfile = shortname + '-cacert.pem' + topath = os.path.join( + branding.cert_path, + tocertfile) + copy_pemfile_to_certdir( + certpath, + topath) + opts['provider_ca_file'] = tocertfile + write_to_branding_file( + targetfile, + opts) + else: + print('not running branding because BRANDED_BUILD set to False') + + +from setuptools import Command + + +class DoBranding(Command): + description = "copy the branding info the the top level package" + user_options = [] + + def initialize_options(self): + pass + + def finalize_options(self): + pass + + def run(self): + do_branding() + +from distutils.command.build import build as _build +from distutils.command.sdist import sdist as _sdist + + +class cmd_build(_build): + def run(self): + #versioneer.cmd_build(self) + _build.run(self) + + # versioneer + versions = versioneer.get_versions(verbose=True) + # now locate _version.py in the new build/ directory and replace it + # with an updated value + target_versionfile = os.path.join( + self.build_lib, + versioneer.versionfile_build) + print("UPDATING %s" % target_versionfile) + os.unlink(target_versionfile) + f = open(target_versionfile, "w") + f.write(versioneer.SHORT_VERSION_PY % versions) + f.close() + + # branding + target_brandingfile = os.path.join( + self.build_lib, + branding.brandingfile_build) + do_branding(targetfile=target_brandingfile) + + +class cmd_sdist(_sdist): + def run(self): + # versioneer: + versions = versioneer.get_versions(verbose=True) + self._versioneer_generated_versions = versions + # unless we update this, the command will keep using the old version + self.distribution.metadata.version = versions["version"] + + # branding: + do_branding() + return _sdist.run(self) + + def make_release_tree(self, base_dir, files): + _sdist.make_release_tree(self, base_dir, files) + # now locate _version.py in the new base_dir directory (remembering + # that it may be a hardlink) and replace it with an updated value + target_versionfile = os.path.join( + base_dir, versioneer.versionfile_source) + print("UPDATING %s" % target_versionfile) + os.unlink(target_versionfile) + f = open(target_versionfile, "w") + f.write( + versioneer.SHORT_VERSION_PY % self._versioneer_generated_versions) + f.close() + + +cmdclass = versioneer.get_cmdclass() +cmdclass["branding"] = DoBranding +cmdclass["build"] = cmd_build +cmdclass["sdist"] = cmd_sdist + +launcher_name = branding.get_shortname() +if launcher_name: + leap_launcher = 'leap-%s-client=leap.app:main' % launcher_name +else: + leap_launcher = 'leap=leap.app:main' + setup( - name='leap-client', + name=branding.get_name(), package_dir={"": "src"}, version=versioneer.get_version(), - cmdclass=versioneer.get_cmdclass(), + cmdclass=cmdclass, description="the internet encryption toolkit", long_description=( "Desktop Client for the LEAP Platform." @@ -79,8 +213,11 @@ setup( ["pkg/linux/polkit/net.openvpn.gui.leap.policy"]) ], platforms="all", - scripts=["pkg/scripts/leap"], - entry_points=""" + #scripts=["pkg/scripts/leap"], + entry_points = { + 'console_scripts': [leap_launcher] + }, + #entry_points=""" # -*- Entry points: -*- - """, + #""", ) |