Add github package support
This commit is contained in:
1 parent
645cac7901
commit
3bc7939b4a
1 file changed
+92
-6
+92
-6
@@ -1,5 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Simplified AUR-only build script that runs inside Docker container
|
# Build script that handles both AUR and GitHub packages inside Docker container
|
||||||
|
|
||||||
# Import GPG keys
|
# Import GPG keys
|
||||||
/build/import-gpg-keys.sh || exit 1
|
/build/import-gpg-keys.sh || exit 1
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
# Sync pacman database
|
# Sync pacman database
|
||||||
sudo pacman -Sy
|
sudo pacman -Sy
|
||||||
|
|
||||||
echo "==> AUR Package Builder"
|
echo "==> Package Builder (AUR & GitHub)"
|
||||||
echo "==> Processing omarchy-aur.packages"
|
echo "==> Processing omarchy-aur.packages"
|
||||||
|
|
||||||
# Track failures
|
# Track failures
|
||||||
@@ -30,13 +30,94 @@ get_local_version() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Build a GitHub package
|
||||||
|
build_github_package() {
|
||||||
|
local github_repo="$1"
|
||||||
|
local opts="$2"
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo " -> Processing GitHub: $github_repo..."
|
||||||
|
|
||||||
|
# Extract owner and repo name
|
||||||
|
local owner=$(echo "$github_repo" | cut -d'/' -f1)
|
||||||
|
local repo=$(echo "$github_repo" | cut -d'/' -f2)
|
||||||
|
|
||||||
|
if [[ -z "$owner" ]] || [[ -z "$repo" ]]; then
|
||||||
|
echo " ❌ Invalid GitHub format. Use: owner/repo"
|
||||||
|
FAILED_PACKAGES="$FAILED_PACKAGES $github_repo"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Use repo name as package name for local tracking
|
||||||
|
local pkg="$repo"
|
||||||
|
|
||||||
|
echo " GitHub repository: https://github.com/$github_repo"
|
||||||
|
echo " Note: Skipping version check for GitHub packages"
|
||||||
|
|
||||||
|
# Always fresh clone for GitHub packages
|
||||||
|
cd /src
|
||||||
|
rm -rf "$pkg"
|
||||||
|
|
||||||
|
git clone "https://github.com/${github_repo}.git" "$pkg" || {
|
||||||
|
echo " ❌ Failed to clone $github_repo"
|
||||||
|
FAILED_PACKAGES="$FAILED_PACKAGES $github_repo"
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
cd "$pkg"
|
||||||
|
|
||||||
|
# Check if PKGBUILD exists
|
||||||
|
if [[ ! -f "PKGBUILD" ]]; then
|
||||||
|
echo " ❌ No PKGBUILD found in repository"
|
||||||
|
FAILED_PACKAGES="$FAILED_PACKAGES $github_repo"
|
||||||
|
cd /src
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Build package with signing
|
||||||
|
MAKEPKG_FLAGS="-sc --noconfirm"
|
||||||
|
|
||||||
|
# Only add sign flag if we have a GPG key configured
|
||||||
|
if grep -q "^GPGKEY=" ~/.makepkg.conf 2>/dev/null; then
|
||||||
|
GPG_KEY=$(grep "^GPGKEY=" ~/.makepkg.conf | cut -d'"' -f2)
|
||||||
|
echo " Using GPG key: $GPG_KEY"
|
||||||
|
MAKEPKG_FLAGS="$MAKEPKG_FLAGS --sign --key $GPG_KEY"
|
||||||
|
else
|
||||||
|
echo " No GPG key configured in makepkg.conf"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check for skip-pgp in options
|
||||||
|
if [[ "$opts" == *"skip-pgp"* ]]; then
|
||||||
|
MAKEPKG_FLAGS="$MAKEPKG_FLAGS --skippgpcheck"
|
||||||
|
echo " (skipping PGP verification)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if makepkg $MAKEPKG_FLAGS; then
|
||||||
|
# Copy to output (including signature files)
|
||||||
|
for pkg_file in *.pkg.tar.*; do
|
||||||
|
if [[ -f "$pkg_file" ]]; then
|
||||||
|
cp "$pkg_file" /output/
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
echo " ✓ Successfully built $github_repo"
|
||||||
|
SUCCESSFUL_PACKAGES="$SUCCESSFUL_PACKAGES $github_repo"
|
||||||
|
else
|
||||||
|
echo " ❌ Failed to build $github_repo"
|
||||||
|
FAILED_PACKAGES="$FAILED_PACKAGES $github_repo"
|
||||||
|
cd /src
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd /src
|
||||||
|
}
|
||||||
|
|
||||||
# Build an AUR package
|
# Build an AUR package
|
||||||
build_aur_package() {
|
build_aur_package() {
|
||||||
local pkg="$1"
|
local pkg="$1"
|
||||||
local opts="$2"
|
local opts="$2"
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo " -> Processing $pkg..."
|
echo " -> Processing AUR: $pkg..."
|
||||||
|
|
||||||
# Get version from AUR API (also gets package base)
|
# Get version from AUR API (also gets package base)
|
||||||
local aur_info=$(curl -s "https://aur.archlinux.org/rpc/?v=5&type=info&arg[]=$pkg")
|
local aur_info=$(curl -s "https://aur.archlinux.org/rpc/?v=5&type=info&arg[]=$pkg")
|
||||||
@@ -136,8 +217,14 @@ if [[ -f /build/packages/omarchy-aur.packages ]]; then
|
|||||||
package=$(echo "$line" | awk '{print $1}')
|
package=$(echo "$line" | awk '{print $1}')
|
||||||
options=$(echo "$line" | awk '{$1=""; print $0}' | xargs)
|
options=$(echo "$line" | awk '{$1=""; print $0}' | xargs)
|
||||||
|
|
||||||
# Build the package
|
# Check if this is a GitHub package (contains /)
|
||||||
build_aur_package "$package" "$options"
|
if [[ "$package" == *"/"* ]]; then
|
||||||
|
# GitHub package format: owner/repo
|
||||||
|
build_github_package "$package" "$options"
|
||||||
|
else
|
||||||
|
# Regular AUR package
|
||||||
|
build_aur_package "$package" "$options"
|
||||||
|
fi
|
||||||
done </build/packages/omarchy-aur.packages
|
done </build/packages/omarchy-aur.packages
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
@@ -173,4 +260,3 @@ else
|
|||||||
echo "Error: /build/packages/omarchy-aur.packages not found"
|
echo "Error: /build/packages/omarchy-aur.packages not found"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
Reference in new issue
Block a user