mirror of
https://github.com/get-aurora-dev/common.git
synced 2026-11-03 21:49:43 -09:00
* chore: add all the things from aurorafin-shared Bluefin is not interested in the lack of AI in the development process of it, let's put everything here. It still makes sense to have this repo to avoid fetching the wallpapers/udev rules in an image build every single time. * fix: correct path for binary * remainings * chore: remove ai stuff we don't use * redo brew validation * use bbrew from main homebrew * remove tiup this is broken, is it gone from some tap? * remove kcl from brewfiles something is broken here as well
101 lines
3.3 KiB
Makefile
101 lines
3.3 KiB
Makefile
just := just_executable()
|
|
|
|
# Not a buildsystem, only convenience commands
|
|
|
|
# Build the aurora-common container locally
|
|
build:
|
|
git submodule update --init --recursive
|
|
git submodule update --remote
|
|
podman build -t localhost/aurora-common:latest -f ./Containerfile .
|
|
|
|
# Check the syntax of all Justfiles in the repository
|
|
check:
|
|
#!/usr/bin/bash
|
|
find . -type f -name "*.just" | while read -r file; do
|
|
echo "Checking syntax: $file"
|
|
{{ just }} --unstable --fmt --check -f $file
|
|
done
|
|
echo "Checking syntax: Justfile"
|
|
{{ just }} --unstable --fmt --check -f Justfile
|
|
|
|
# Fix the Just formatting
|
|
fix:
|
|
#!/usr/bin/bash
|
|
find . -type f -name "*.just" | while read -r file; do
|
|
echo "Fixing syntax: $file"
|
|
{{ just }} --unstable --fmt -f $file
|
|
done
|
|
echo "Fixing syntax: Justfile"
|
|
{{ just }} --unstable --fmt -f Justfile || { exit 1; }
|
|
|
|
# Inspect the directory structure of an OCI image
|
|
tree IMAGE="localhost/aurora-common:latest":
|
|
echo "FROM alpine:latest" > TreeContainerfile
|
|
echo "RUN apk add --no-cache tree" >> TreeContainerfile
|
|
echo "COPY --from={{ IMAGE }} / /mnt/root" >> TreeContainerfile
|
|
echo "CMD tree /mnt/root" >> TreeContainerfile
|
|
podman build -t tree-temp -f TreeContainerfile .
|
|
podman run --rm tree-temp
|
|
rm TreeContainerfile
|
|
podman rmi tree-temp
|
|
|
|
dump IMAGE="localhost/aurora-common:latest":
|
|
#!/usr/bin/bash
|
|
set -euo pipefail
|
|
|
|
cid=$(podman create {{ IMAGE }})
|
|
echo "Created container $cid from {{ IMAGE }}"
|
|
mkdir -p dump
|
|
podman cp "$cid:/." dump/
|
|
podman rm "$cid"
|
|
|
|
# Validate Brewfiles
|
|
brew-lint dir="system_files/shared/usr/share/ublue-os/homebrew":
|
|
#!/usr/bin/env bash
|
|
set -eou pipefail
|
|
|
|
system_files/shared/usr/libexec/ublue-brew-trust-brewfile system_files/shared/usr/share/ublue-os/homebrew/*.Brewfile
|
|
|
|
STATUS_FILE=$(mktemp)
|
|
echo "PASS" > "$STATUS_FILE"
|
|
|
|
while IFS= read -r -d '' brewfile ; do
|
|
echo "::group:: ===$(basename $brewfile)==="
|
|
|
|
grep -E -e "^tap" "$brewfile" > taps.Brewfile || true
|
|
echo "Syncing taps..."
|
|
brew bundle --file=./taps.Brewfile > /dev/null 2>&1 || true
|
|
|
|
# Extract combined list for parallel check
|
|
FORMULAS=$(grep -E '^\s*brew\s+["'\'']' "$brewfile" | sed -E 's/^\s*brew\s+["'\'']([^"'\'']+)["'\''].*/formula \1/' || true)
|
|
CASKS=$(grep -E '^\s*cask\s+["'\'']' "$brewfile" | sed -E 's/^\s*cask\s+["'\'']([^"'\'']+)["'\''].*/cask \1/' || true)
|
|
|
|
ENTRIES=$(printf "%s\n%s" "$FORMULAS" "$CASKS" | grep -v '^\s*$' || true)
|
|
|
|
if [ -n "$ENTRIES" ]; then
|
|
echo "$ENTRIES" | xargs -P 8 -I {} bash -c '
|
|
TYPE=$(echo "{}" | cut -d" " -f1)
|
|
NAME=$(echo "{}" | cut -d" " -f2)
|
|
if ! brew info --$TYPE "$NAME" &> /dev/null; then
|
|
echo "✗ $TYPE \"$NAME\" is invalid or missing tap"
|
|
echo "FAIL" >> "'"$STATUS_FILE"'"
|
|
else
|
|
echo "✓ $TYPE \"$NAME\" is valid"
|
|
fi
|
|
'
|
|
else
|
|
echo "No formulas or casks found."
|
|
fi
|
|
|
|
echo "::endgroup::"
|
|
done < <(find "{{ dir }}" -iname '*\.Brewfile*' -print0)
|
|
|
|
rm -f taps.Brewfile
|
|
|
|
if grep -q "FAIL" "$STATUS_FILE"; then
|
|
echo "Validation complete. Some Brewfiles FAILED."
|
|
exit 1
|
|
else
|
|
echo "Validation complete. All Brewfiles PASSED."
|
|
exit 0
|
|
fi
|