Compare commits

..

9 commits

Author SHA1 Message Date
3393f09907
format 2024-09-13 17:13:37 +02:00
aa1f06c20f
lint/fs 2024-09-13 17:13:16 +02:00
3e0d5bf2bc
lint/fs 2024-09-13 17:07:27 +02:00
08b6364d9b
lint/err 2024-09-13 17:00:39 +02:00
f7c1d90dfd
lint/squashfs 2024-09-13 16:58:01 +02:00
ce3629a776
lint/deb 2024-09-13 16:56:01 +02:00
9bb8003812
lint/sphinx 2024-09-13 16:54:22 +02:00
f46d5a9765
lint/grub 2024-09-13 16:52:01 +02:00
88311cb55c
lint/prj 2024-09-13 16:50:20 +02:00
7 changed files with 38 additions and 12 deletions

View file

@ -1,3 +1,5 @@
"""Wrap SquashFS commands."""
import ps
import rwx.cmd
@ -5,7 +7,8 @@ import rwx.cmd
rwx.cmd.need("mksquashfs")
def mksquashfs(input_root: str, output_file: str):
def mksquashfs(input_root: str, output_file: str) -> None:
"""Make a SquashFS bootable image file."""
ps.run(
[
"mksquashfs",

View file

@ -1,3 +1,5 @@
"""Wrap Debian commands."""
import cmd
import ps
@ -8,7 +10,8 @@ BOOTSTRAP_ARCHITECTURE = "amd64"
BOOTSTRAP_VARIANT = "minbase"
def bootstrap(root_path: str, suite: str, mirror_location: str):
def bootstrap(root_path: str, suite: str, mirror_location: str) -> None:
"""Boostrap a base operating filesystem."""
command = [
("debootstrap",),
("--arch", BOOTSTRAP_ARCHITECTURE),

View file

@ -1,2 +1,5 @@
class Exception(Exception):
pass
"""Handle errors."""
class Error(Exception):
"""Parent class for all errors."""

View file

@ -23,7 +23,7 @@ def empty_file(path: str) -> None:
def get_mount_uuid(path: str) -> str:
"""Return the UUID of provided mountpoint path."""
"""Return the filesystem UUID of a mountpoint path."""
return ps.run_line(
("findmnt",),
("--noheadings",),
@ -32,7 +32,8 @@ def get_mount_uuid(path: str) -> str:
)
def get_path_mount(path: str):
def get_path_mount(path: str) -> str:
"""Return the mountpoint path of an arbitrary path."""
return ps.run_line(
("stat",),
("--format", "%m"),
@ -40,11 +41,13 @@ def get_path_mount(path: str):
)
def get_path_uuid(path: str):
def get_path_uuid(path: str) -> str:
"""Return the filesystem UUID of an arbitrary path."""
return get_mount_uuid(get_path_mount(path))
def make_directory(path: str):
def make_directory(path: str) -> None:
"""Make a directory (and its parents) from a path."""
os.makedirs(path, exist_ok=True)
@ -53,15 +56,16 @@ def read_file(file_path: str):
return file_object.read()
def read_file_lines(file_path: str, charset=CHARSET):
def read_file_lines(file_path: str, charset: str = CHARSET):
return read_file_text(file_path).split(os.linesep)
def read_file_text(file_path: str, charset=CHARSET):
def read_file_text(file_path: str, charset: str = CHARSET):
return read_file(file_path).decode(charset)
def wipe(path: str):
def wipe(path: str) -> None:
"""Wipe provided path, whether directory or file."""
try:
shutil.rmtree(path)
except NotADirectoryError:
@ -70,6 +74,7 @@ def wipe(path: str):
pass
def write(file_path: str, text: str, charset=CHARSET):
def write(file_path: str, text: str, charset: str = CHARSET) -> None:
"""Write text into a file."""
with open(file_path, "bw") as file_object:
file_object.write(text.encode(charset))

View file

@ -1,3 +1,5 @@
"""Wrap GRUB commands."""
import cmd
import ps
@ -24,6 +26,7 @@ def make_image(
memdisk_path: str,
pubkey_path: str | None = None,
) -> None:
"""Make a binary bootable image."""
args = [
("grub-mkimage",),
("--compress", COMPRESSION),

View file

@ -1,8 +1,13 @@
"""Handle projects."""
from os import path
class Project:
"""Parent class for any type of project."""
def __init__(self, file_path: str) -> None:
"""Set file, root & name."""
self.file: str = path.realpath(file_path)
self.root: str = path.dirname(self.file)
self.name: str = path.basename(self.root)

View file

@ -9,10 +9,14 @@ from rwx.prj import Project
class SphinxProject(Project):
"""Child class for a project based on Sphinx."""
def __init__(self, file_path: str) -> None:
"""Call the parent constructor."""
super().__init__(file_path)
def build(self) -> None:
"""Build the project."""
output_root: str = path.join(self.root, "out")
wipe(output_root)
arguments: list[str] = [