658a8541e9
SamiOS CI / lint-and-test (push) Successful in 14s
Major update adding full desktop environment support, complete branding suite, and project infrastructure: Desktop (WSL): - KDE Plasma + SDDM + Dolphin/Konsole/Kate/Firefox setup script - Windows 11 dark/light color schemes - PipeWire audio stack - WSLg-compatible launch script - SamiOS CLI tool (v0.2.0) with desktop command Branding: - Logos: face-on-pyramid with and without text (500px) - Icons: square + launcher (256/512/1024px) + SVG vector - Wallpapers: 1920x1080, 4K, clean variant (PIL-generated) - GRUB theme: full cobalt blue (#1424CE) theme with pyramid background - SDDM theme: SamiOS login screen configuration - Branding README with palette, typography, usage guidelines Fonts: - Sami Grotesk (Helvetica-like) as default system/UI font - Sami Sans as secondary - Full Sami font family support (excluding 7777 personal branding) - fontconfig rules mapping Helvetica/Arial → Sami Grotesk - Font policy enforcement in samios CLI Infrastructure: - Automated installer (samios-installer.sh): partition, format, pacstrap, bootloader - PKGBUILD for samios-branding package - Test suite: shell tests for profiledef, packages, pacman.conf, CLI, font policy - Makefile: test, lint, check, build, clean targets - Gitea Actions CI workflow - Voice integration architecture document (SamiType × SamiOS) - Updated roadmap reflecting completed phases
56 lines
1.8 KiB
Bash
Executable File
56 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
# Test: profiledef.sh validity
|
|
# Validates that profiledef.sh exists, has valid bash syntax, and defines
|
|
# all required archiso profile variables.
|
|
|
|
source "$(dirname "$0")/test_helper.sh"
|
|
|
|
suite "profiledef.sh tests"
|
|
|
|
PROFILEDEF="$PROFILE_DIR/profiledef.sh"
|
|
|
|
assert_file_exists "profiledef.sh exists" "$PROFILEDEF"
|
|
|
|
assert "profiledef.sh has valid bash syntax" \
|
|
bash -n "$PROFILEDEF"
|
|
|
|
# profiledef.sh uses associative arrays without explicit `declare -A`,
|
|
# relying on mkarchiso's caller context. Pre-declare so plain bash can source it.
|
|
SOURCE_CMD='declare -A file_permissions; source "'"$PROFILEDEF"'"'
|
|
|
|
# Source the file in a subshell and verify required variables are set
|
|
assert "profiledef.sh defines iso_name" \
|
|
bash -c "$SOURCE_CMD; [ -n \"\$iso_name\" ]"
|
|
|
|
assert "profiledef.sh defines iso_version" \
|
|
bash -c "$SOURCE_CMD; [ -n \"\$iso_version\" ]"
|
|
|
|
assert "profiledef.sh defines iso_publisher" \
|
|
bash -c "$SOURCE_CMD; [ -n \"\$iso_publisher\" ]"
|
|
|
|
assert "profiledef.sh defines iso_application" \
|
|
bash -c "$SOURCE_CMD; [ -n \"\$iso_application\" ]"
|
|
|
|
assert "profiledef.sh defines arch" \
|
|
bash -c "$SOURCE_CMD; [ -n \"\$arch\" ]"
|
|
|
|
assert "iso_name is 'samios'" \
|
|
bash -c "$SOURCE_CMD; [ \"\$iso_name\" = 'samios' ]"
|
|
|
|
assert "arch is 'x86_64'" \
|
|
bash -c "$SOURCE_CMD; [ \"\$arch\" = 'x86_64' ]"
|
|
|
|
assert "buildmodes array is non-empty" \
|
|
bash -c "$SOURCE_CMD; [ \${#buildmodes[@]} -gt 0 ]"
|
|
|
|
assert "bootmodes array is non-empty" \
|
|
bash -c "$SOURCE_CMD; [ \${#bootmodes[@]} -gt 0 ]"
|
|
|
|
assert "file_permissions includes /usr/local/bin/samios" \
|
|
bash -c "$SOURCE_CMD; [ -n \"\${file_permissions[/usr/local/bin/samios]}\" ]"
|
|
|
|
assert "file_permissions includes /etc/shadow" \
|
|
bash -c "$SOURCE_CMD; [ -n \"\${file_permissions[/etc/shadow]}\" ]"
|
|
|
|
print_summary
|