python: get rid of hardcoded search pathes in python code.

Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
This commit is contained in:
Keir Fraser committed 2009-05-19 02:16:37 +01:00
1 parent cc0c5e1dfc
commit 9125594e4e
3 files changed
+22 -31

No files matched your search

+11 -2
View File
@@ -13,9 +13,18 @@ POTFILE := $(PODIR)/xen-xm.pot
I18NSRCFILES = $(shell find xen/xm/ -name '*.py')
CATALOGS = $(patsubst %,xen/xm/messages/%.mo,$(LINGUAS))
NLSDIR = $(SHAREDIR)/locale
xenpath = "xen/util/path.py"
.PHONY: build buildpy genpath
genpath:
rm -f ${xenpath}
echo "SBINDIR=\"$(SBINDIR)\"" >> ${xenpath}
echo "BINDIR=\"$(BINDIR)\"" >> ${xenpath}
echo "LIBEXEC=\"$(LIBEXEC)\"" >> ${xenpath}
echo "LIBDIR=\"$(LIBDIR)\"" >> ${xenpath}
echo "PRIVATE_BINDIR=\"$(PRIVATE_BINDIR)\"" >> ${xenpath}
.PHONY: build buildpy
buildpy:
buildpy: genpath
CC="$(CC)" CFLAGS="$(CFLAGS)" $(PYTHON) setup.py build
build: buildpy refresh-pot refresh-po $(CATALOGS)
+10 -29
View File
@@ -16,19 +16,10 @@
#============================================================================
LIB_32 = "/usr/lib"
LIB_64 = "/usr/lib64"
LIB_BIN_SUFFIX = "xen/bin"
## The architectures on which the LIB_64 directory is used. This
# deliberately excludes ia64 and ppc64, and Solaris.
LIB_64_ARCHS = [ 'x86_64', 's390x', 'sparc64']
import os
import os.path
import sys
from xen.util.path import SBINDIR,BINDIR,LIBEXEC,LIBDIR,PRIVATE_BINDIR
def execute(exe, args = None):
exepath = pathTo(exe)
@@ -41,26 +32,16 @@ def execute(exe, args = None):
print exepath, ": ", exn
sys.exit(1)
def pathTo(exe):
return os.path.join(path(), exe)
SEARCHDIRS = [ BINDIR, SBINDIR, LIBEXEC, PRIVATE_BINDIR ]
def pathTo(exebin):
for dir in SEARCHDIRS:
exe = os.path.join(dir, exebin)
if os.path.exists(exe):
return exe
return None
def path():
return os.path.join(libpath(), LIB_BIN_SUFFIX)
return LIBEXEC
def libpath():
machine = os.uname()[4]
if sys.argv[0] != '-c':
prefix = os.path.dirname(os.path.dirname(sys.argv[0]))
path = os.path.join(prefix, os.path.basename(LIB_64))
if machine in LIB_64_ARCHS and os.path.exists(path):
return path
path = os.path.join(prefix, os.path.basename(LIB_32))
if os.path.exists(path):
return path
if machine in LIB_64_ARCHS and os.path.exists(LIB_64):
return LIB_64
else:
return LIB_32
return LIBDIR
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.