Files
Asainte Bueno-Villanueva 3968d477a0
All checks were successful
Update Dispatches / refresh-news (push) Successful in 3s
add auto aware👀
2026-02-06 08:30:41 -05:00

128 lines
5.6 KiB
Bash

#!/bin/bash
# -----------------------------------------------------------------------
# Dynasty Revolution Universal Installer v2.3.6
# -----------------------------------------------------------------------
# --- Brighter 256-Color Palette ---
BLUE='\033[38;5;45m'; PURPLE='\033[38;5;127m'; GOLD='\033[38;5;178m'; RED='\033[38;5;196m'; NC='\033[0m'
# --- THE SOURCE OF TRUTH ---
VERSION="2.3.6"
REPO_RAW="https://git.dynastyrevolution.com/DYNR/DynastyRevolution-Scripts/raw/branch/main"
CURRENT_DATE=$(date +"%m-%d-%Y")
clear
echo -e "${BLUE}🐉 Dynasty Revolution Systems Initializing...${NC}"
echo -e "${GOLD}Current Era: ${NC}$CURRENT_DATE"
echo -e "${PURPLE}-------------------------------------------------${NC}"
# --- News Dispatch Logic ---
echo -e "${GOLD}📜 LATEST ARCHIVE DISPATCHES:${NC}"
NEWS_DATA=$(curl -sL -A "Mozilla/5.0" "$REPO_RAW/dispatches.txt")
if [[ -z "$NEWS_DATA" || "$NEWS_DATA" == *"404"* ]]; then
echo -e " ${RED}The Archives are currently silent.${NC}"
else
echo "$NEWS_DATA" | sed "s/^/ /"
fi
echo -e "${PURPLE}-------------------------------------------------${NC}"
# --- Version & Existing Install Detection ---
if [ -f "/usr/local/bin/dynr" ]; then
CURRENT_VER=$(grep -m 1 "VERSION=" /usr/local/bin/dynr | sed -E 's/.*VERSION="?([0-9.]+)"?.*/\1/')
[[ -z "$CURRENT_VER" ]] && CURRENT_VER="Unknown"
# --- NEW: Self-Update Check ---
REMOTE_VER=$(curl -sL "$REPO_RAW/install.sh" | grep -m 1 "VERSION=" | sed -E 's/.*VERSION="?([0-9.]+)"?.*/\1/')
if [[ "$REMOTE_VER" != "$CURRENT_VER" && "$REMOTE_VER" != "" ]]; then
echo -e "${RED}✨ A NEW ERA HAS DAWNED: v$REMOTE_VER IS AVAILABLE! (Current: v$CURRENT_VER)${NC}"
echo -e "${RED} Select option 2 below to manifest the latest scrolls.${NC}"
echo -e "${PURPLE}-------------------------------------------------${NC}"
fi
echo -e "${GOLD}⚠️ Dynasty Framework detected (v$CURRENT_VER)${NC}"
echo -e "Select your path:"
echo -e "1) ${BLUE}Quick Strike${NC} (Run or Manifest Modules)"
echo -e "2) ${BLUE}Reinstall / Update${NC} (Overwrite)"
echo -e "3) ${RED}Uninstall${NC} (Remove)"
echo "4) Cancel"
echo ""
read -p "Selection [1-4]: " ALREADY_OPT < /dev/tty
case $ALREADY_OPT in
1)
# --- Local Modules ---
echo -e "\n${PURPLE}📜 Locally Manifested Scrolls:${NC}"
ls /opt/dynr/modules 2>/dev/null | sed 's/^/ ↓ /' || echo " (Empty)"
# --- Cloud Modules ---
echo -e "\n${BLUE}☁️ Cloud Manifest (Available):${NC}"
CLOUD_DATA=$(curl -sL -A "Mozilla/5.0" "$REPO_RAW/modules_list.txt" | grep -v "Not found")
if [[ -z "$CLOUD_DATA" ]]; then
echo -e " ${GOLD}Scanning the heavens... (No remote modules found)${NC}"
else
echo "$CLOUD_DATA" | sed 's/^/ ☁️ /'
fi
echo -e "\n${BLUE}Enter command to execute (or 'exit'):${NC}"
read -p "dynr > " CMD_INPUT < /dev/tty
if [[ "$CMD_INPUT" == "exit" || "$CMD_INPUT" == "quit" ]]; then
echo -e "${GOLD}🐉 The Dynasty awaits your return. Farewell.${NC}"
exit 0
fi
if [[ ! -z "$CMD_INPUT" ]]; then
if [ ! -f "/opt/dynr/modules/$CMD_INPUT" ]; then
echo -e "${GOLD}🔎 Module '$CMD_INPUT' is not local, but exists in the Cloud.${NC}"
read -p "📥 Manifest this scroll from the heavens? (y/n): " CONFIRM < /dev/tty
if [[ "$CONFIRM" == "y" || "$CONFIRM" == "Y" ]]; then
echo -e "${BLUE}☁️ Downloading...${NC}"
HTTP_STATUS=$(curl -s -o "/tmp/$CMD_INPUT" -w "%{http_code}" "$REPO_RAW/modules/$CMD_INPUT")
if [ "$HTTP_STATUS" -eq 200 ]; then
sudo mv "/tmp/$CMD_INPUT" "/opt/dynr/modules/$CMD_INPUT"
sudo chmod +x "/opt/dynr/modules/$CMD_INPUT"
echo -e "${BLUE}✅ Manifested!${NC}"
else
echo -e "${RED}❌ Failed to retrieve scroll.${NC}"
rm -f "/tmp/$CMD_INPUT"; exit 1
fi
else
echo -e "${GOLD}🐉 Operation cancelled.${NC}"; exit 0
fi
fi
dynr "$CMD_INPUT" </dev/tty
fi
exit 0
;;
2)
echo -e "${BLUE}📡 Fetching scrolls of change...${NC}"
CHANGES=$(curl -sL "$REPO_RAW/dispatches.txt" | head -n 15)
if whiptail --title "Dynasty Update Manifest" --scrolltext --yesno "Reviewing latest changes:\n\n$CHANGES\n\nProceed with system manifest v$REMOTE_VER?" 20 70; then
echo -e "${BLUE}Proceeding with Update...${NC}"
sudo curl -sSL "$REPO_RAW/install.sh" -o /usr/local/bin/dynr
sudo chmod +x /usr/local/bin/dynr
echo -e "${GOLD}✅ System Manifest Updated to v$REMOTE_VER${NC}"
else
echo -e "${GOLD}🐉 Update deferred.${NC}"
fi
exit 0
;;
3)
echo -e "${RED}Removing Dynasty files...${NC}"
sudo rm -rf /opt/dynr /usr/local/bin/dynr
exit 0
;;
*)
echo -e "${GOLD}🐉 The Dynasty awaits your return. Farewell.${NC}"
exit 0
;;
esac
fi
echo -e "\n${BLUE}System Initialized. Version: $VERSION${NC}"