From: Michael Tremer Date: Sat, 18 Sep 2010 18:03:06 +0000 (+0200) Subject: naoki: Make comfortable package shell. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b78bff09d6facd9031078bdac88cfed1fe089a9d;p=ipfire-3.x.git naoki: Make comfortable package shell. --- diff --git a/naoki/build.py b/naoki/build.py index 9bc7d927c..259d6a00c 100644 --- a/naoki/build.py +++ b/naoki/build.py @@ -105,5 +105,37 @@ class Jobs(object): self.__jobs.remove(job) -class PackageShell(environ.Shell): - pass +class PackageShell(Build): + def __init__(self, *args, **kwargs): + Build.__init__(self, *args, **kwargs) + + # Add shell packages to have a little bit more + # comfort in here... + for dependency in config["shell_packages"]: + dependency = dependencies.Dependency(dependency) + self.dependency_set.add_dependency(dependency) + + def shell(self, **settings): + # Resolve the dependencies + try: + self.dependency_set.resolve() + except DependencyResolutionError, e: + if self.settings["ignore_dependency_errors"]: + logging.warning("Ignoring dependency errors: %s" % e) + else: + raise + + e = environ.Build(self.package, build_id="%s" % self.id) + + # Extract all tools + for package in self.dependency_set.packages: + e.extract(package) + + # Download the source tarballs + self.package.source_download() + + # Preparing source... + e.make("prepare") + + # Run the shell + e.shell() diff --git a/naoki/environ.py b/naoki/environ.py index ee5fc6218..108aa7f06 100644 --- a/naoki/environ.py +++ b/naoki/environ.py @@ -315,12 +315,7 @@ class Build(_Environment): return self.doChroot("make -C %s -f %s %s" % \ (os.path.dirname(file), file, target), shell=True) - -class Shell(Build): def shell(self, args=[]): - # Preparing source... - self.make("prepare") - command = "chroot %s /usr/src/tools/chroot-shell %s" % \ (self.chrootPath(), " ".join(args))