man: fix rebase manually

This commit is contained in:
eshanized
2024-12-29 11:54:18 +05:30
20 changed files with 594 additions and 198 deletions

2
.github/CODEOWNERS vendored
View File

@@ -1,3 +1,3 @@
# https://help.github.com/articles/about-codeowners/
* @eshanized @iconized
* @eshanized @iconized @d3v1l0n

View File

@@ -1,14 +1,15 @@
# Maintainer: Eshan Roy <eshan@snigdhaos.org>
# Contributor: d3v1l0n <d3v1l0n@outlook.in>
pkgname=snigdhaos-assistant
pkgver=r251.f2df36f4
_pkgver=a1.0.0
_pkgver=$(curl -s https://api.github.com/repos/Snigdha-OS/snigdhaos-assistant/releases/latest | jq -r .tag_name)
pkgrel=1
pkgdesc="A setup utility for Snigdha OS which helps setting up & installing applications"
arch=('any')
url="https://gitlab.com/snigdhaos/snigdhaos-assistant/"
license=('MIT')
depends=('yad' 'wget' 'qt5-base')
depends=('yad' 'wget' 'qt5-base' 'curl' 'jq')
optdepends=('pamac')
makedepends=('git' 'cmake')
groups=()
@@ -16,8 +17,8 @@ source=("https://github.com/Snigdha-OS/${pkgname}/archive/refs/tags/${_pkgver}.t
sha256sums=('SKIP')
pkgver() {
# cd "$srcdir/$pkgname" || exit
printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
# Print package version as 'rX.XXXX'
printf "%s" "${_pkgver#v}"
}
build() {

View File

@@ -1,4 +1,5 @@
# Maintainer: Eshan Roy <eshan@snigdhaos.org>
# Contributor: d3v1l0n <d3v1l0n@outlook.in>
pkgname=snigdhaos-libs
org=Snigdha-OS
@@ -10,7 +11,7 @@ license=('MIT')
depends=(
'libnotify'
'expect'
)
)
source=(
"exec-termianl"
"snigdhaos.shlib"
@@ -18,14 +19,15 @@ source=(
"install-package"
"org.snigdhaos.libs.pkexec.policy"
"pkexec-gui"
)
)
sha256sums=(
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
)
)
pkgver(){
printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}

View File

@@ -1,6 +1,14 @@
#!/bin/bash
if grep -qE 'subvol=@/.snapshots/[0-9]+/snapshot' /proc/cmdline; then
exit 0
if [[ -f /proc/cmdline ]]; then
if grep -qE 'subvol=@/.snapshots/[0-9]+/snapshot' /proc/cmdline; then
echo "Booting from a Btrfs snapshot."
exit 0
else
echo "Not booting from a Btrfs snapshot."
exit 1
fi
else
echo "/proc/cmdline not found."
exit 2
fi
exit 1

View File

@@ -7,9 +7,9 @@
<vendor_url>https://snigdhaos.org</vendor_url>
<action id="org.snigdhaos.libs.install-package.pkexec.policy.run">
<description>Install software with pacman</description>
<message>Authentication is required to install software.</message>
<icon_name>snigdha-os</icon_name>
<description>Install software using the pacman package manager</description>
<message>Authentication is required to install software with pacman.</message>
<icon_name>snigdhaos-pacman</icon_name>
<defaults>
<allow_any>no</allow_any>
<allow_inactive>no</allow_inactive>
@@ -18,9 +18,11 @@
<annotate key="org.freedesktop.policykit.exec.path">/usr/lib/snigdhaos/install-package</annotate>
<annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
</action>
<action id="org.garuda.libs.pkexec-gui.pkexec.policy.run">
<description>Run GUI program as root</description>
<message>Authentication is required to run a GUI program as root.</message>
<description>Run a graphical program as root</description>
<message>Authentication is required to run a graphical program with elevated privileges.</message>
<icon_name>gnome-session</icon_name>
<defaults>
<allow_any>no</allow_any>
<allow_inactive>no</allow_inactive>

View File

@@ -7,21 +7,25 @@ if ! command -v pkexec &>/dev/null; then
fi
# Check if running as root
if [ $EUID -ne 0 ]; then
if [[ $EUID -ne 0 ]]; then
# Attempt to execute the script as root via pkexec
exec pkexec /usr/lib/snigdhaos/pkexec-gui "$@"
exit 1
fi
# Need some previous vars
# Shellcheck disable: Read environment variables from parent process
# shellcheck disable=SC2163
while IFS= read -rd '' var; do export "$var"; done < <(grep --null-data -ae "^\($XDG_CURRENT_DESKTOP\|WAYLAND_DISPLAY\|XDG_RUNTIME_DIR\|XDG_SESSION_TYPE\|XCURSOR_SIZE\|LC_*\|LANG\|LANGUAGE\|QT_WAYLAND_FORCE_DPI\|QT_QPA_PLATFORMTHEME\|QT_STYLE-OVERRIDE\|\)=.*\$" /proc/$PPID/environ)
# Read the necessary environment variables from the parent process
while IFS= read -rd '' var; do
export "$var"
done < <(grep --null-data -ae "^\($XDG_CURRENT_DESKTOP\|WAYLAND_DISPLAY\|XDG_RUNTIME_DIR\|XDG_SESSION_TYPE\|XCURSOR_SIZE\|LC_*\|LANG\|LANGUAGE\|QT_WAYLAND_FORCE_DPI\|QT_QPA_PLATFORMTHEME\|QT_STYLE-OVERRIDE\|\)=.*\$" /proc/$PPID/environ)
# If on Wayland, adjust WAYLAND_DISPLAY variable
if [[ -v WAYLAND_DISPLAY ]]; then
# Adjust WAYLAND_DISPLAY if running on Wayland
if [[ -n "$WAYLAND_DISPLAY" ]]; then
export WAYLAND_DISPLAY="$XDG_RUNTIME_DIR/$WAYLAND_DISPLAY"
fi
# Set root's runtime directory
# Set the root user's XDG_RUNTIME_DIR
export XDG_RUNTIME_DIR="/run/user/0"
# Execute the provided command with root privileges

View File

@@ -2,14 +2,29 @@
snigdhaoslib_add_update_notice() {
# Ensure the directory exists
mkdir -p /var/lib/snigdhaos/tmp
if ! mkdir -p /var/lib/snigdhaos/tmp; then
echo "Error: Failed to create directory /var/lib/snigdhaos/tmp" >&2
return 1
fi
# Get the current date
current_date=$(date +%F)
# Replace multiple spaces with a single space in the input string
# Ensure the input message is not empty
if [ -z "$1" ]; then
echo "Error: No update message provided." >&2
return 1
fi
# Replace multiple spaces with a single space
message="${1//[[:space:]]+/ }"
# Append the message to the file with the current date
echo "$current_date $message" >> /var/lib/snigdhaos/tmp/update_notices
if ! printf "%s %s\n" "$current_date" "$message" >> /var/lib/snigdhaos/tmp/update_notices; then
echo "Error: Failed to write to /var/lib/snigdhaos/tmp/update_notices" >&2
return 1
fi
# Optionally, display a success message (for debugging/logging purposes)
echo "Update notice successfully added for $current_date."
}

View File

@@ -0,0 +1,37 @@
# Maintainer : RiO <d3v1l0n@outlook.in>
pkgname=snigdhaos-lsb-release
pkgver=2.0.r55.a25a4fc
_commit=a25a4fcd73c79bd5af0dd8d948a7c96dcbfd2d07
pkgrel=1
pkgdesc='LSB version query program for Snigdha OS'
arch=('any')
url='https://refspecs.linuxfoundation.org/lsb.shtml'
license=('GPL-2.0-or-later')
depends=('sh')
makedepends=('git')
source=("git+https://github.com/LinuxStandardBase/lsb-samples.git#commit=${_commit}"
'lsb-release'
'lsb_release_make_man_page_reproducible.patch')
sha256sums=('SKIP'
'SKIP'
'SKIP')
pkgver() {
cd lsb-samples/lsb_release/src
printf '%s.r%s.%s' "$(grep -Po 'SCRIPTVERSION="\K[^"]*' lsb_release)" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}
prepare() {
patch -d lsb-samples/lsb_release/src -Np1 -i "${srcdir}/lsb_release_make_man_page_reproducible.patch"
}
build() {
make -C lsb-samples/lsb_release/src
}
package() {
install -D -m755 lsb-samples/lsb_release/src/lsb_release -t "${pkgdir}/usr/bin"
install -D -m644 lsb-samples/lsb_release/src/lsb_release.1.gz -t "${pkgdir}/usr/share/man/man1"
install -D -m644 lsb-release -t "${pkgdir}/etc"
}

View File

@@ -0,0 +1,3 @@
DISTRIB_ID="Arch"
DISTRIB_RELEASE="rolling"
DISTRIB_DESCRIPTION="Snigdha OS"

View File

@@ -0,0 +1,34 @@
From 1f5eb29ad59e7302e0407855333fbf1377f6f127 Mon Sep 17 00:00:00 2001
From: Jonas Witschel <diabonas@archlinux.org>
Date: Sat, 11 Jul 2020 17:02:59 +0200
Subject: [PATCH] Make man page reproducible
Respect SOURCE_DATE_EPOCH and remove the embedded timestamp from the gzipped
man page.
---
Makefile | 2 +-
help2man | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
--- a/Makefile
+++ b/Makefile
@@ -22,7 +22,7 @@ man: lsb_release.1.gz
lsb_release.1.gz: lsb_release
@./help2man -N --include ./lsb_release.examples --alt_version_key=program_version ./lsb_release >lsb_release.1
- @gzip -9f lsb_release.1
+ @gzip -9f -n lsb_release.1
install: all
install -D -m 644 lsb_release.1.gz ${mandir}/man1/lsb_release.1.gz
--- a/help2man
+++ b/help2man
@@ -173,7 +173,7 @@ my ($help_text, $version_text) = map {
or die "$this_program: can't get `--$_' info from $ARGV[0]\n"
} qw(help), $opt_version_key;
-my $date = strftime "%B %Y", localtime;
+my $date = strftime "%B %Y", gmtime($ENV{SOURCE_DATE_EPOCH} || time);
(my $program = $ARGV[0]) =~ s!.*/!!;
my $package = $program;
my $version;

View File

@@ -1,33 +1,25 @@
# Maintainer: Eshan Roy <eshan@snigdhaos.org>
# Contributor: d3v1l0n <d3v1l0n@outlook.in>
pkgname=snigdhaos-powershell
org="Snigdha-OS"
branch="master"
pkgver=r75.ba4f5f5
pkgver=r$(git rev-list --count HEAD).$(git rev-parse --short HEAD)
pkgrel=1
pkgdesc="Snigdha OS PowerShell Config!"
pkgdesc="Snigdha OS PowerShell Config"
arch=('any')
license=('MIT')
depends=(
'powershell-bin'
)
depends=('powershell-bin')
source=(
"$pkgname.tar.xz"
"${pkgname}.desktop"
)
sha256sums=(
'SKIP'
)
sha256sums=('SKIP' 'SKIP')
install=$pkgname.install
pkgver(){
printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}
package() {
mkdir -p "${pkgdir}/etc/skel/.config"
cp -r "${srcdir}/etc/skel/.config"/* "${pkgdir}/etc/skel/.config/"
package(){
mkdir -p "${pkgdir}/etc/skel"
cp -rf "${srcdir}/etc/skel/.config" "${pkgdir}/etc/skel/"
# rm "${pkgdir}/usr/share/applications/snigdhaos-powershell.desktop"
# install -Dm644 "${pkgname}.desktop" "${pkgdir}/usr/share/applications/${pkgname}.desktop"
install -Dm644 "${srcdir}/${pkgname}.desktop" "${pkgdir}/usr/share/applications/${pkgname}.desktop"
}

View File

@@ -1,6 +1,15 @@
$Host.UI.RawUI.WindowTitle = "SNIGDHA OS > PowerShell🔥"
function prompt()
{
$ESC=$([char]27)
"$ESC[0;36m┌──I'm $(whoami)$ESC[0;31m$($executionContext.SessionState.Path.CurrentLocation)$("`r`n$ESC[0;36m└──eshanized PowerShell🔥>$ESC[00m" * ($nestedPromptLevel + 1)) ";
function prompt {
$ESC = [char]27
$user = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name
$currentLocation = $executionContext.SessionState.Path.CurrentLocation
$gitBranch = ""
if (Test-Path .git -or (Get-Command git -ErrorAction SilentlyContinue)) {
$gitBranch = $(git rev-parse --abbrev-ref HEAD 2>$null)
if ($gitBranch) {
$gitBranch = " ($gitBranch)"
}
}
"$ESC[0;36m┌── $user $gitBranch$ESC[0;31m$currentLocation$($([char]13))`n$ESC[0;36m└── 🌟 SnigdhaOS PowerShell 🔥 > $ESC[00m"
}

View File

@@ -0,0 +1,10 @@
[Desktop Entry]
Version=1.0
Name=Snigdha OS PowerShell
Comment=PowerShell Configuration for Snigdha OS
Exec=pwsh -NoExit -Command "& {if (Test-Path '$HOME/.config/powershell/Microsoft.PowerShell_profile.ps1') { . '$HOME/.config/powershell/Microsoft.PowerShell_profile.ps1' } }"
Icon=/usr/share/pixmaps/snigdhaos-powershell.png
Terminal=true
Type=Application
Categories=Utility;System;Development;
StartupNotify=true

View File

@@ -1,160 +1,130 @@
post_install(){
tput setaf 3;
echo
echo "[WARNING] WARNING!"
echo
echo "If you are on Grub, please install the following package..."
echo "sudo pacman -S snigdhaos-bootloader-grub"
echo
echo "If you are using systemd-boot then isntall the following package..."
echo "sudo pacman -S snigdhaos-bootloader-systemd"
echo
echo "[WARNING] WARNING!"
echo
tput setaf 2;
#!/bin/bash
# Function to display a warning message
warn() {
tput setaf 3
echo "[WARNING] $1"
tput sgr0
}
# Function to display an informational message
info() {
tput setaf 2
echo "$1"
tput sgr0
}
# Function to display a success message
success() {
tput setaf 6
echo "$1"
tput sgr0
}
# Function to display an error message
error() {
tput setaf 1
echo "[ERROR] $1"
tput sgr0
}
# Function to check if a package is installed
package_installed() {
if pacman -Qi "$1" &> /dev/null; then
return 0
else
return 1
fi
}
# Function to handle package installation confirmation
confirm_package_installed() {
local package=$1
if package_installed "$package"; then
success "$package found!"
info "Bootloader is safe!"
else
error "$package not found!"
warn "Install the package for your safety!"
fi
}
# Function to handle post-install tasks
post_install() {
warn "If you are on Grub, please install the following package..."
info "sudo pacman -S snigdhaos-bootloader-grub"
warn "If you are using systemd-boot then install the following package..."
info "sudo pacman -S snigdhaos-bootloader-systemd"
bootloader=$(bootctl status | grep "Product" | awk '{print $2}')
if [ "$bootloader" = "systemd-boot" ]; then
echo
echo "systemd-bootloader found!"
echo "Install the following package for your safety!"
echo
echo "sudo pacman -S snigdhaos-bootloader-systemd"
echo "It has all the pacman-hooks which are essentials."
echo
elif [ $bootloader = "GRUB" ]; then
echo
echo "GRUB bootloader found!"
echo "Install the following package for your safety!"
echo
echo "sudo pacman -S snigdhaos-bootloader-grub"
echo "It has all the pacman-hooks which are essentials."
echo
info "systemd-bootloader found!"
info "Install the following package for your safety!"
info "sudo pacman -S snigdhaos-bootloader-systemd"
info "It has all the pacman-hooks which are essentials."
elif [ "$bootloader" = "GRUB" ]; then
info "GRUB bootloader found!"
info "Install the following package for your safety!"
info "sudo pacman -S snigdhaos-bootloader-grub"
info "It has all the pacman-hooks which are essentials."
fi
tput sgr0
# Confirmation for package installation
package_installed(){
if pacman -Qi "$1" &> /dev/null; then
return 0
else
return 1
fi
}
confirm_package_installed "snigdhaos-bootloader-grub"
confirm_package_installed "snigdhaos-bootloader-systemd"
tput setaf 6;
if package_installed snigdhaos-bootloader-grub; then
echo
echo "snigdhaos-bootloader-grub found!"
echo "Bootloader is safe!"
echo
if ! package_installed "snigdhaos-bootloader-systemd" && ! package_installed "snigdhaos-bootloader-grub"; then
error "snigdhaos-bootloader-systemd or snigdhaos-bootloader-grub not found!"
warn "Install the package for systemd or grub!"
fi
tput sgr0
tput setaf 6;
if package_installed snigdhaos-bootloader-systemd; then
echo
echo "snigdhaos-bootloader-systemd found!"
echo "Bootloader is safe!"
echo
fi
tput sgr0
tput setaf 1;
if ! package_installed snigdhaos-bootloader-systemd && ! package_installed snigdhaos-bootloader-grub; then
echo
echo "snigdhaos-bootloader-systemd or snigdhaos-bootloader-grub not found!"
echo "[WARNING] WARNING!"
echo "Install the package for systemd or grub!"
echo
fi
tput sgr0
if systemctl --all --type service | grep -q "virtual-machine-check"; then
systemctl disable virtual-machine-check.service
fi
sh /usr/local/bin/snigdhaos-lsb-release
sh /usr/local/bin/snigdhaos-os-release
}
post_upgrade(){
tput setaf 3;
echo
echo "[WARNING] WARNING!"
echo
echo "If you are on Grub, please install the following package..."
echo "sudo pacman -S snigdhaos-bootloader-grub"
echo
echo "If you are using systemd-boot then isntall the following package..."
echo "sudo pacman -S snigdhaos-bootloader-systemd"
echo
echo "[WARNING] WARNING!"
echo
tput setaf 2;
# Function to handle post-upgrade tasks
post_upgrade() {
warn "If you are on Grub, please install the following package..."
info "sudo pacman -S snigdhaos-bootloader-grub"
warn "If you are using systemd-boot then install the following package..."
info "sudo pacman -S snigdhaos-bootloader-systemd"
bootloader=$(bootctl status | grep "Product" | awk '{print $2}')
if [ "$bootloader" = "systemd-boot" ]; then
echo
echo "systemd-bootloader found!"
echo "Install the following package for your safety!"
echo
echo "sudo pacman -S snigdhaos-bootloader-systemd"
echo "It has all the pacman-hooks which are essentials."
echo
elif [ $bootloader = "GRUB" ]; then
echo
echo "GRUB bootloader found!"
echo "Install the following package for your safety!"
echo
echo "sudo pacman -S snigdhaos-bootloader-grub"
echo "It has all the pacman-hooks which are essentials."
echo
info "systemd-bootloader found!"
info "Install the following package for your safety!"
info "sudo pacman -S snigdhaos-bootloader-systemd"
info "It has all the pacman-hooks which are essentials."
elif [ "$bootloader" = "GRUB" ]; then
info "GRUB bootloader found!"
info "Install the following package for your safety!"
info "sudo pacman -S snigdhaos-bootloader-grub"
info "It has all the pacman-hooks which are essentials."
fi
tput sgr0
# Confirmation for package installation
package_installed(){
if pacman -Qi "$1" &> /dev/null; then
return 0
else
return 1
fi
}
confirm_package_installed "snigdhaos-bootloader-grub"
confirm_package_installed "snigdhaos-bootloader-systemd"
tput setaf 6;
if package_installed snigdhaos-bootloader-grub; then
echo
echo "snigdhaos-bootloader-grub found!"
echo "Bootloader is safe!"
echo
if ! package_installed "snigdhaos-bootloader-systemd" && ! package_installed "snigdhaos-bootloader-grub"; then
error "snigdhaos-bootloader-systemd or snigdhaos-bootloader-grub not found!"
warn "Install the package for systemd or grub!"
fi
tput sgr0
tput setaf 6;
if package_installed snigdhaos-bootloader-systemd; then
echo
echo "snigdhaos-bootloader-systemd found!"
echo "Bootloader is safe!"
echo
fi
tput sgr0
tput setaf 1;
if ! package_installed snigdhaos-bootloader-systemd && ! package_installed snigdhaos-bootloader-grub; then
echo
echo "snigdhaos-bootloader-systemd or snigdhaos-bootloader-grub not found!"
echo "[WARNING] WARNING!"
echo "Install the package for systemd or grub!"
echo
fi
tput sgr0
if systemctl --all --type service | grep -q "virtual-machine-check"; then
systemctl disable virtual-machine-check.service
fi
sh /usr/local/bin/snigdhaos-lsb-release
sh /usr/local/bin/snigdhaos-os-release
}
pre_remove(){
# Function to handle pre-remove tasks
pre_remove() {
if systemctl --all --type service | grep -q "virtual-machine-check"; then
systemctl disable virtual-machine-check.service
fi

View File

@@ -1,4 +1,5 @@
# Maintainer: Eshan Roy <eshan@snigdhaos.org>
# Contributor: [Contributor Name] <[Contributor Email]>
pkgname=snigdhaos-system-installation
org=Snigdha-OS
@@ -22,8 +23,8 @@ sha256sums=('SKIP')
install="${pkgname}.install"
pkgver() {
# cd "$srcdir/$pkgname"
printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
# cd "$srcdir/$pkgname"
printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}
package() {

View File

@@ -1,14 +1,71 @@
# Function to display a warning message
warn() {
tput setaf 3
echo "[WARNING] $1"
tput sgr0
}
# Function to display an informational message
info() {
tput setaf 2
echo "$1"
tput sgr0
}
# Function to display a success message
success() {
tput setaf 6
echo "$1"
tput sgr0
}
# Function to display an error message
error() {
tput setaf 1
echo "[ERROR] $1"
tput sgr0
}
# Function to handle enabling/disabling a service
manage_service() {
local service=$1
local action=$2
if systemctl $action $service; then
success "Service $service ${action}d successfully."
else
error "Failed to ${action} service $service."
fi
}
# Function to handle starting/stopping a service
manage_service_start() {
local service=$1
local action=$2
if systemctl $action $service; then
success "Service $service ${action}ed successfully."
else
error "Failed to ${action} service $service."
fi
}
# Function to handle post-install tasks
post_install() {
systemctl enable snigdhaos-graphical-target.service
systemctl start snigdhaos-graphical-target.service
info "Enabling and starting snigdhaos-graphical-target.service..."
manage_service "snigdhaos-graphical-target.service" "enable"
manage_service_start "snigdhaos-graphical-target.service" "start"
}
# Function to handle post-upgrade tasks
post_upgrade() {
systemctl enable snigdhaos-graphical-target.service
systemctl start snigdhaos-graphical-target.service
info "Enabling and starting snigdhaos-graphical-target.service..."
manage_service "snigdhaos-graphical-target.service" "enable"
manage_service_start "snigdhaos-graphical-target.service" "start"
}
# Function to handle pre-remove tasks
pre_remove() {
systemctl disable snigdhaos-graphical-target.service
info "Disabling snigdhaos-graphical-target.service..."
manage_service "snigdhaos-graphical-target.service" "disable"
}

View File

@@ -1,7 +1,28 @@
post_install() {
echo -e "\n** The files have been installed in /usr/share/tabliss/tabliss.json **\n"
# Function to display a success message
success() {
tput setaf 6
echo "$1"
tput sgr0
}
# Function to display an informational message
info() {
tput setaf 2
echo "$1"
tput sgr0
}
# Function to handle post-install tasks
post_install() {
info "The files have been installed in /usr/share/tabliss/tabliss.json"
}
# Function to handle post-upgrade tasks
post_upgrade() {
post_install
}
# Function to handle pre-remove tasks
pre_remove() {
info "Preparing to remove the files from /usr/share/tabliss/tabliss.json"
}

View File

@@ -0,0 +1,146 @@
#!/bin/bash
# Define color codes
RESET='\033[0m'
BOLD='\033[1m'
RED='\033[31m'
GREEN='\033[32m'
YELLOW='\033[33m'
BLUE='\033[34m'
# Define the mirror list files
ARCH_MIRROR_LIST="/etc/pacman.d/mirrorlist"
BLACKARCH_MIRROR_LIST="/etc/pacman.d/blackarch-mirrorlist"
CHAOTIC_AUR_MIRROR_LIST="/etc/pacman.d/chaotic-mirrorlist"
# Define a backup directory for safety
BACKUP_DIR="/tmp/backup_mirrorlists_$(date +%Y%m%d_%H%M%S)"
# Error handling function
error_exit() {
echo -e "${RED}ERROR: $1${RESET}" >&2
exit 1
}
# Create backup directory safely
mkdir -p "$BACKUP_DIR" || error_exit "Failed to create backup directory"
# Function to check if rankmirrors is installed
check_rankmirrors_installed() {
if ! command -v rankmirrors &> /dev/null; then
echo -e "${RED}rankmirrors is not installed.${RESET}"
read -p "Would you like to install rankmirrors now? (y/n): " choice
if [[ "$choice" =~ ^[yY]$ ]]; then
echo -e "${BLUE}Installing rankmirrors...${RESET}"
sudo pacman -S --noconfirm pacman-contrib || error_exit "Failed to install rankmirrors"
echo -e "${GREEN}rankmirrors installed successfully!${RESET}"
else
error_exit "rankmirrors is required to proceed."
fi
fi
}
# Function to auto-detect the country based on the system's timezone
get_country_from_timezone() {
local timezone
# Try multiple methods to get timezone
timezone=$(timedatectl show --property=Timezone --value 2>/dev/null) ||
timezone=$(cat /etc/timezone 2>/dev/null) ||
timezone=$(readlink -f /etc/localtime 2>/dev/null)
# Extract country from timezone
local country
country=$(echo "$timezone" | sed -E 's:.*/([^/]+):\1:' | cut -d'_' -f1)
# Fallback to default if country can't be determined
if [[ -z "$country" || "$country" == "Etc" || "$country" == "GMT" ]]; then
country="United States"
fi
echo "$country"
}
# Main script execution
main() {
# Get the country based on the system's timezone
local country
country=$(get_country_from_timezone)
echo -e "${BLUE}Detected country based on timezone: ${GREEN}$country${RESET}"
# Check for root/sudo permissions
if [[ $EUID -eq 0 ]]; then
error_exit "Do not run this script as root. Use sudo if needed."
fi
# Check if rankmirrors is installed
check_rankmirrors_installed
# Backup current mirror lists
echo -e "${BLUE}Backing up current mirror lists...${RESET}"
for list in "$ARCH_MIRROR_LIST" "$BLACKARCH_MIRROR_LIST" "$CHAOTIC_AUR_MIRROR_LIST"; do
if [[ -f "$list" ]]; then
cp "$list" "$BACKUP_DIR/$(basename "$list").bak" || error_exit "Failed to backup $list"
fi
done
# Ensure backup was successful
[[ "$(ls -A "$BACKUP_DIR")" ]] || error_exit "No mirror lists were backed up"
# Update system packages
echo -e "${YELLOW}Updating system packages...${RESET}"
sudo pacman -Sy || error_exit "Failed to update package databases"
# Prepare temporary directory for new mirror lists
temp_dir=$(mktemp -d) || error_exit "Failed to create temporary directory"
trap 'rm -rf "$temp_dir"' EXIT
# Use rankmirrors to generate new mirror lists
echo -e "${GREEN}Selecting fastest mirrors using rankmirrors...${RESET}"
# Rank and save Arch Linux mirror list
sudo rankmirrors -n 6 /etc/pacman.d/mirrorlist | tee "$temp_dir/mirrorlist" ||
error_exit "Failed to generate Arch mirror list"
# Rank and save BlackArch mirror list
sudo rankmirrors -n 6 /etc/pacman.d/blackarch-mirrorlist | tee "$temp_dir/blackarch-mirrorlist" ||
error_exit "Failed to generate BlackArch mirror list"
# Rank and save Chaotic-AUR mirror list
sudo rankmirrors -n 6 /etc/pacman.d/chaotic-mirrorlist | tee "$temp_dir/chaotic-mirrorlist" ||
error_exit "Failed to generate Chaotic-AUR mirror list"
# Check if the files exist before copying
if [[ -f "$temp_dir/mirrorlist" ]]; then
sudo cp "$temp_dir/mirrorlist" "$ARCH_MIRROR_LIST" || error_exit "Failed to copy Arch mirror list"
else
error_exit "Arch mirror list not found in $temp_dir"
fi
if [[ -f "$temp_dir/blackarch-mirrorlist" ]]; then
sudo cp "$temp_dir/blackarch-mirrorlist" "$BLACKARCH_MIRROR_LIST" || error_exit "Failed to copy BlackArch mirror list"
else
error_exit "BlackArch mirror list not found in $temp_dir"
fi
if [[ -f "$temp_dir/chaotic-mirrorlist" ]]; then
sudo cp "$temp_dir/chaotic-mirrorlist" "$CHAOTIC_AUR_MIRROR_LIST" || error_exit "Failed to copy Chaotic-AUR mirror list"
else
error_exit "Chaotic-AUR mirror list not found in $temp_dir"
fi
# Success messages
echo -e "${GREEN}Mirror lists have been updated successfully!${RESET}"
echo -e "${BLUE}Your system's mirror lists have been optimized.${RESET}"
# Optional system update
read -p "Would you like to perform a full system update now? (y/n): " choice
if [[ "$choice" =~ ^[yY]$ ]]; then
sudo pacman -Syu
echo -e "${GREEN}System update completed!${RESET}"
else
echo -e "${YELLOW}Mirror update complete. You can run 'sudo pacman -Syu' later.${RESET}"
fi
}
# Run the main function
main

View File

@@ -0,0 +1,74 @@
#!/bin/bash
# ✨ Script Developed by: D3V1L0N ✨
# 🌟 Version: 1.0 🌟
echo "────────────────────────────────────────────────────────────────────"
echo "🎉 Hard Reset Script for Snigdha OS 🎉"
echo "👨‍💻 Developed by: D3V1L0N"
echo "────────────────────────────────────────────────────────────────────"
read -p "⚠️ WARNING: This script will reset the system by removing non-essential packages and overwriting configurations. Do you want to continue? (y/n): " confirm
if [[ ! "$confirm" =~ ^[Yy]$ ]]; then
echo "🚨 Operation aborted by user. Exiting... 🚨"
exit 1
fi
essential_packages=(
base
base-devel
linux
linux-firmware
systemd
grub
mkinitcpio
udev
vi
coreutils
bash
)
is_essential() {
for pkg in "${essential_packages[@]}"; do
if [[ "$1" == "$pkg" ]]; then
return 0
fi
done
return 1
}
echo "🌐 Updating package database..."
pacman -Sy --noconfirm
installed_packages=$(pacman -Qq)
echo "🧹 Cleaning up: Removing non-essential packages..."
for pkg in $installed_packages; do
if ! is_essential "$pkg"; then
echo "🗑️ Removing package: $pkg"
pacman -Rns --noconfirm "$pkg"
fi
done
echo "⚙️ Resetting configuration files..."
echo "⚠️ WARNING: Resetting /etc will overwrite existing configurations! Backup any important configs before proceeding."
read -p "Are you sure you want to continue with the hard reset and overwrite /etc configuration files? (y/n): " confirm
if [[ ! "$confirm" =~ ^[Yy]$ ]]; then
echo "🚨 Operation aborted by user. Exiting... 🚨"
exit 1
fi
rm -rf /etc/*
cp -r /etc/skel/* /etc/
echo "🔄 Reinstalling essential packages..."
for pkg in "${essential_packages[@]}"; do
pacman -S --noconfirm --needed "$pkg"
done
echo "🔧 Rebuilding initramfs..."
mkinitcpio -P
echo "🎉 Hard reset complete! Essential packages reinstalled, system cleaned, and ready to go. 🚀"
echo "🔄 It's recommended to reboot your system now for changes to take effect."

View File

@@ -1,5 +1,5 @@
# Maintainer: Eshan Roy <eshan@snigdhaos.org>
# Contributor: RiO <d3v1l0n@outlook.in>
pkgname=snigdhaos-welcome
_pkgname=snigdhaos-welcome
@@ -24,19 +24,29 @@ provides=("${pkgname}")
conflicts=('snigdhaos-welcome-dev')
install=$pkgname.install
options=(!strip !emptydirs)
source=(${_pkgname}::"git+${url}")
source=("${pkgname}::git+${url}")
sha256sums=('SKIP')
pkgver() {
cd "$srcdir/$pkgname"
printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
cd "$srcdir/$pkgname"
# Retrieve the version based on Git commits
printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}
package() {
install -dm755 ${pkgdir}${_licensedir}${_pkgname}
install -m644 ${srcdir}/${_pkgname}/LICENSE ${pkgdir}${_licensedir}${_pkgname}
mkdir -p "${pkgdir}${_destname1}"
cp -r "${srcdir}/${_pkgname}/${_destname1}/"* "${pkgdir}${_destname1}"
mkdir -p "${pkgdir}${_destname2}"
cp -r "${srcdir}/${_pkgname}/${_destname2}/"* "${pkgdir}${_destname2}"
# Create directories for the license and app data
install -dm755 ${pkgdir}${_licensedir}${_pkgname}
install -m644 ${srcdir}/${_pkgname}/LICENSE ${pkgdir}${_licensedir}${_pkgname}
# Install configuration files to the user's default skeleton directory
mkdir -p "${pkgdir}${_destname1}"
cp -r "${srcdir}/${_pkgname}/${_destname1}/"* "${pkgdir}${_destname1}"
# Install the main application files to /usr
mkdir -p "${pkgdir}${_destname2}"
cp -r "${srcdir}/${_pkgname}/${_destname2}/"* "${pkgdir}${_destname2}"
# Optionally clean up any unnecessary files (e.g., .git, build files, etc.)
# This ensures the final package only contains the necessary files
find "$pkgdir" -type f -name "*.git*" -exec rm -f {} \;
}