forked from buttstuf/soapdish
98 lines
2.7 KiB
Bash
Executable File
98 lines
2.7 KiB
Bash
Executable File
#!/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
|