#!/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