#!/bin/bash # SYSTEM: CONFIG Delete # If profiles exist if (( ${#CONFIG_PROFILES_ARRAY[@]} )); then # Read input read -p "Name of profile to Delete? (spaces allowable): " CONFIG_PROFILE_TO_DELETE # Input validate (check if empty) if [[ -z "$CONFIG_PROFILE_TO_DELETE" ]] then error_message "[d] Config (delete): Input blank. No file identied for deletion deleted." echo -e "" # Input validate (check for alphanum & "-_ ") elif [[ "$CONFIG_PROFILE_TO_DELETE" =~ [^a-zA-Z0-9_-] ]] then error_message "[n] Config (delete): Filenames are alphanum only (spaces OK). Try again." echo -e "" # Proceed with profile deletion else # Check if name exists, and if so mark flag PROFILE_EXISTS_FLAG="false" for FILE_TO_DELETE_NAME in "${CONFIG_PROFILES_ARRAY[@]}" do if [[ "${FILE_TO_DELETE_NAME}" == ${CONFIG_PROFILE_TO_DELETE} ]] then PROFILE_EXISTS_FLAG="true" fi done # Perform final action based on flag if [[ $PROFILE_EXISTS_FLAG == "true" ]] then # Reference $CURRENTLY_ACTIVE_CONFIG_FILE to see if deleting is current in use CURRENTLY_ACTIVE_CONFIG_FILE=$(<"$CONFIG_FILE_IDENTIFIER_PATH") if [[ ${CONFIG_PROFILE_TO_DELETE} == "$CURRENTLY_ACTIVE_CONFIG_FILE" ]] # If to delete is in use then # Delete file (move to trash) TIMESTAMP=$(date +%Y-%m-%d--%H-%M-%S) mv "$CONFIG_DIRECTORY/config-$CONFIG_PROFILE_TO_DELETE.json" "$CONFIG_DIRECTORY/trash/config-$CONFIG_PROFILE_TO_DELETE.json_(DELETED_${TIMESTAMP})" # Delete config file identifier truncate -s 0 "$CONFIG_FILE_IDENTIFIER_PATH" # Confirmation / Alert warning_message "[WARNING]: Config file no longer specified. Please specify one to stream." confirmation_message "[d] Config (delete): Deletion of \"$CONFIG_PROFILE_TO_DELETE\" completed (file moved to trash)." echo -e "" # If to delete is not in use else TIMESTAMP=$(date +%Y-%m-%d--%H-%M-%S) mv "$CONFIG_DIRECTORY/config-$CONFIG_PROFILE_TO_DELETE.json" "$CONFIG_DIRECTORY/trash/config-$CONFIG_PROFILE_TO_DELETE.json_(DELETED_${TIMESTAMP})" confirmation_message "[d] Config (delete): Deletion of \"$CONFIG_PROFILE_TO_DELETE\" completed (file moved to trash)." echo -e "" fi # Unset currently actie config file variable unset CURRENTLY_ACTIVE_CONFIG_FILE # If profile doesn't exist else error_message "[d] Config (delete): No Config named \"$CONFIG_PROFILE_TO_DELETE\" to delete." echo -e "" fi # Unset Flag unset PROFILE_EXISTS_FLAG fi # If no profiles exist else error_message "[d] Config (delete): No config profiles to delete. Create with \"new\"." echo -e "" fi