diff --git a/scripts/shell/images-indexer.sh b/scripts/shell/images-indexer.sh index bb7c9a9..22b3926 100755 --- a/scripts/shell/images-indexer.sh +++ b/scripts/shell/images-indexer.sh @@ -143,22 +143,68 @@ input_select_folder() { echo "$selected_folder" } -if [ -z "$selected_folder" ]; then - printf "\n" - echo "[INFO] Folders:" - for ((i = 0; i < ${#existing_folders[@]}; i++)); do - foldername=${existing_folders[$i]} - echo " $i) $foldername" - done +should_colored_output=true - echo " n) (create a new folder)" +if $should_colored_output; then + # Define color codes for up to 6 levels + color_reset="\033[0m" + color_level_1="\033[1;34m" # Blue for the first level + color_level_2="\033[1;32m" # Green for the second level + color_level_3="\033[1;36m" # Cyan for the third level + color_level_4="\033[1;33m" # Yellow for the fourth level + color_level_5="\033[1;35m" # Magenta for the fifth level + color_level_6="\033[1;31m" # Red for the sixth level - printf "\n" + # Array of colors to apply to subfolder levels + colors=("$color_level_1" "$color_level_2" "$color_level_3" "$color_level_4" "$color_level_5" "$color_level_6") + + if [ -z "$selected_folder" ]; then + printf "\n" + echo "[INFO] Folders:" + for ((i = 0; i < ${#existing_folders[@]}; i++)); do + foldername=${existing_folders[$i]} + + # Split the foldername by slashes and color each part + IFS='/' read -ra parts <<<"$foldername" + colored_foldername="${colors[0]}${parts[0]}${color_reset}" + for j in "${!parts[@]}"; do + if [ $j -gt 0 ]; then + # Apply colors cyclically based on the depth level + color_index=$((j % ${#colors[@]})) + colored_foldername+="/${colors[$color_index]}${parts[$j]}${color_reset}" + fi + done + + echo -e " $i) $colored_foldername" # Use -e flag for echo + done + + echo " n) (create a new folder)" + + printf "\n" - selected_folder=$(input_select_folder) - while [ -z "$selected_folder" ]; do selected_folder=$(input_select_folder) - done + while [ -z "$selected_folder" ]; do + selected_folder=$(input_select_folder) + done + fi +else + if [ -z "$selected_folder" ]; then + printf "\n" + echo "[INFO] Folders:" + for ((i = 0; i < ${#existing_folders[@]}; i++)); do + foldername=${existing_folders[$i]} + echo " $i) $foldername" + done + + echo " n) (create a new folder)" + + printf "\n" + + selected_folder=$(input_select_folder) + while [ -z "$selected_folder" ]; do + selected_folder=$(input_select_folder) + done + fi fi cd $selected_folder