commit: 9846a2d8fadc51b2fecf7294233870c798dfc8e4 Author: Matt Turner <mattst88 <AT> gentoo <DOT> org> AuthorDate: Thu Oct 22 18:52:46 2020 +0000 Commit: Matt Turner <mattst88 <AT> gentoo <DOT> org> CommitDate: Thu Oct 29 14:52:55 2020 +0000 URL: https://gitweb.gentoo.org/proj/catalyst.git/commit/?id=9846a2d8
catalyst: Rewrite ismount() to use libmount libmount is provided by util-linux, so this adds a dependency on sys-apps/util-linux[python]. A later patch will make more extensive use of this API. Signed-off-by: Matt Turner <mattst88 <AT> gentoo.org> README | 2 +- catalyst/support.py | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/README b/README index 1cceb63e..594de9e1 100644 --- a/README +++ b/README @@ -17,7 +17,7 @@ simple and reproducable manner. Use at your own risk. Requirements ======================= -- Python 3.6 or greater +- Python 3.8 or greater - A generic stage3 tarball for your architecture - A squashfs ebuild repository snapshot - Or an ebuild git repo with sys-fs/squashfs-tools-ng and dev-vcs/git diff --git a/catalyst/support.py b/catalyst/support.py index 4458ed20..ddbd9ab9 100644 --- a/catalyst/support.py +++ b/catalyst/support.py @@ -8,6 +8,8 @@ import time from pathlib import Path from subprocess import Popen +import libmount + from catalyst import log BASH_BINARY = "/bin/bash" @@ -182,15 +184,13 @@ def read_makeconf(mymakeconffile): def ismount(path): """Like os.path.ismount, but also support bind mounts""" - if os.path.ismount(path): + path = Path(path) + if path.is_mount(): return True - a = os.popen("mount") - mylines = a.readlines() - a.close() - for line in mylines: - mysplit = line.split() - if Path(path) == Path(mysplit[2]): + cxt = libmount.Context() + while (fs := cxt.mtab.next_fs()) is not None: + if path == Path(fs.target): return True return False