chore: initiate extra repo

This commit is contained in:
eshanized
2025-01-03 07:33:45 +05:30
commit e5559fc74f
11 changed files with 214 additions and 0 deletions

21
LICENSE Normal file
View File

@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2024 SNIGDHA OS
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

63
package-list.sh Executable file
View File

@@ -0,0 +1,63 @@
#!/bin/bash
#-----------------------------------------------------------
# Script to generate a list of package details from a GitHub repository URL
# Author: RiO <d3v1l0n@outlook.in>
# Date: 2024-12-27
# Description: This script fetches the list of package filenames
# from a specified GitHub repository and processes them into a clean output.
# It also removes duplicate package names.
#-----------------------------------------------------------
# GitHub API URL for the directory
repo_url="https://api.github.com/repos/Snigdha-OS/snigdhaos-core/contents/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 the package list (only package names, with duplicates removed)
fetch_packages() {
# Check if curl is installed
if ! command -v curl &> /dev/null; then
install_curl
fi
# Fetch the directory content from the GitHub API, extract package names, remove duplicates
curl -s "$repo_url" | \
jq -r '.[].name' | \
grep -oP '^[^/]+(?=-[0-9]+-[a-z0-9]+\.pkg\.tar\.zst)' | \
sort | \
uniq > "$output_file"
# Check if the output file is generated successfully
if [[ $? -eq 0 ]]; then
echo "Generated $output_file with package names (duplicates removed)."
else
echo "Error: Failed to generate the package list."
exit 1
fi
}
# Run the function
fetch_packages

77
push.sh Executable file
View File

@@ -0,0 +1,77 @@
#!/bin/bash
# Author : ESHAN ROY
# Author URI : https://eshanized.github.io
# Define the conventional commit types with new emojis
TYPES=("🚀 feat" "🐛 fix" "📝 docs" "✨ style" "🛠 refactor" "⚡️ perf" "🔬 test" "🔧 build" "🤖 ci" "🧹 chore" "⏪ revert")
# Function to display an error and exit and
error_exit() {
echo -e "\033[1;31m[ERROR]\033[0m $1"
exit 1
}
# Ensure the script is run in a Git repository
git rev-parse --is-inside-work-tree > /dev/null 2>&1 || error_exit "This is not a Git repository."
# Get the current branch name
branch=$(git rev-parse --abbrev-ref HEAD)
# Pull the latest changes from the remote repository
echo "Pulling latest changes from remote branch '$branch'..."
git pull origin "$branch" || error_exit "Failed to pull changes from the remote repository. Please resolve any conflicts manually."
# Prompt the user to select a commit type
echo "Select a commit type:"
select type in "${TYPES[@]}"; do
if [[ -n "$type" ]]; then
break
else
echo "Invalid selection. Please try again."
fi
done
# Extract the commit type and emoji from the selection
type_emoji=${type}
type=${type_emoji#* }
emoji=${type_emoji% *}
# Prompt the user to enter a short description
read -p "Enter a short description: " desc
if [ -z "$desc" ]; then
error_exit "A short description is required!"
fi
# Prompt the user to enter a longer description (optional)
read -p "Enter a longer description (optional): " long_desc
# Create the commit message
commit_msg="$emoji $type: $desc"
# If a longer description was provided, add it to the commit message
if [ -n "$long_desc" ]; then
commit_msg+="\n\n$long_desc"
fi
# Print the commit message to the console
echo -e "\nCommit message:"
echo -e "\033[1;36m$commit_msg\033[0m"
# Stage all changes
git add .
# Commit the changes with the conventional commit message
if git commit -m "$commit_msg"; then
echo -e "\033[1;32mCommit successful!\033[0m"
else
error_exit "Commit failed."
fi
# Push the changes to the remote repository
echo "Pushing changes to remote branch '$branch'..."
if git push origin "$branch"; then
echo -e "\033[1;32mChanges pushed to remote branch '$branch'.\033[0m"
else
error_exit "Push failed. Please check your connection or branch permissions."
fi

4
repo-creds.sh Normal file
View File

@@ -0,0 +1,4 @@
pacman-key --recv-key 93BC54415EA8E7AB --keyserver keyserver.ubuntu.com
pacman-key --lsign-key 93BC54415EA8E7AB
pacman -U '#'
pacman -U '@'

Binary file not shown.

Binary file not shown.

49
x86_64/repo-updater.sh Executable file
View File

@@ -0,0 +1,49 @@
#!/bin/bash
#-----------------------------------------------------------
# Script to update Snigdha OS Core repository
# Author : Eshan Roy
# Author URI : https://eshanized.github.io
# Contributor : RiO
# Contributor URI : https://d3v1l0n.github.io
# Date : 2024-12-27
# Description : This script updates the Snigdha OS Core repository
# by adding new package files and updating the database files.
#-----------------------------------------------------------
# Set the name for the repository database
repo_name="snigdhaos-core"
# Function to handle errors
handle_error() {
echo "Error: $1"
exit 1
}
# Step 1: Remove old packages and database files
echo "Cleaning up old package and database files..."
rm -f "${repo_name}"* || handle_error "Failed to remove old packages."
# Step 2: Adding new packages to the repository
echo "Adding new packages to the repository..."
repo-add -s -n -R "${repo_name}.db.tar.gz" *.pkg.tar.zst || handle_error "Failed to add packages."
# Sleep to ensure all files are processed
sleep 1
# Step 3: Remove old database and files
echo "Cleaning up old database and files..."
rm -f "${repo_name}.db" "${repo_name}.db.sig" "${repo_name}.files" "${repo_name}.files.sig" || handle_error "Failed to remove old database files."
# Step 4: Move new files into place
echo "Moving new database and file archive..."
mv -f "${repo_name}.db.tar.gz" "${repo_name}.db" || handle_error "Failed to move database file."
mv -f "${repo_name}.db.tar.gz.sig" "${repo_name}.db.sig" || handle_error "Failed to move database signature file."
mv -f "${repo_name}.files.tar.gz" "${repo_name}.files" || handle_error "Failed to move files archive."
mv -f "${repo_name}.files.tar.gz.sig" "${repo_name}.files.sig" || handle_error "Failed to move files signature."
# Step 5: Confirmation
echo "Repository updated successfully!"
echo "*******************************************************************************"
echo "You can now sync the repository with 'pacman -Sy' to fetch the latest packages."
echo "*******************************************************************************"

BIN
x86_64/snigdhaos-core.db Normal file

Binary file not shown.

Binary file not shown.

BIN
x86_64/snigdhaos-core.files Normal file

Binary file not shown.

Binary file not shown.