From 8f7fffcce55b2c04e088c11e6445e25e1dc4ca87 Mon Sep 17 00:00:00 2001 From: Gui Chen Date: Thu, 12 Sep 2013 05:42:23 -0400 Subject: [PATCH] better handling for installing config file in virtualenv in this handling, mic will check 'real_prefix' which is not existed in real python env but in virtualenv to determine the config file location Change-Id: Iaa67ba1d78395470bc20dd7682c29ec4c933fd56 Signed-off-by: Gui Chen --- mic/conf.py | 11 ++++------- setup.cfg | 2 -- setup.py | 62 ++++++++++++++++--------------------------------------------- 3 files changed, 20 insertions(+), 55 deletions(-) delete mode 100644 setup.cfg diff --git a/mic/conf.py b/mic/conf.py index e29bd3b..45485d8 100644 --- a/mic/conf.py +++ b/mic/conf.py @@ -27,13 +27,10 @@ DEFAULT_GSITECONF = '/etc/mic/mic.conf' def get_siteconf(): - mic_path = os.path.dirname(__file__) - - m = re.match(r"(?P.*)\/lib(64)?\/.*", mic_path) - if m and m.group('prefix') != "/usr": - return os.path.join(m.group('prefix'), "etc/mic/mic.conf") - - return DEFAULT_GSITECONF + if hasattr(sys, 'real_prefix'): + return os.path.join(sys.prefix, "etc/mic/mic.conf") + else: + return DEFAULT_GSITECONF class ConfigMgr(object): prefer_backends = ["zypp", "yum"] diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index fe98c34..0000000 --- a/setup.cfg +++ /dev/null @@ -1,2 +0,0 @@ -[install] -prefix=$PREFIX diff --git a/setup.py b/setup.py index d4db893..c5c2a74 100644 --- a/setup.py +++ b/setup.py @@ -3,11 +3,6 @@ import os, sys import glob from distutils.core import setup -try: - import setuptools - # enable "setup.py develop", optional -except ImportError: - pass MOD_NAME = 'mic' @@ -45,53 +40,28 @@ PACKAGES = [MOD_NAME, IMAGER_PLUGINS = glob.glob(os.path.join("plugins", "imager", "*.py")) BACKEND_PLUGINS = glob.glob(os.path.join("plugins", "backend", "*.py")) -# the following code to do a simple parse for '--prefix' opts prefix = sys.prefix -is_next = False -for arg in sys.argv: - if is_next: - prefix = arg - break - if '--prefix=' in arg: - prefix = arg[9:] - break - elif '--prefix' == arg: - is_next = True - -# get the installation path of mic.conf -prefix = os.path.abspath(os.path.expanduser(prefix)).rstrip('/') -if prefix.lstrip('/') == 'usr': - etc_prefix = '/etc' -else: - etc_prefix = os.path.join(prefix, 'etc') +# if real_prefix, it must be in virtualenv, use prefix as root +root = sys.prefix if hasattr(sys, 'real_prefix') else '' conffile = 'etc/mic.conf' -if os.path.isfile('%s/mic/mic.conf' % etc_prefix): - conffile += '.new' - # apply prefix to mic.conf.in to generate actual mic.conf conf_str = file('etc/mic.conf.in').read() conf_str = conf_str.replace('@PREFIX@', prefix) with file(conffile, 'w') as wf: wf.write(conf_str) -try: - os.environ['PREFIX'] = prefix - setup(name=MOD_NAME, - version = version, - description = 'Image Creator for Linux Distributions', - author='Jian-feng Ding, Qiang Zhang, Gui Chen', - author_email='jian-feng.ding@intel.com, qiang.z.zhang@intel.com, gui.chen@intel.com', - url='https://github.com/jfding/mic', - scripts=[ - 'tools/mic', - ], - packages = PACKAGES, - data_files = [("%s/lib/mic/plugins/imager" % prefix, IMAGER_PLUGINS), - ("%s/lib/mic/plugins/backend" % prefix, BACKEND_PLUGINS), - ("%s/mic" % etc_prefix, [conffile])] - ) -finally: - # remove dynamic file distfiles/mic.conf - os.unlink(conffile) - +setup(name=MOD_NAME, + version = version, + description = 'Image Creator for Linux Distributions', + author='Jian-feng Ding, Qiang Zhang, Gui Chen', + author_email='jian-feng.ding@intel.com, qiang.z.zhang@intel.com, gui.chen@intel.com', + url='https://github.com/jfding/mic', + scripts=[ + 'tools/mic', + ], + packages = PACKAGES, + data_files = [("%s/lib/mic/plugins/imager" % prefix, IMAGER_PLUGINS), + ("%s/lib/mic/plugins/backend" % prefix, BACKEND_PLUGINS), + ("%s/etc/mic" % root, [conffile])] +) -- 2.7.4