migrate from hg
This commit is contained in:
79
archPack.sh
Executable file
79
archPack.sh
Executable file
@@ -0,0 +1,79 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
trap 'echo "Exiting..."; exit 0' INT
|
||||
|
||||
|
||||
INPUT="cache.packages.amd64"
|
||||
OUTPUT="cache.packages.amd64.all"
|
||||
TEMP="cache.packages.amd64.tmp"
|
||||
TARGET_DIR="cache/packages/"
|
||||
|
||||
# Clear output file
|
||||
echo "removing" "$OUTPUT" and "$TEMP"
|
||||
sleep 2
|
||||
> "$OUTPUT"
|
||||
> "$TEMP"
|
||||
rm -rf "$TARGET_DIR"
|
||||
mkdir -p cache/packages
|
||||
|
||||
while IFS= read -r line || [ -n "$line" ]; do
|
||||
# Skip empty lines and comments
|
||||
[[ -z "$line" || "$line" =~ ^[[:space:]]*# ]] && continue
|
||||
|
||||
# Remove inline comments and trim whitespace
|
||||
package=$(echo "$line" | sed 's/#.*//' | xargs)
|
||||
|
||||
# Skip if empty after processing
|
||||
[ -z "$package" ] && continue
|
||||
|
||||
# Check if it's a group
|
||||
if pacman -Sgq "$package" &>/dev/null; then
|
||||
echo "Expanding group: $package"
|
||||
pacman -Sgq "$package" >> "$TEMP"
|
||||
else
|
||||
# It's a regular package
|
||||
echo "Adding package: $package"
|
||||
echo "$package" >> "$TEMP"
|
||||
fi
|
||||
done < "$INPUT"
|
||||
|
||||
# Now get all dependencies for collected packages
|
||||
echo "Getting all dependencies..."
|
||||
{
|
||||
# First, output all the original packages
|
||||
sort -u "$TEMP"
|
||||
|
||||
# Then get their dependencies
|
||||
sort -u "$TEMP" | while read -r pkg; do
|
||||
pactree -slu "$pkg" 2>/dev/null
|
||||
done
|
||||
} | sort -u > "$OUTPUT"
|
||||
|
||||
|
||||
echo "Complete package list with dependencies written to $OUTPUT"
|
||||
sleep 2
|
||||
|
||||
echo "Removing old packages..."
|
||||
# sudo rm -rf /var/cache/pacman/pkg/*
|
||||
|
||||
echo "Downloading packages to host cache..."
|
||||
# sudo pacman -Syw --noconfirm dhclient
|
||||
# sudo pacman -Syw --noconfirm linux-cachyos-lts
|
||||
|
||||
# sudo pacman -Syu --ignore=gst-plugins-base-libs # Need to ignore gst-plugins-base-libs because of gst-plugins-base-libs=1.26.7-1
|
||||
sudo pacman -Syy
|
||||
sudo pacman -Syw --noconfirm $(cat "$OUTPUT")
|
||||
|
||||
|
||||
mkdir -p "$TARGET_DIR"
|
||||
echo "Copying packages to $TARGET_DIR..."
|
||||
sudo cp -n /var/cache/pacman/pkg/*.pkg.tar.zst "$TARGET_DIR" 2>/dev/null || true
|
||||
|
||||
echo "Updating package database in $TARGET_DIR..."
|
||||
(cd "$TARGET_DIR" && sudo repo-add gopi.db.tar.gz *.pkg.tar.zst 2>/dev/null || true)
|
||||
|
||||
echo "Packages processed and copied to $TARGET_DIR"
|
||||
|
||||
python3 server.py
|
||||
Reference in New Issue
Block a user