109 lines
3.1 KiB
Bash
Executable File
109 lines
3.1 KiB
Bash
Executable File
#!/bin/bash
|
|
# SYSTEM: CONFIG Rename
|
|
|
|
|
|
# If profiles exist
|
|
if (( ${#CONFIG_PROFILES_ARRAY[@]} ));
|
|
|
|
# Main Rename Routine
|
|
then
|
|
|
|
# Read input
|
|
read -p "Profile to Rename?: " PROFILE_TO_RENAME
|
|
|
|
# Input validate (check if empty)
|
|
if [[ -z "$PROFILE_TO_RENAME" ]]; then
|
|
error_message "[r] Config (rename): Input blank. No file identied for renaming."
|
|
echo -e ""
|
|
|
|
# Input validate (check for alphanum & "-_")
|
|
elif [[ "$PROFILE_TO_RENAME" =~ [^a-zA-Z0-9_-] ]]; then
|
|
error_message "[r] Config (rename): Filenames are alphanum only (no spaces). Try again."
|
|
echo -e ""
|
|
|
|
else
|
|
|
|
# Check if file exists
|
|
if [[ "${CONFIG_PROFILES_ARRAY[*]}" =~ ${PROFILE_TO_RENAME} ]]; then
|
|
|
|
# Read input
|
|
read -p "New name for file?: " PROFILE_NEW_NAME
|
|
|
|
# Input Validate (check if empty)
|
|
if [[ -z "$PROFILE_NEW_NAME" ]]; then
|
|
error_message "[r] Config (rename): New file name is blank."
|
|
echo -e ""
|
|
|
|
# Input validate (check for alphanum & "-_")
|
|
elif [[ "$PROFILE_NEW_NAME" =~ [^a-zA-Z0-9_-] ]]; then
|
|
|
|
error_message "[r] Config (rename): Filenames are alphanum only (no spaces). Try again."
|
|
echo -e ""
|
|
|
|
else
|
|
|
|
# Input validate (check for alphanum & "-_")
|
|
if [[ "${CONFIG_PROFILES_ARRAY[*]}" =~ ${PROFILE_NEW_NAME} ]]; then
|
|
error_message "[r] Config (rename): New name for file already exists."
|
|
echo -e ""
|
|
|
|
# Renaming routine
|
|
else
|
|
|
|
# Get name of current config
|
|
CURRENTLY_ACTIVE_CONFIG_FILE=$(<"$CONFIG_FILE_IDENTIFIER_PATH")
|
|
|
|
if [[ "$CURRENTLY_ACTIVE_CONFIG_FILE" == "$PROFILE_TO_RENAME" ]];
|
|
|
|
# If profile being renamed is the currently used profile
|
|
then
|
|
|
|
# Rename/mv file and change internal name
|
|
sudo mv "$CONFIG_DIRECTORY/config-$PROFILE_TO_RENAME.json" "$CONFIG_DIRECTORY/config-$PROFILE_NEW_NAME.json"
|
|
sed -i "s/\/\/ Config name.*/\/\/ Config name: $PROFILE_NEW_NAME/" "$CONFIG_DIRECTORY/config-$PROFILE_NEW_NAME.json"
|
|
|
|
# Delete config file identifier contents and push new name
|
|
truncate -s 0 "$CONFIG_FILE_IDENTIFIER_PATH"
|
|
echo "$PROFILE_NEW_NAME" >> $CONFIG_FILE_IDENTIFIER_PATH
|
|
|
|
# Confirm
|
|
confirmation_message "[r] Config (rename): Config file \"$PROFILE_TO_RENAME\" renamed to \"$PROFILE_NEW_NAME\"."
|
|
echo -e ""
|
|
|
|
|
|
# If profile being renamed is NOT the currently used profile
|
|
else
|
|
|
|
# Rename/mv file and change internal name
|
|
sudo mv "$CONFIG_DIRECTORY/config-$PROFILE_TO_RENAME.json" "$CONFIG_DIRECTORY/config-$PROFILE_NEW_NAME.json"
|
|
sed -i "s/\/\/ Config name.*/\/\/ Config name: $PROFILE_NEW_NAME/" "$CONFIG_DIRECTORY/config-$PROFILE_NEW_NAME.json"
|
|
|
|
# Confirm
|
|
confirmation_message "[r] Config (rename): Config file \"$PROFILE_TO_RENAME\" renamed to \"$PROFILE_NEW_NAME\"."
|
|
echo -e ""
|
|
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
else
|
|
|
|
error_message "[r] Config (Rename): No file named \"$PROFILE_TO_RENAME\" to rename."
|
|
echo -e ""
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
# No profiles exist
|
|
else
|
|
error_message "[r] Config (rename): No config profiles to rename. Create with \"new\"."
|
|
echo -e ""
|
|
|
|
fi
|