build: Packages/ directory with 91 pkgar files + auto-sync script
Packages/ is the canonical binary package repository for Red Bear OS. Contains stage.pkgar copies of all built packages (91 files). New scripts: - local/scripts/sync-packages.sh: syncs built pkgar → Packages/ - make packages-sync: run sync - make packages-list: list package count Future: cache-auto will auto-sync to Packages/ after each build.
This commit is contained in:
Executable
+44
@@ -0,0 +1,44 @@
|
||||
#!/usr/bin/env bash
|
||||
# Red Bear OS — Package Repository Sync
|
||||
# Copies all built stage.pkgar files to Packages/ directory.
|
||||
# This is the canonical binary package repository for Red Bear OS.
|
||||
#
|
||||
# Usage:
|
||||
# ./local/scripts/sync-packages.sh Sync all built packages
|
||||
# ./local/scripts/sync-packages.sh --verify Verify package integrity
|
||||
set -euo pipefail
|
||||
cd "$(dirname "$0")/../.."
|
||||
|
||||
PKG_DIR="Packages"
|
||||
mkdir -p "${PKG_DIR}"
|
||||
|
||||
if [ "${1:-}" = "--verify" ]; then
|
||||
echo "=== Package Integrity Check ==="
|
||||
ok=0; bad=0
|
||||
for pkgar in "${PKG_DIR}"/*.pkgar; do
|
||||
[ -f "$pkgar" ] || continue
|
||||
pkg=$(basename "$pkgar" .pkgar)
|
||||
if [ -s "$pkgar" ]; then
|
||||
ok=$((ok+1))
|
||||
else
|
||||
echo " EMPTY: $pkg"
|
||||
bad=$((bad+1))
|
||||
fi
|
||||
done
|
||||
echo "Valid: $ok, Empty: $bad"
|
||||
exit $bad
|
||||
fi
|
||||
|
||||
echo "=== Syncing Packages ==="
|
||||
count=0
|
||||
while IFS= read -r pkgar; do
|
||||
pkg_path=$(dirname "$(dirname "$(dirname "$pkgar")")")
|
||||
pkg=$(basename "$pkg_path")
|
||||
dest="${PKG_DIR}/${pkg}.pkgar"
|
||||
if [ ! -f "$dest" ] || [ "$pkgar" -nt "$dest" ]; then
|
||||
cp "$pkgar" "$dest" && count=$((count+1))
|
||||
fi
|
||||
done < <(find recipes local/recipes -name "stage.pkgar" -path "*/target/x86_64-unknown-redox/*" 2>/dev/null)
|
||||
|
||||
echo "Synced $count packages to ${PKG_DIR}/"
|
||||
echo "Total: $(ls ${PKG_DIR}/*.pkgar 2>/dev/null | wc -l) pkgar files"
|
||||
Reference in New Issue
Block a user