From 7a4a6f32d92706a3d8f3254711d7f3d49fc88e4c Mon Sep 17 00:00:00 2001 From: Fierelier Date: Mon, 1 Jul 2024 02:08:09 +0200 Subject: [PATCH] Add all-pre and all-post (mod mount/umount points) --- mfchroot | 20 +++++++++++++++----- scripts/all-post/00_placeholder.py | 1 + scripts/all-pre/40_mountpoints.py | 7 +++++++ scripts/mount/50_main.py | 8 +------- scripts/umount/50_main.py | 8 +------- 5 files changed, 25 insertions(+), 19 deletions(-) create mode 100644 scripts/all-post/00_placeholder.py create mode 100644 scripts/all-pre/40_mountpoints.py diff --git a/mfchroot b/mfchroot index 281578c..f6e1599 100755 --- a/mfchroot +++ b/mfchroot @@ -70,18 +70,28 @@ def umount(end): call(["umount","-lR",end]) def main(): + env = {} + env["args"] = sys.argv[2:] + if sys.argv[1] == "-u": - runStage(sys.argv[2],"umount") + runStage(sys.argv[2],"all-pre",env) + runStage(sys.argv[2],"umount",env) + runStage(sys.argv[2],"all-post",env) return if sys.argv[1] == "-m": - runStage(sys.argv[2],"mount") + runStage(sys.argv[2],"all-pre",env) + runStage(sys.argv[2],"mount",env) + runStage(sys.argv[2],"all-post",env) return - runStage(sys.argv[1],"mount") - env = {} - env["args"] = sys.argv[2:] + runStage(sys.argv[1],"all-pre",env) + runStage(sys.argv[1],"mount",env) + runStage(sys.argv[1],"all-post",env) + + runStage(sys.argv[1],"all-pre",env) runStage(sys.argv[1],"chroot",env) + runStage(sys.argv[1],"all-post",env) return main() diff --git a/scripts/all-post/00_placeholder.py b/scripts/all-post/00_placeholder.py new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/scripts/all-post/00_placeholder.py @@ -0,0 +1 @@ + diff --git a/scripts/all-pre/40_mountpoints.py b/scripts/all-pre/40_mountpoints.py new file mode 100644 index 0000000..97062dd --- /dev/null +++ b/scripts/all-pre/40_mountpoints.py @@ -0,0 +1,7 @@ +import os +_g["mounts"] = [ + "proc", + "sys", + "dev", + os.path.join("dev","pts") +] diff --git a/scripts/mount/50_main.py b/scripts/mount/50_main.py index 241e2e9..39d6390 100644 --- a/scripts/mount/50_main.py +++ b/scripts/mount/50_main.py @@ -1,10 +1,4 @@ import os -mounts = [ - "proc", - "sys", - "dev", - os.path.join("dev","pts") -] -for mount in mounts: +for mount in _g["mounts"]: _g["mountBind"](os.path.sep + mount,os.path.join(_chroot["dir"],mount)) diff --git a/scripts/umount/50_main.py b/scripts/umount/50_main.py index e831108..c0275e0 100644 --- a/scripts/umount/50_main.py +++ b/scripts/umount/50_main.py @@ -1,10 +1,4 @@ import os -mounts = [ - "proc", - "sys", - "dev", - os.path.join("dev","pts") -] -for mount in reversed(mounts): +for mount in reversed(_g["mounts"]): _g["umount"](os.path.join(_chroot["dir"],mount))