Add .gitignore, clean up build artifacts, add test scripts and configuration files
Some checks failed
Build Simple CLI / build (push) Failing after 1s

This commit is contained in:
joe 2025-08-12 20:13:38 -07:00
parent 882552f4e7
commit 6aa6d32e1e
12 changed files with 128 additions and 185 deletions

29
.gitignore vendored Normal file
View file

@ -0,0 +1,29 @@
# Build artifacts and large files
*.qcow2
*.img
*.raw
*.iso
# Image filesystem
image-fs/
# Output directory
output/
# Build files
build_files/
# Temporary files
*.tmp
*.temp
*~
# IDE and editor files
.vscode/
.idea/
*.swp
*.swo
# OS generated files
.DS_Store
Thumbs.db

View file

@ -26,8 +26,16 @@ RUN apt-get update && apt-get install -y \
locales \
ca-certificates \
tzdata \
podman \
skopeo \
&& rm -rf /var/lib/apt/lists/*
# Install particle-os specific packages
COPY packages/*.deb /tmp/packages/
RUN dpkg -i /tmp/packages/bootc_*.deb /tmp/packages/apt-ostree_*.deb || true && \
apt-get install -f -y && \
rm -rf /tmp/packages
# Configure locale
RUN locale-gen en_US.UTF-8
ENV LANG=en_US.UTF-8

View file

@ -1,66 +0,0 @@
{
"packages": {
"core": {
"description": "Core system packages",
"packages": [
"systemd",
"systemd-sysv",
"udev",
"procps",
"util-linux",
"mount",
"passwd",
"login",
"bash",
"coreutils"
]
},
"ostree": {
"description": "OSTree and boot management",
"packages": [
"ostree",
"ostree-boot"
]
},
"kernel": {
"description": "Kernel and boot essentials",
"packages": [
"linux-image-amd64",
"linux-headers-amd64",
"initramfs-tools"
]
},
"tools": {
"description": "Essential command line tools",
"packages": [
"curl",
"wget",
"vim",
"less",
"locales",
"ca-certificates",
"tzdata"
]
},
"development": {
"description": "Development tools (optional)",
"packages": [
"build-essential",
"git",
"python3",
"python3-pip"
]
}
},
"repositories": {
"debian": {
"url": "http://deb.debian.org/debian",
"suite": "trixie",
"components": ["main", "contrib", "non-free"]
}
},
"post_install": [
"usr/share/particle-os/firstboot/setup-system.sh",
"usr/share/particle-os/firstboot/configure-network.sh"
]
}

4
etc/bootupd.conf Normal file
View file

@ -0,0 +1,4 @@
[updates]
enabled = true
registry = "git.raines.xyz"
image = "robojerk/particle-os/simple-cli"

1
etc/hostname Normal file
View file

@ -0,0 +1 @@
simple-cli

7
etc/hosts Normal file
View file

@ -0,0 +1,7 @@
127.0.0.1 localhost
127.0.1.1 simple-cli
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

View file

@ -0,0 +1,3 @@
[remote "particle-os"]
url=https://git.raines.xyz/robojerk/particle-os
gpg-verify=false

View file

@ -0,0 +1,4 @@
[Unit]
Description=Simple CLI Default Target
Requires=multi-user.target
AllowIsolate=yes

26
test-boot-full.sh Executable file
View file

@ -0,0 +1,26 @@
#!/bin/bash
# Test script to boot the simple-cli image with full BIOS/GRUB visibility (headless)
echo "Testing simple-cli bootable image with full boot process..."
echo "Image: simple-cli.qcow2"
echo "Size: $(ls -lh simple-cli.qcow2 | awk '{print $5}')"
# Test boot with QEMU (full boot process - BIOS, GRUB, kernel)
echo "Testing full boot process (headless)..."
echo "You should see:"
echo "1. QEMU BIOS screen"
echo "2. GRUB boot menu (if configured)"
echo "3. Kernel loading"
echo "4. System boot"
echo ""
echo "Press Ctrl+C to stop the VM when done testing."
qemu-system-x86_64 \
-m 2G \
-smp 2 \
-drive file=simple-cli.qcow2,format=qcow2 \
-boot c \
-nographic \
-serial mon:stdio
echo "Test complete!"

24
test-boot.sh Executable file
View file

@ -0,0 +1,24 @@
#!/bin/bash
# Test script to boot the simple-cli image (headless)
echo "Testing simple-cli bootable image..."
echo "Image: simple-cli.qcow2"
echo "Size: $(ls -lh simple-cli.qcow2 | awk '{print $5}')"
# Test boot with QEMU (headless with kernel/initrd)
echo "Testing boot process (headless with direct kernel boot)..."
echo "You should see the kernel boot process directly!"
echo "Press Ctrl+C to stop the VM when done testing."
qemu-system-x86_64 \
-m 2G \
-smp 2 \
-drive file=simple-cli.qcow2,format=qcow2 \
-boot c \
-nographic \
-serial mon:stdio \
-append "console=ttyS0 root=/dev/sda1 rw" \
-kernel image-fs/boot/vmlinuz-6.12.38+deb13-amd64 \
-initrd image-fs/boot/initrd.img-6.12.38+deb13-amd64
echo "Test complete!"

View file

@ -1,50 +1,16 @@
#!/bin/bash
# Simple CLI First Boot Setup Script
# Based on Aurora's firstboot pattern
# Simple CLI firstboot setup script
set -euo pipefail
echo "Setting up Simple CLI system..."
echo "=== Simple CLI First Boot Setup ==="
# Configure system locale
echo "Configuring locale..."
locale-gen en_US.UTF-8
update-locale LANG=en_US.UTF-8
# Set hostname
hostnamectl set-hostname simple-cli
# Configure timezone
echo "Configuring timezone..."
ln -sf /usr/share/zoneinfo/UTC /etc/localtime
timedatectl set-timezone UTC
# Create user directories
echo "Setting up user directories..."
mkdir -p /home/simple/.config
mkdir -p /home/simple/.local/share
chown -R simple:simple /home/simple
# Configure systemd services
echo "Configuring systemd services..."
systemctl enable systemd-networkd
systemctl enable systemd-resolved
# Enable systemd services
systemctl enable systemd-timesyncd
systemctl enable ostree-remount
# Configure networking
echo "Configuring networking..."
cat > /etc/systemd/network/20-wired.network << EOF
[Match]
Name=en*
[Network]
DHCP=yes
EOF
# Configure OSTree
echo "Configuring OSTree..."
mkdir -p /usr/lib/ostree-boot
ostree admin init-fs /usr/lib/ostree-boot
# Set up bootupd
echo "Configuring bootupd..."
bootupd install
echo "=== First boot setup complete ==="
echo "System is ready for use!"
echo "Simple CLI setup complete"

View file

@ -1,91 +1,28 @@
# Simple CLI ujust Commands
# Based on Aurora's ujust pattern
# Simple CLI ujust commands
# Show system information
info:
# Show system status
status:
#!/usr/bin/env bash
echo "=== Simple CLI System Information ==="
echo "=== Simple CLI System Status ==="
echo "Hostname: $(hostname)"
echo "OS: $(cat /etc/os-release | grep PRETTY_NAME | cut -d'"' -f2)"
echo "Kernel: $(uname -r)"
echo "Architecture: $(uname -m)"
echo "Hostname: $(hostname)"
echo "Uptime: $(uptime -p)"
echo "Uptime: $(uptime)"
echo "================================"
# Show OSTree status
ostree-status:
#!/usr/bin/env bash
echo "=== OSTree Status ==="
ostree status
echo "==================="
# Update system
update:
#!/usr/bin/env bash
echo "Updating Simple CLI system..."
sudo ostree admin upgrade
echo "Update complete. Reboot to apply changes."
sudo bootc upgrade
echo "Update complete"
# Show package information
packages:
# Show OSTree status
ostree-status:
#!/usr/bin/env bash
echo "=== Installed Packages ==="
dpkg -l | wc -l
echo "========================="
ostree status
# Show system services
services:
# Show bootupd status
bootupd-status:
#!/usr/bin/env bash
echo "=== System Services ==="
systemctl list-units --type=service --state=running
echo "======================"
# Show network status
network:
#!/usr/bin/env bash
echo "=== Network Status ==="
ip addr show
echo "====================="
# Show disk usage
disk:
#!/usr/bin/env bash
echo "=== Disk Usage ==="
df -h
echo "================="
# Show memory usage
memory:
#!/usr/bin/env bash
echo "=== Memory Usage ==="
free -h
echo "==================="
# Show process information
processes:
#!/usr/bin/env bash
echo "=== Top Processes ==="
ps aux --sort=-%cpu | head -10
echo "===================="
# Show system logs
logs:
#!/usr/bin/env bash
echo "=== Recent System Logs ==="
journalctl -n 20 --no-pager
echo "========================="
# Help command
help:
@echo "Simple CLI ujust Commands:"
@echo " info - Show system information"
@echo " ostree-status - Show OSTree status"
@echo " update - Update system"
@echo " packages - Show package count"
@echo " services - Show running services"
@echo " network - Show network status"
@echo " disk - Show disk usage"
@echo " memory - Show memory usage"
@echo " processes - Show top processes"
@echo " logs - Show recent logs"
@echo " help - Show this help"
bootupd status