#!/bin/bash #-----------------------------------# # VARIABLES # #-----------------------------------# this_script_url="https://git.hhf.technology/hhf/script-management-cloudpanel/raw/branch/main/maintenance/cloudpanel-ui-mod.sh" this_script_name="CloudPanel UI Mod Installation Script by @ccMatrix" formatter_url="https://git.hhf.technology/hhf/TaskFormatter/raw/branch/main/bash_task_formatter/task_formatter.sh" scriptname=$0 # Initialize success flag success=0 # Path variables APP_PATH="/home/clp/htdocs/app" MOD_PATH="/home/clp/htdocs/app_mod" CACHE_PATH="$APP_PATH/files/var/cache/prod/twig" COMMAND_EXECUTOR="$APP_PATH/files/src/System/CommandExecutor.php" BASH_ALIASES="/root/.bash_aliases" INSTALL_PATH="/usr/local/bin/clp-install-mod" #-----------------------------------# # FORMATTER # #-----------------------------------# # Download and source the formatter with error handling download_formatter() { if [ ! -f "task_formatter.sh" ]; then if ! wget "$formatter_url" --no-check-certificate -O task_formatter.sh > /dev/null 2>&1; then echo "Error: Failed to download task_formatter.sh" exit 1 fi fi chmod +x task_formatter.sh source ./task_formatter.sh || { echo "Error: Failed to source task_formatter.sh"; exit 1; } } download_formatter #-----------------------------------# # FUNCTIONS # #-----------------------------------# # Function to copy script to bin install_script() { cp "$0" "$INSTALL_PATH" && \ chmod +x "$INSTALL_PATH" if [ $? -eq 0 ]; then echo -e "Script installed successfully $CHECK_MARK" return 0 else echo -e "Failed to install script $CROSS_MARK" return 1 fi } # Function to setup alias setup_alias() { local alias_line="alias clp-update='/usr/bin/clp-update && $INSTALL_PATH'" if [ ! -f "$BASH_ALIASES" ]; then echo "$alias_line" > "$BASH_ALIASES" else grep -q "alias clp-update=" "$BASH_ALIASES" && \ sed -i "s|alias clp-update=.*|$alias_line|" "$BASH_ALIASES" || \ echo "$alias_line" >> "$BASH_ALIASES" fi if [ $? -eq 0 ]; then source "$BASH_ALIASES" echo -e "Alias setup successfully $CHECK_MARK" return 0 else echo -e "Failed to setup alias $CROSS_MARK" return 1 fi } # Function to install UI modifications install_ui_mods() { if [ -d "$MOD_PATH" ]; then cp -r "$MOD_PATH"/* "$APP_PATH"/ && \ chown -R clp:clp "$APP_PATH" && \ rm -rf "$CACHE_PATH" if [ $? -eq 0 ]; then echo -e "UI modifications installed successfully $CHECK_MARK" return 0 else echo -e "Failed to install UI modifications $CROSS_MARK" return 1 fi else echo -e "Mod directory not found $CROSS_MARK" return 1 fi } # Function to patch execution timeout patch_timeout() { if [ -f "$COMMAND_EXECUTOR" ]; then sed -i 's/timeout = 30/timeout = 60/' "$COMMAND_EXECUTOR" if [ $? -eq 0 ]; then echo -e "Timeout patched successfully $CHECK_MARK" return 0 else echo -e "Failed to patch timeout $CROSS_MARK" return 1 fi else echo -e "CommandExecutor.php not found $CROSS_MARK" return 1 fi } #-----------------------------------# # MAIN LOGIC # #-----------------------------------# print_header "$this_script_name" "$this_script_url" if ! format_output install_script "Installing script to /usr/local/bin"; then success=1 fi if ! format_output setup_alias "Setting up clp-update alias"; then success=1 fi if ! format_output install_ui_mods "Installing UI modifications"; then success=1 fi if ! format_output patch_timeout "Patching execution timeout"; then success=1 fi # Print final message final_message "$this_script_name" "$success" exit $success