Brand Hydra OS image and add custom Fastfetch summary

This commit is contained in:
Codex
2026-10-13 15:13:03 +03:00
parent 9abedf29f0
commit 1784f3a8ce
13 changed files with 117 additions and 10 deletions
+55
View File
@@ -0,0 +1,55 @@
import shlex
from pathlib import Path
import tempfile
import unittest
from hydra import image
class BrandingTests(unittest.TestCase):
def setUp(self):
self.tmp = tempfile.TemporaryDirectory()
self.addCleanup(self.tmp.cleanup)
self.root = Path(self.tmp.name) / 'rootfs'
self.root.mkdir()
version = '6.18.54-gentoo-dist-bin'
(self.root / 'lib/modules' / version).mkdir(parents=True)
(self.root / 'boot').mkdir()
(self.root / 'boot' / ('vmlinuz-' + version)).write_text('kernel')
def release(self):
return dict(line.split('=', 1)[0:1] + shlex.split(line.split('=', 1)[1])
for line in (self.root / 'etc/os-release').read_text().splitlines()
if line and not line.startswith('#'))
def test_export_brands_derivative_without_rewriting_packaged_gentoo_metadata(self):
vendor = self.root / 'usr/lib/os-release'
vendor.parent.mkdir(parents=True)
original = "NAME='Gentoo'\nID=gentoo\nPRETTY_NAME='Gentoo Linux'\nVERSION_ID=2.18\nHOME_URL='https://www.gentoo.org/'\n"
vendor.write_text(original)
(self.root / 'etc').mkdir()
(self.root / 'etc/os-release').symlink_to('../usr/lib/os-release')
image.configure_rootfs(self.root, Path(__file__).resolve().parents[1])
self.assertEqual(self.release(), {
'NAME': 'Hydra OS', 'PRETTY_NAME': 'Hydra OS', 'ID': 'hydra-os',
'ID_LIKE': 'gentoo', 'VERSION_ID': '2.18',
'HOME_URL': 'https://www.gentoo.org/',
})
self.assertFalse((self.root / 'etc/os-release').is_symlink())
self.assertEqual(vendor.read_text(), original)
self.assertEqual((self.root / 'etc/hostname').read_text(), 'hydra-os\n')
def test_export_can_brand_minimal_payload_without_os_release(self):
image.configure_rootfs(self.root, Path(__file__).resolve().parents[1])
self.assertTrue((self.root / 'etc/os-release').is_file())
self.assertEqual(self.release(), {
'NAME': 'Hydra OS', 'PRETTY_NAME': 'Hydra OS',
'ID': 'hydra-os', 'ID_LIKE': 'gentoo',
})
if __name__ == '__main__':
unittest.main()