82 lines
3.4 KiB
Bash
82 lines
3.4 KiB
Bash
#!/bin/bash
|
|
# -----------------------------------------------------------------------
|
|
# Dynasty Revolution Universal Installer v2.3.4
|
|
# -----------------------------------------------------------------------
|
|
|
|
BLUE='\033[38;5;45m'; PURPLE='\033[38;5;127m'; GOLD='\033[38;5;178m'; RED='\033[38;5;196m'; NC='\033[0m'
|
|
REPO_URL="https://git.dynastyrevolution.com/DYNR/DynastyRevolution-Scripts"
|
|
API_URL="https://git.dynastyrevolution.com/api/v1/repos/DYNR/DynastyRevolution-Scripts/commits?limit=3"
|
|
REPO_RAW="$REPO_URL/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}"
|
|
|
|
# --- Dynasty News Display [MM-DD-YYYY] ---
|
|
echo -e "${GOLD}📜 LATEST ARCHIVE DISPATCHES:${NC}"
|
|
curl -s "$API_URL" | grep -Po '\{"commit":\{"author":\{"name":"[^"]+","date":"[^"]+"\},"message":"[^"]+"\}' | \
|
|
sed -E 's/.*name":"([^"]+)","date":"([0-9]{4})-([0-9]{2})-([0-9]{2})T.*message":"([^"]+)".*/ Published: \3-\4-\2 | \5 (\1)/' | \
|
|
sed "s/^/$(echo -e ${BLUE})/;s/$/$(echo -e ${NC})/" || echo -e " ${RED}Unable to reach the Archives.${NC}"
|
|
|
|
echo -e "${PURPLE}-------------------------------------------------${NC}"
|
|
|
|
# Check current local version and offer Quick Strike
|
|
if [ -f "/usr/local/bin/dynr" ]; then
|
|
CURRENT_VER=$(grep "VERSION=" /usr/local/bin/dynr | cut -d '"' -f 2)
|
|
echo -e "${GOLD}⚠️ Dynasty Framework detected (v$CURRENT_VER)${NC}"
|
|
echo -e "Select your path:"
|
|
echo -e "1) ${BLUE}Quick Strike${NC} (Run a Command)"
|
|
echo -e "2) ${BLUE}Reinstall / Update${NC} (Overwrite)"
|
|
echo -e "3) ${RED}Uninstall${NC} (Remove)"
|
|
echo "4) Cancel"
|
|
|
|
read -p "Selection [1-4]: " ALREADY_OPT < /dev/tty
|
|
|
|
case $ALREADY_OPT in
|
|
1)
|
|
echo -e "\n${PURPLE}📜 Locally Manifested Scrolls:${NC}"
|
|
MODULES_LOCAL=$(ls /opt/dynr/modules 2>/dev/null)
|
|
if [ -z "$MODULES_LOCAL" ]; then
|
|
echo -e " ${RED}(No modules installed yet)${NC}"
|
|
echo -e " ${GOLD}Tip: Type 'help' to see available modules!${NC}"
|
|
else
|
|
echo "$MODULES_LOCAL" | sed 's/^/ 🐉 /'
|
|
fi
|
|
echo -e "\n${BLUE}Enter command to execute (or 'exit'):${NC}"
|
|
read -p "dynr > " CMD_INPUT < /dev/tty
|
|
|
|
# Exit/Quit Check
|
|
if [[ "$CMD_INPUT" == "exit" ]] || [[ "$CMD_INPUT" == "quit" ]]; then
|
|
echo -e "${GOLD}🐉 The Dynasty awaits your return. Farewell.${NC}"
|
|
exit 0
|
|
fi
|
|
|
|
[[ ! -z "$CMD_INPUT" ]] && dynr $CMD_INPUT
|
|
exit 0
|
|
;;
|
|
2) echo -e "${BLUE}Proceeding with Reinstallation...${NC}" ;;
|
|
3)
|
|
echo -e "${RED}🔥 Incinerating the Dynasty...${NC}"
|
|
sudo rm -rf /opt/dynr /usr/local/bin/dynr
|
|
exit 0 ;;
|
|
*) exit 0 ;;
|
|
esac
|
|
fi
|
|
|
|
# --- Standard Installation Logic ---
|
|
sudo mkdir -p /opt/dynr/modules
|
|
sudo chown -R $USER:$USER /opt/dynr
|
|
|
|
for dep in rclone fzf curl procps; do
|
|
if ! command -v $dep &> /dev/null; then
|
|
echo -e "${GOLD}Installing $dep...${NC}"
|
|
sudo apt-get update -qq && sudo apt-get install -y -qq $dep
|
|
fi
|
|
done
|
|
|
|
sudo curl -sSL "$REPO_RAW/core/dynr" -o /usr/local/bin/dynr
|
|
sudo chmod +x /usr/local/bin/dynr
|
|
|
|
echo -e "${BLUE}✨ Dynasty Core v2.3.4 installed.${NC}" |