From ff8b9862192a94a211d1c96088a08277066dd21d Mon Sep 17 00:00:00 2001 From: d3v1l0n Date: Mon, 30 Dec 2024 07:40:09 +0530 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=80=20feat:=20add=20package=20name=20g?= =?UTF-8?q?enerator?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.sh | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 package.sh diff --git a/package.sh b/package.sh new file mode 100644 index 00000000..5d2698d0 --- /dev/null +++ b/package.sh @@ -0,0 +1,60 @@ +#!/bin/bash + +#----------------------------------------------------------- +# Script to generate a list of package details from a mirror URL +# Author: RiO +# Date: 2024-12-27 +# Description: This script fetches the list of package filenames +# from a specified mirror and processes them into a clean output. +#----------------------------------------------------------- + +# Mirror URL +mirror_url="https://github.com/SnMirror/snigdhaos-core/tree/master/x86_64" + +# Output file +output_file="packages.txt" + +# Function to install curl if not installed (for Arch Linux) +install_curl() { + echo "curl is not installed. Attempting to install..." + + # Check if the system is using the pacman package manager (Arch Linux) + if command -v pacman &> /dev/null; then + sudo pacman -Sy --noconfirm curl + else + echo "Error: Could not detect pacman package manager. Please install curl manually." + exit 1 + fi + + # Verify if curl was successfully installed + if command -v curl &> /dev/null; then + echo "curl has been installed successfully." + else + echo "Error: Failed to install curl. Please install it manually." + exit 1 + fi +} + +# Function to fetch and process package list +fetch_packages() { + # Check if curl is installed + if ! command -v curl &> /dev/null; then + install_curl + fi + + # Fetch package list and process filenames + curl -s "$mirror_url" | \ + grep -oP '(?<=href=")[^"]+\.pkg\.tar\.zst' | \ + awk -F'-' '{OFS="-"; print $1, $2, $3}' > "$output_file" + + # Check if the output file is generated successfully + if [[ $? -eq 0 ]]; then + echo "Generated $output_file with all package details." + else + echo "Error: Failed to generate the package list." + exit 1 + fi +} + +# Run the function +fetch_packages