|
| 1 | +#!/bin/bash |
| 2 | + |
| 3 | +set -e |
| 4 | + |
| 5 | +######################################################## |
| 6 | +# |
| 7 | +# Pterodactyl-AutoThemes Installation |
| 8 | +# |
| 9 | +# Created and maintained by Ferks-FK |
| 10 | +# |
| 11 | +# Protected by GPL 3.0 License |
| 12 | +# |
| 13 | +######################################################## |
| 14 | + |
| 15 | +SCRIPT_VERSION="v0.4" |
| 16 | + |
| 17 | + |
| 18 | +print_brake() { |
| 19 | + for ((n = 0; n < $1; n++)); do |
| 20 | + echo -n "#" |
| 21 | + done |
| 22 | + echo "" |
| 23 | +} |
| 24 | + |
| 25 | +hyperlink() { |
| 26 | + echo -e "\e]8;;${1}\a${1}\e]8;;\a" |
| 27 | +} |
| 28 | + |
| 29 | +#### Colors #### |
| 30 | + |
| 31 | +GREEN="\e[0;92m" |
| 32 | +YELLOW="\033[1;33m" |
| 33 | +reset="\e[0m" |
| 34 | +red='\033[0;31m' |
| 35 | + |
| 36 | +error() { |
| 37 | + COLOR_RED='\033[0;31m' |
| 38 | + COLOR_NC='\033[0m' |
| 39 | + |
| 40 | + echo "" |
| 41 | + echo -e "* ${COLOR_RED}ERROR${COLOR_NC}: $1" |
| 42 | + echo "" |
| 43 | +} |
| 44 | + |
| 45 | + |
| 46 | +#### Check Sudo #### |
| 47 | + |
| 48 | +if [[ $EUID -ne 0 ]]; then |
| 49 | + echo "* This script must be executed with root privileges (sudo)." 1>&2 |
| 50 | + exit 1 |
| 51 | +fi |
| 52 | + |
| 53 | + |
| 54 | +#### Check Curl #### |
| 55 | + |
| 56 | +if ! [ -x "$(command -v curl)" ]; then |
| 57 | + echo "* curl is required in order for this script to work." |
| 58 | + echo "* install using apt (Debian and derivatives) or yum/dnf (CentOS)" |
| 59 | + exit 1 |
| 60 | +fi |
| 61 | + |
| 62 | +cancel() { |
| 63 | +echo |
| 64 | +echo -e "* ${red}Installation Canceled!${reset}" |
| 65 | +done=true |
| 66 | +exit 1 |
| 67 | +} |
| 68 | + |
| 69 | +done=false |
| 70 | + |
| 71 | +echo |
| 72 | +print_brake 70 |
| 73 | +echo "* Pterodactyl-AutoThemes Script @ $SCRIPT_VERSION" |
| 74 | +echo |
| 75 | +echo "* Copyright (C) 2021 - 2021, Ferks-FK." |
| 76 | +echo "* https://github.com/Ferks-FK/Pterodactyl-AutoThemes" |
| 77 | +echo |
| 78 | +echo "* This script is not associated with the official Pterodactyl Project." |
| 79 | +print_brake 70 |
| 80 | +echo |
| 81 | + |
| 82 | +Default() { |
| 83 | +bash <(curl -s https://raw.githubusercontent.com/Ferks-FK/Pterodactyl-AutoThemes/${SCRIPT_VERSION}/themes/version1.x/Default/build.sh) |
| 84 | +} |
| 85 | + |
| 86 | +Dracula() { |
| 87 | +bash <(curl -s https://raw.githubusercontent.com/Ferks-FK/Pterodactyl-AutoThemes/${SCRIPT_VERSION}/themes/version1.x/Dracula/build.sh) |
| 88 | +} |
| 89 | + |
| 90 | +Enola() { |
| 91 | +bash <(curl -s https://raw.githubusercontent.com/Ferks-FK/Pterodactyl-AutoThemes/${SCRIPT_VERSION}/themes/version1.x/Enola/build.sh) |
| 92 | +} |
| 93 | + |
| 94 | +Twilight() { |
| 95 | +bash <(curl -s https://raw.githubusercontent.com/Ferks-FK/Pterodactyl-AutoThemes/${SCRIPT_VERSION}/themes/version1.x/Twilight/build.sh) |
| 96 | +} |
| 97 | + |
| 98 | +BlackEndSpace() { |
| 99 | +bash <(curl -s https://raw.githubusercontent.com/Ferks-FK/Pterodactyl-AutoThemes/${SCRIPT_VERSION}/themes/version0.7.19/BlackEndSpace/build.sh) |
| 100 | +} |
| 101 | + |
| 102 | +BlueBrick() { |
| 103 | +bash <(curl -s https://raw.githubusercontent.com/Ferks-FK/Pterodactyl-AutoThemes/${SCRIPT_VERSION}/themes/version0.7.19/BlueBrick/build.sh) |
| 104 | +} |
| 105 | + |
| 106 | +LimeStitch() { |
| 107 | +bash <(curl -s https://raw.githubusercontent.com/Ferks-FK/Pterodactyl-AutoThemes/${SCRIPT_VERSION}/themes/version0.7.19/LimeStitch/build.sh) |
| 108 | +} |
| 109 | + |
| 110 | +MinecraftMadness() { |
| 111 | +bash <(curl -s https://raw.githubusercontent.com/Ferks-FK/Pterodactyl-AutoThemes/${SCRIPT_VERSION}/themes/version0.7.19/MinecraftMadness/build.sh) |
| 112 | +} |
| 113 | + |
| 114 | +NothingButGraphite() { |
| 115 | +bash <(curl -s https://raw.githubusercontent.com/Ferks-FK/Pterodactyl-AutoThemes/${SCRIPT_VERSION}/themes/version0.7.19/NothingButGraphite/build.sh) |
| 116 | +} |
| 117 | + |
| 118 | +RedApe() { |
| 119 | +bash <(curl -s https://raw.githubusercontent.com/Ferks-FK/Pterodactyl-AutoThemes/${SCRIPT_VERSION}/themes/version0.7.19/RedApe/build.sh) |
| 120 | +} |
| 121 | + |
| 122 | +TangoTwist() { |
| 123 | +bash <(curl -s https://raw.githubusercontent.com/Ferks-FK/Pterodactyl-AutoThemes/${SCRIPT_VERSION}/themes/version0.7.19/TangoTwist/build.sh) |
| 124 | +} |
| 125 | + |
| 126 | + |
| 127 | +while [ "$done" == false ]; do |
| 128 | + options=( |
| 129 | + "Back to default theme (Only 1.x)" |
| 130 | + "Install Dracula (Only 1.x)" |
| 131 | + "Install Enola (Only 1.x)" |
| 132 | + "Install Twilight (Only 1.x)" |
| 133 | + "Install Black End Space (Only 0.7.19)" |
| 134 | + "Install Blue Brick (Only 0.7.19)" |
| 135 | + "Install Lime Stitch (Only 0.7.19)" |
| 136 | + "Install Minecraft Madness (Only 0.7.19)" |
| 137 | + "Install Nothing But Graphite (Only 0.7.19)" |
| 138 | + "Install Red Ape (Only 0.7.19)" |
| 139 | + "Install Tango Twist (Only 0.7.19)" |
| 140 | + |
| 141 | + |
| 142 | + "Cancel Installation" |
| 143 | + ) |
| 144 | + |
| 145 | + actions=( |
| 146 | + "Default" |
| 147 | + "Dracula" |
| 148 | + "Enola" |
| 149 | + "Twilight" |
| 150 | + "BlackEndSpace" |
| 151 | + "BlueBrick" |
| 152 | + "LimeStitch" |
| 153 | + "MinecraftMadness" |
| 154 | + "NothingButGraphite" |
| 155 | + "RedApe" |
| 156 | + "TangoTwist" |
| 157 | + |
| 158 | + |
| 159 | + "cancel" |
| 160 | + ) |
| 161 | + |
| 162 | + echo "* Which theme do you want to install?" |
| 163 | + echo |
| 164 | + |
| 165 | + for i in "${!options[@]}"; do |
| 166 | + echo "[$i] ${options[$i]}" |
| 167 | + done |
| 168 | + |
| 169 | + echo |
| 170 | + echo -n "* Input 0-$((${#actions[@]} - 1)): " |
| 171 | + read -r action |
| 172 | + |
| 173 | + [ -z "$action" ] && error "Input is required" && continue |
| 174 | + |
| 175 | + valid_input=("$(for ((i = 0; i <= ${#actions[@]} - 1; i += 1)); do echo "${i}"; done)") |
| 176 | + [[ ! " ${valid_input[*]} " =~ ${action} ]] && error "Invalid option" |
| 177 | + [[ " ${valid_input[*]} " =~ ${action} ]] && done=true && eval "${actions[$action]}" |
| 178 | +done |
0 commit comments