Adds colored output for images-indexer.sh

This commit is contained in:
Matheus Albino
2024-08-12 12:26:17 -03:00
parent d33c396627
commit de0c2e6b57

View File

@@ -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