All checks were successful
Update Dispatches / refresh-news (push) Successful in 3s
104 lines
4.1 KiB
Bash
104 lines
4.1 KiB
Bash
#!/bin/bash
|
|
# -----------------------------------------------------------------------
|
|
# Dynasty Revolution Universal Installer v2.3.7-pre
|
|
# -----------------------------------------------------------------------
|
|
|
|
# --- OS DETECTION & PATHING ---
|
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
OS_TYPE="macOS"
|
|
DYNR_PATH="$HOME/.dynr"
|
|
else
|
|
OS_TYPE="Linux"
|
|
DYNR_PATH="/opt/dynr"
|
|
fi
|
|
|
|
# --- THE 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")
|
|
|
|
# --- 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'
|
|
|
|
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}"
|
|
|
|
# --- 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}"
|
|
|
|
# --- FIRST STRIKE: Fresh Installation Logic ---
|
|
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}"
|
|
|
|
# Create directory (No sudo needed for Mac's $HOME path)
|
|
if [[ "$OS_TYPE" == "macOS" ]]; then
|
|
mkdir -p "$DYNR_PATH/modules"
|
|
else
|
|
sudo mkdir -p "$DYNR_PATH/modules"
|
|
fi
|
|
|
|
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
|
|
|
|
# --- EXISTING INSTALL: Menu & Update Logic ---
|
|
if [ -f "/usr/local/bin/dynr" ]; then
|
|
# Version Detection
|
|
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 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 ($DYNR_PATH):${NC}"
|
|
ls "$DYNR_PATH/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...${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 |