]> git.ipfire.org Git - pakfire.git/commitdiff
builder: Simplify shell code
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 20 May 2021 11:44:14 +0000 (11:44 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 20 May 2021 11:44:14 +0000 (11:44 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/pakfire/builder.py

index a73c7bce499491dd44068f7670d172fd0d34c253..aff755a7d389629e4e953ac259784a1c9ccd788b 100644 (file)
@@ -148,8 +148,6 @@ class BuilderContext(object):
        def environ(self):
                # Build a minimal environment for executing, but try to inherit TERM and LANG
                env = {
-                       "HOME" : "/root",
-                       "PATH" : "/usr/bin:/bin:/usr/sbin:/sbin",
                        "PS1"  : "pakfire-chroot \w> ",
                        "TERM" : os.environ.get("TERM", "vt100"),
                        "LANG" : os.environ.get("LANG", "en_US.UTF-8"),
@@ -236,17 +234,17 @@ class BuilderContext(object):
                                # Run it
                                try:
                                        self.pakfire.execute_script(script, logging_callback=self.log.log,
-                                               enable_network=False, interactive=False)
+                                               environ=self.environ, enable_network=False, interactive=False)
 
                                # Handle if the build script failed
                                except CommandExecutionError as e:
                                        # Drop into a shell if requested
                                        if shell:
-                                               self.pakfire.execute(["/usr/bin/bash", "--login"],
-                                                       environ=self.environ, enable_network=True, interactive=True)
+                                               self._shell()
 
                                        # Raise otherwise
-                                       raise e
+                                       else:
+                                               raise e
 
        def shell(self, packages=[], install=None):
                # Setup the environment
@@ -258,6 +256,16 @@ class BuilderContext(object):
                self._install(packages)
 
                # Enter the shell
-               self.pakfire.execute(["/usr/bin/bash", "--login"],
-                       environ=self.environ, enable_network=True, interactive=True)
+               self._shell()
+
+       def _shell(self):
+               """
+                       Opens an interactive shell in the build environment
+               """
+               return self.pakfire.execute(
+                       ["/usr/bin/bash", "--login"],
+                       interactive=True,
+                       enable_network=True,
+                       environ=self.environ,
+               )