osbuild: split package into separate files
Import modules between files using the syntax `from . import foobar`, renaming what used to be `FooBar` to `foobar.FooBar` when moved to a separate file. In __init__.py only import what is meant to be public API. Signed-off-by: Tom Gundersen <teg@jklm.no>
This commit is contained in:
parent
f54fbe2912
commit
679b79c5e5
7 changed files with 515 additions and 480 deletions
36
osbuild/tmpfs.py
Normal file
36
osbuild/tmpfs.py
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
|
||||
import os
|
||||
import subprocess
|
||||
import tempfile
|
||||
|
||||
|
||||
__all__ = [
|
||||
"TmpFs",
|
||||
]
|
||||
|
||||
|
||||
class TmpFs:
|
||||
def __init__(self, path="/run/osbuild"):
|
||||
self.path = path
|
||||
self.root = None
|
||||
self.mounted = False
|
||||
|
||||
def __enter__(self):
|
||||
self.root = tempfile.mkdtemp(prefix="osbuild-tmpfs-", dir=self.path)
|
||||
try:
|
||||
subprocess.run(["mount", "-t", "tmpfs", "-o", "mode=0755", "tmpfs", self.root], check=True)
|
||||
self.mounted = True
|
||||
except subprocess.CalledProcessError:
|
||||
os.rmdir(self.root)
|
||||
self.root = None
|
||||
raise
|
||||
return self.root
|
||||
|
||||
def __exit__(self, exc_type, exc_value, exc_tb):
|
||||
if not self.root:
|
||||
return
|
||||
if self.mounted:
|
||||
subprocess.run(["umount", "--lazy", self.root], check=True)
|
||||
self.mounted = False
|
||||
os.rmdir(self.root)
|
||||
self.root = None
|
||||
Loading…
Add table
Add a link
Reference in a new issue