Files
DynastyRevolution-Scripts/install.sh
Asainte Bueno-Villanueva b05bf26bf9
All checks were successful
Update Dispatches / refresh-news (push) Successful in 1s
add remove modules option
2026-02-07 22:58:35 -05:00

126 lines
5.2 KiB
Bash

#!/bin/bash
# -----------------------------------------------------------------------
# Dynasty Revolution Universal Installer v2.3.7-pre
# -----------------------------------------------------------------------
# --- 1. OS DETECTION & PATHING ---
if [[ "$OSTYPE" == "darwin"* ]]; then
OS_TYPE="macOS"
DYNR_PATH="$HOME/.dynr"
else
OS_TYPE="Linux"
DYNR_PATH="/opt/dynr"
fi
# --- 2. SOURCE OF TRUTH ---
VERSION="2.3.7-pre"
REPO_RAW="https://git.dynastyrevolution.com/DYNR/DynastyRevolution-Scripts/raw/branch/v2.3.7-pre"
CURRENT_DATE=$(date +"%m-%d-%Y")
# --- 3. STYLING ---
BLUE='\033[38;5;45m'; PURPLE='\033[38;5;127m'; GOLD='\033[38;5;178m'; RED='\033[38;5;196m'; NC='\033[0m'
clear
echo -e "${BLUE}🐉 Dynasty Revolution Systems Initializing...${NC}"
echo -e "${GOLD}Current Era: ${NC}$CURRENT_DATE | ${BLUE}OS: $OS_TYPE${NC}"
echo -e "${PURPLE}-------------------------------------------------${NC}"
# --- 4. NEWS DISPATCH ---
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}"
# --- 5. FIRST STRIKE (INSTALLATION) ---
if [ ! -f "/usr/local/bin/dynr" ]; then
echo -e "${GOLD}⚠️ Dynasty Framework is not yet manifested on this $OS_TYPE system.${NC}"
read -p "📥 Initiate First Strike (Install)? (y/n): " INSTALL_CONFIRM < /dev/tty
if [[ "$INSTALL_CONFIRM" == "y" || "$INSTALL_CONFIRM" == "Y" ]]; then
echo -e "${BLUE}📡 Manifesting core files in $DYNR_PATH...${NC}"
[[ "$OS_TYPE" == "macOS" ]] && mkdir -p "$DYNR_PATH/modules" || sudo mkdir -p "$DYNR_PATH/modules"
sudo curl -sSL "$REPO_RAW/install.sh" -o /usr/local/bin/dynr
sudo chmod +x /usr/local/bin/dynr
echo -e "${GOLD}✅ System Manifested! Type 'dynr' to begin.${NC}"
exit 0
else
echo -e "${RED}❌ Manifestation cancelled.${NC}"
exit 0
fi
fi
# --- 6. MAIN MENU (EXISTING INSTALL) ---
if [ -f "/usr/local/bin/dynr" ]; then
CURRENT_VER=$(grep -m 1 "VERSION=" /usr/local/bin/dynr | sed -E 's/.*VERSION="?([^"]*)"?.*/\1/')
REMOTE_VER=$(curl -sL "$REPO_RAW/install.sh" | grep -m 1 "VERSION=" | sed -E 's/.*VERSION="?([^"]*)"?.*/\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 to update.${NC}"
echo -e "${PURPLE}-------------------------------------------------${NC}"
fi
echo -e "${GOLD}⚠️ Dynasty Framework (v$CURRENT_VER)${NC}"
echo -e "1) ${BLUE}Quick Strike${NC} (Modules)"
echo -e "2) ${BLUE}Update Framework${NC}"
echo -e "3) ${RED}Uninstall Framework${NC}"
echo -e "4) ${PURPLE}Remove Modules${NC}"
echo "5) Exit"
echo ""
read -p "Selection [1-5]: " OPT < /dev/tty
case $OPT in
1)
echo -e "\n${PURPLE}📜 Local Scrolls ($DYNR_PATH):${NC}"
ls "$DYNR_PATH/modules" 2>/dev/null | sed 's/^/ ↓ /' || echo " (Empty)"
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 module name to run (or 'exit'):${NC}"
read -p "dynr > " CMD_INPUT < /dev/tty
if [[ -n "$CMD_INPUT" && "$CMD_INPUT" != "exit" ]]; then
if [ ! -f "$DYNR_PATH/modules/$CMD_INPUT" ]; then
echo -e "${GOLD}🔎 Fetching module from cloud...${NC}"
curl -s -o "$DYNR_PATH/modules/$CMD_INPUT" "$REPO_RAW/modules/$CMD_INPUT"
chmod +x "$DYNR_PATH/modules/$CMD_INPUT"
fi
"$DYNR_PATH/modules/$CMD_INPUT" </dev/tty
fi
;;
2)
sudo curl -sSL "$REPO_RAW/install.sh" -o /usr/local/bin/dynr
sudo chmod +x /usr/local/bin/dynr
echo -e "${GOLD}✅ System Updated.${NC}"
;;
3)
sudo rm -f /usr/local/bin/dynr
rm -rf "$DYNR_PATH"
echo -e "${RED}Framework purged.${NC}"
;;
4)
echo -e "\n${RED}🗑️ MODULE PURGE PROTOCOL${NC}"
ls "$DYNR_PATH/modules" 2>/dev/null | sed 's/^/ ❌ /' || echo " (Nothing to remove)"
read -p "Enter module name to delete (or 'cancel'): " RM_INPUT < /dev/tty
if [[ -n "$RM_INPUT" && "$RM_INPUT" != "cancel" ]]; then
rm -f "$DYNR_PATH/modules/$RM_INPUT"
echo -e "${GOLD}✅ Module '$RM_INPUT' removed.${NC}"
fi
;;
5)
echo "Exiting..."; exit 0 ;;
*)
echo "Invalid selection." ;;
esac
fi
echo -e "\n${BLUE}System Initialized. Version: $VERSION${NC}"