remove all hardcoded path in setup.py
authorJF Ding <jian-feng.ding@intel.com>
Mon, 23 Apr 2012 08:46:58 +0000 (16:46 +0800)
committerJF Ding <jian-feng.ding@intel.com>
Mon, 23 Apr 2012 08:46:58 +0000 (16:46 +0800)
Makefile
distfiles/mic.conf.in [moved from distfiles/mic.conf with 77% similarity]
setup.py

index e630bd9..ccacabd 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -37,7 +37,7 @@ man: USAGE.rst
        rst2man $< >mic.1
 
 install: build
-       $(PYTHON) setup.py install  --prefix=$(DESTDIR)/$(PREFIX)
+       $(PYTHON) setup.py install --prefix=$(DESTDIR)/$(PREFIX)
 
 develop: build
        $(PYTHON) setup.py develop
similarity index 77%
rename from distfiles/mic.conf
rename to distfiles/mic.conf.in
index cbad959..2504590 100644 (file)
@@ -2,6 +2,8 @@
 ; general settings
 distro_name = Tizen
 
+plugin_dir = @PREFIX@/lib/mic/plugins
+
 [create]
 ; settings for create subcommand
 tmpdir= /var/tmp/mic
@@ -11,13 +13,15 @@ bootstrapdir= /var/tmp/mic/bootstrap
 
 pkgmgr = zypp
 
-; proxy = http://proxy.yourcompany.com:8080/
-; no_proxy = localhost,127.0.0.0/8,.yourcompany.com
+# to set global proxy for repos
+#proxy = http://proxy.yourcompany.com:8080/
+#no_proxy = localhost,127.0.0.0/8,.yourcompany.com
 
-# Prefix that is added in front of files that are produced.
-name_prefix = output
+# prefix will be added in front of generated files
+#name_prefix = output
 
-; ssl_verify = no
+# to skip all ssl verification for repos
+#ssl_verify = no
 
 [convert]
 ; settings for convert subcommand
index c904b86..22706fd 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -57,18 +57,45 @@ PACKAGES = [MOD_NAME,
 IMAGER_PLUGINS = glob.glob(os.path.join("plugins", "imager", "*.py"))
 BACKEND_PLUGINS = glob.glob(os.path.join("plugins", "backend", "*.py"))
 
-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 = [("/usr/lib/mic/plugins/imager", IMAGER_PLUGINS),
-                    ("/usr/lib/mic/plugins/backend", BACKEND_PLUGINS),
-                    ("/etc/mic", ["distfiles/mic.conf"])]
-)
+# the following code to do a simple parse for '--prefix' opts
+prefix = '/usr'
+is_next = False
+for arg in sys.argv:
+    if is_next:
+        prefix = arg
+        break
+    if '--prefix=' in arg:
+        prefix = arg[9:]
+    elif '--prefix' == arg:
+        is_next = True
+
+if prefix == '/usr':
+    etc_prefix = '/etc'
+else:
+    etc_prefix = os.path.join(prefix, 'etc')
+
+# apply prefix to mic.conf.in to generate actual mic.conf
+conf_str = file('distfiles/mic.conf.in').read()
+conf_str = conf_str.replace('@PREFIX@', prefix)
+with file('distfiles/mic.conf', 'w') as wf:
+    wf.write(conf_str)
+
+try:
+    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, ["distfiles/mic.conf"])]
+    )
+finally:
+    # remove dynamic file distfiles/mic.conf
+    os.unlink('distfiles/mic.conf')