forked from Snigdha-OS/snigdhaos-pkgbuilds
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpackage.sh
60 lines (50 loc) · 1.79 KB
/
package.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/bin/bash
#-----------------------------------------------------------
# Script to generate a list of package details from a mirror URL
# Author: RiO <[email protected]>
# 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/Snigdha-OS/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