diff --git a/engine/templates/linux/postrm b/engine/templates/linux/postrm index e0970b352..4c99fe2d6 100644 --- a/engine/templates/linux/postrm +++ b/engine/templates/linux/postrm @@ -3,28 +3,40 @@ set +e DATA_FOLDER_NAME=.cortex CONFIGURATION_FILE_NAME=.cortexrc -echo "Do you want to delete the ~/$DATA_FOLDER_NAME data folder and file ~/$CONFIGURATION_FILE_NAME? (yes/no)" +echo "Do you want to delete the ~/$DATA_FOLDER_NAME data folder and file ~/$CONFIGURATION_FILE_NAME? (yes/no) [default: no]" read -r answer +# Determine the home directory based on the user USER_TO_RUN_AS=${SUDO_USER:-$(whoami)} +if [ "$USER_TO_RUN_AS" = "root" ]; then + USER_HOME="/root" +else + USER_HOME="/home/$USER_TO_RUN_AS" +fi + +while true; do + case "$answer" in + [yY][eE][sS]|[yY]) + echo "Deleting cortex data folders..." + if [ -d "$USER_HOME/$DATA_FOLDER_NAME" ]; then + echo "Removing $USER_HOME/$DATA_FOLDER_NAME" + rm -rf "$USER_HOME/$DATA_FOLDER_NAME" > /dev/null 2>&1 + fi + if [ -f "$USER_HOME/$CONFIGURATION_FILE_NAME" ]; then + echo "Removing $USER_HOME/$CONFIGURATION_FILE_NAME" + rm -f "$USER_HOME/$CONFIGURATION_FILE_NAME" > /dev/null 2>&1 + fi + break + ;; + [nN][oO]|[nN]|"") + echo "Keeping the 'cortex' data folders." + break + ;; + *) + echo "Invalid response. Please type 'yes', 'no', 'y', or 'n' (case-insensitive)." + read -r answer + ;; + esac +done -case "$answer" in - [yY][eE][sS]|[yY]) - echo "Deleting cortex data folders..." - if [ -d "/home/$USER_TO_RUN_AS/$DATA_FOLDER_NAME" ]; then - echo "Removing /home/$USER_TO_RUN_AS/$DATA_FOLDER_NAME" - rm -rf "/home/$USER_TO_RUN_AS/$DATA_FOLDER_NAME" > /dev/null 2>&1 - fi - if [ -f "/home/$USER_TO_RUN_AS/$CONFIGURATION_FILE_NAME" ]; then - echo "Removing /home/$USER_TO_RUN_AS/$CONFIGURATION_FILE_NAME" - rm -f "/home/$USER_TO_RUN_AS/$CONFIGURATION_FILE_NAME" > /dev/null 2>&1 - fi - ;; - [nN][oO]|[nN]) - echo "Keeping the 'cortex' data folders." - ;; - *) - echo "Invalid response. Please type 'yes' or 'no'." - ;; -esac exit 0 diff --git a/engine/templates/macos/cortex-uninstall.sh b/engine/templates/macos/cortex-uninstall.sh index 58cdb5e31..b75167f0e 100644 --- a/engine/templates/macos/cortex-uninstall.sh +++ b/engine/templates/macos/cortex-uninstall.sh @@ -12,30 +12,43 @@ fi USER_TO_RUN_AS=${SUDO_USER:-$(whoami)} -sudo -u $USER_TO_RUN_AS /usr/local/bin/$DESTINATION_BINARY_NAME stop > /dev/null 2>&1 +# Use /root if user is root, otherwise /Users/ +if [ "$USER_TO_RUN_AS" = "root" ]; then + USER_HOME="/root" +else + USER_HOME="/Users/$USER_TO_RUN_AS" +fi + +sudo -u "$USER_TO_RUN_AS" /usr/local/bin/$DESTINATION_BINARY_NAME stop > /dev/null 2>&1 rm /usr/local/bin/$DESTINATION_BINARY_NAME -echo "Do you want to delete the '~/$DATA_FOLDER_NAME' data folder and file '~/$CONFIGURATION_FILE_NAME'? (yes/no)" +echo "Do you want to delete the '$USER_HOME/$DATA_FOLDER_NAME' data folder and file '$USER_HOME/$CONFIGURATION_FILE_NAME'? (y/n) [default: n]" read -r answer -case "$answer" in - [yY][eE][sS]|[yY]) - echo "Deleting cortex data folders..." - if [ -d "/Users/$USER_TO_RUN_AS/$DATA_FOLDER_NAME" ]; then - echo "Removing /Users/$USER_TO_RUN_AS/$DATA_FOLDER_NAME" - rm -rf "/Users/$USER_TO_RUN_AS/$DATA_FOLDER_NAME" > /dev/null 2>&1 - fi - if [ -f "/Users/$USER_TO_RUN_AS/$CONFIGURATION_FILE_NAME" ]; then - echo "Removing /Users/$USER_TO_RUN_AS/$CONFIGURATION_FILE_NAME" - rm -f "/Users/$USER_TO_RUN_AS/$CONFIGURATION_FILE_NAME" > /dev/null 2>&1 - fi - ;; - [nN][oO]|[nN]) - echo "Keeping the 'cortex' data folders." - ;; - *) - echo "Invalid response. Please type 'yes' or 'no'." - ;; -esac +# Default to 'no' if no input is provided +while true; do + case "$answer" in + [yY][eE][sS]|[yY]) + echo "Deleting cortex data folders..." + if [ -d "$USER_HOME/$DATA_FOLDER_NAME" ]; then + echo "Removing $USER_HOME/$DATA_FOLDER_NAME" + rm -rf "$USER_HOME/$DATA_FOLDER_NAME" > /dev/null 2>&1 + fi + if [ -f "$USER_HOME/$CONFIGURATION_FILE_NAME" ]; then + echo "Removing $USER_HOME/$CONFIGURATION_FILE_NAME" + rm -f "$USER_HOME/$CONFIGURATION_FILE_NAME" > /dev/null 2>&1 + fi + break + ;; + [nN][oO]|[nN]|"") + echo "Keeping the 'cortex' data folders." + break + ;; + *) + echo "Invalid response. Please type 'yes', 'no', 'y', or 'n' (case-insensitive)." + read -r answer + ;; + esac +done -rm /usr/local/bin/$UNINSTALLER_FILE_NAME \ No newline at end of file +rm /usr/local/bin/$UNINSTALLER_FILE_NAME