2024-05-30 14:54:29 +00:00
#!/bin/bash
2024-05-30 21:12:54 +00:00
find_empty_rom_folders( ) {
# This function will build an array of all the system subfolders in $roms_folder which are either empty or contain only systeminfo.txt for easy removal
if [ [ -f " $godot_empty_roms_folders " ] ] ; then
rm -f " $godot_empty_roms_folders " # Godot data transfer temp files
fi
touch " $godot_empty_roms_folders "
empty_rom_folders_list = ( )
all_empty_folders = ( )
2024-06-21 14:30:30 +00:00
2024-08-15 14:42:40 +00:00
# Extract helper file names using jq and populate the all_helper_files array
all_helper_files = ( $( jq -r '.helper_files | to_entries | .[] | .value.filename' " $features " ) )
2024-05-30 21:12:54 +00:00
for system in $( find " $roms_folder " -mindepth 1 -maxdepth 1 -type d -printf '%f\n' )
do
local dir = " $roms_folder / $system "
local files = $( ls -A1 " $dir " )
local count = $( ls -A " $dir " | wc -l)
if [ [ $count -eq 0 ] ] ; then
# Directory is empty
empty_rom_folders_list = ( " ${ empty_rom_folders_list [@] } " "false" " $( realpath $dir ) " )
all_empty_folders = ( " ${ all_empty_folders [@] } " " $( realpath $dir ) " )
echo " $( realpath $dir ) " >> " $godot_empty_roms_folders " # Godot data transfer temp file
elif [ [ $count -eq 1 ] ] && [ [ " $( basename " ${ files [0] } " ) " = = "systeminfo.txt" ] ] ; then
# Directory contains only systeminfo.txt
empty_rom_folders_list = ( " ${ empty_rom_folders_list [@] } " "false" " $( realpath $dir ) " )
all_empty_folders = ( " ${ all_empty_folders [@] } " " $( realpath $dir ) " )
echo " $( realpath $dir ) " >> " $godot_empty_roms_folders " # Godot data transfer temp file
2024-06-21 14:30:30 +00:00
elif [ [ $count -eq 2 ] ] && [ [ " $files " = ~ "systeminfo.txt" ] ] ; then
2024-08-15 14:42:40 +00:00
contains_helper_file = "false"
for helper_file in " ${ all_helper_files [@] } " # Compare helper file list to dir file list
2024-06-21 14:30:30 +00:00
do
if [ [ " $files " = ~ " $helper_file " ] ] ; then
contains_helper_file = "true" # Helper file was found
break
fi
done
if [ [ " $contains_helper_file " = = "true" ] ] ; then
# Directory contains only systeminfo.txt and a helper file
empty_rom_folders_list = ( " ${ empty_rom_folders_list [@] } " "false" " $( realpath $dir ) " )
all_empty_folders = ( " ${ all_empty_folders [@] } " " $( realpath $dir ) " )
echo " $( realpath $dir ) " >> " $godot_empty_roms_folders " # Godot data transfer temp file
fi
2024-05-30 21:12:54 +00:00
fi
done
}
2024-08-15 14:42:40 +00:00