diff --git a/install.sh b/install.sh index dfe78c3..64cab94 100644 --- a/install.sh +++ b/install.sh @@ -3,7 +3,7 @@ # Dynasty Revolution Universal Installer v2.3.7-pre # ----------------------------------------------------------------------- -# --- OS DETECTION & PATHING --- +# --- 1. OS DETECTION & PATHING --- if [[ "$OSTYPE" == "darwin"* ]]; then OS_TYPE="macOS" DYNR_PATH="$HOME/.dynr" @@ -12,12 +12,12 @@ else DYNR_PATH="/opt/dynr" fi -# --- THE SOURCE OF TRUTH --- +# --- 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") -# --- Brighter 256-Color Palette --- +# --- 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 @@ -25,7 +25,7 @@ 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 --- +# --- 4. NEWS DISPATCH --- echo -e "${GOLD}📜 LATEST ARCHIVE DISPATCHES:${NC}" NEWS_DATA=$(curl -sL -A "Mozilla/5.0" "$REPO_RAW/dispatches.txt") @@ -36,20 +36,14 @@ else fi echo -e "${PURPLE}-------------------------------------------------${NC}" -# --- FIRST STRIKE: Fresh Installation Logic --- +# --- 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}" - - # 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 + [[ "$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 @@ -61,44 +55,62 @@ if [ ! -f "/usr/local/bin/dynr" ]; then fi fi -# --- EXISTING INSTALL: Menu & Update Logic --- +# --- 6. MAIN MENU (EXISTING INSTALL) --- if [ -f "/usr/local/bin/dynr" ]; then - # Version Detection + # Version Checking 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 "${RED} Select option 2 to update.${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 -e "${GOLD}⚠️ Dynasty Framework (v$CURRENT_VER)${NC}" + echo -e "1) ${BLUE}Quick Strike${NC} (Modules)" + echo -e "2) ${BLUE}Update${NC}" + echo -e "3) ${RED}Uninstall${NC}" + echo "4) Exit" echo "" - read -p "Selection [1-4]: " ALREADY_OPT < /dev/tty + read -p "Selection: " OPT < /dev/tty - case $ALREADY_OPT in + case $OPT in 1) - # --- Local Modules --- - echo -e "\n${PURPLE}📜 Locally Manifested Scrolls ($DYNR_PATH):${NC}" + echo -e "\n${PURPLE}📜 Local 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}" + echo -e "\n${BLUE}Enter module name to run (or 'exit'):${NC}" read -p "dynr > " CMD_INPUT < /dev/tty - if [[ "$CMD_INPUT" == "exit" || "$CMD_INPUT" == "quit" ]]; then \ No newline at end of file + if [[ -n "$CMD_INPUT" && "$CMD_INPUT" != "exit" ]]; then + if [ ! -f "$DYNR_PATH/modules/$CMD_INPUT" ]; then + echo -e "${GOLD}🔎 Fetching module from cloud...${NC}" + if [[ "$OS_TYPE" == "macOS" ]]; then + curl -s -o "$DYNR_PATH/modules/$CMD_INPUT" "$REPO_RAW/modules/$CMD_INPUT" + chmod +x "$DYNR_PATH/modules/$CMD_INPUT" + else + sudo curl -s -o "$DYNR_PATH/modules/$CMD_INPUT" "$REPO_RAW/modules/$CMD_INPUT" + sudo chmod +x "$DYNR_PATH/modules/$CMD_INPUT" + fi + fi + "$DYNR_PATH/modules/$CMD_INPUT"