mirror of
https://github.com/RetroDECK/RetroDECK.git
synced 2025-02-16 19:35:39 +00:00
Merge pull request #824 from icenine451/cooker-0.8.2b-icenine451
Cooker 0.8.2b icenine451
This commit is contained in:
commit
654a0b6a47
|
@ -50,7 +50,7 @@ cat "$automation_task_list"
|
||||||
echo
|
echo
|
||||||
|
|
||||||
# Update all collected information
|
# Update all collected information
|
||||||
while IFS="^" read -r action placeholder url branch
|
while IFS="^" read -r action placeholder url branch || [[ -n "$action" ]];
|
||||||
do
|
do
|
||||||
if [[ ! $action == "#"* ]] && [[ ! -z "$action" ]]; then
|
if [[ ! $action == "#"* ]] && [[ ! -z "$action" ]]; then
|
||||||
case "$action" in
|
case "$action" in
|
||||||
|
|
|
@ -156,11 +156,13 @@ check_for_version_update() {
|
||||||
}
|
}
|
||||||
|
|
||||||
validate_input() {
|
validate_input() {
|
||||||
while IFS="^" read -r input action
|
while IFS="^" read -r input action || [[ -n "$input" ]];
|
||||||
do
|
do
|
||||||
if [[ "$input" == "$1" ]]; then
|
if [[ ! $input == "#"* ]] && [[ ! -z "$input" ]]; then
|
||||||
eval "$action"
|
if [[ "$input" == "$1" ]]; then
|
||||||
input_validated="true"
|
eval "$action"
|
||||||
|
input_validated="true"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
done < $input_validation
|
done < $input_validation
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,24 +10,26 @@ check_bios_files() {
|
||||||
fi
|
fi
|
||||||
touch "$godot_bios_files_checked"
|
touch "$godot_bios_files_checked"
|
||||||
|
|
||||||
while IFS="^" read -r bios_file bios_subdir bios_hash bios_system bios_desc
|
while IFS="^" read -r bios_file bios_subdir bios_hash bios_system bios_desc || [[ -n "$bios_file" ]];
|
||||||
do
|
do
|
||||||
bios_file_found="No"
|
if [[ ! $bios_file == "#"* ]] && [[ ! -z "$bios_file" ]]; then
|
||||||
bios_hash_matched="No"
|
bios_file_found="No"
|
||||||
if [[ -f "$bios_folder/$bios_subdir$bios_file" ]]; then
|
bios_hash_matched="No"
|
||||||
bios_file_found="Yes"
|
if [[ -f "$bios_folder/$bios_subdir$bios_file" ]]; then
|
||||||
if [[ $bios_hash == "Unknown" ]]; then
|
bios_file_found="Yes"
|
||||||
bios_hash_matched="Unknown"
|
if [[ $bios_hash == "Unknown" ]]; then
|
||||||
elif [[ $(md5sum "$bios_folder/$bios_subdir$bios_file" | awk '{ print $1 }') == "$bios_hash" ]]; then
|
bios_hash_matched="Unknown"
|
||||||
bios_hash_matched="Yes"
|
elif [[ $(md5sum "$bios_folder/$bios_subdir$bios_file" | awk '{ print $1 }') == "$bios_hash" ]]; then
|
||||||
|
bios_hash_matched="Yes"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [[ "$1" == "basic" ]]; then
|
||||||
|
bios_checked_list=("${bios_checked_list[@]}" "$bios_file" "$bios_system" "$bios_file_found" "$bios_hash_matched" "$bios_desc")
|
||||||
|
echo "$bios_file"^"$bios_system"^"$bios_file_found"^"$bios_hash_matched"^"$bios_desc" >> "$godot_bios_files_checked" # Godot data transfer temp file
|
||||||
|
else
|
||||||
|
bios_checked_list=("${bios_checked_list[@]}" "$bios_file" "$bios_system" "$bios_file_found" "$bios_hash_matched" "$bios_desc" "$bios_subdir" "$bios_hash")
|
||||||
|
echo "$bios_file"^"$bios_system"^"$bios_file_found"^"$bios_hash_matched"^"$bios_desc"^"$bios_subdir"^"$bios_hash" >> "$godot_bios_files_checked" # Godot data transfer temp file
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
if [[ "$1" == "basic" ]]; then
|
|
||||||
bios_checked_list=("${bios_checked_list[@]}" "$bios_file" "$bios_system" "$bios_file_found" "$bios_hash_matched" "$bios_desc")
|
|
||||||
echo "$bios_file"^"$bios_system"^"$bios_file_found"^"$bios_hash_matched"^"$bios_desc" >> "$godot_bios_files_checked" # Godot data transfer temp file
|
|
||||||
else
|
|
||||||
bios_checked_list=("${bios_checked_list[@]}" "$bios_file" "$bios_system" "$bios_file_found" "$bios_hash_matched" "$bios_desc" "$bios_subdir" "$bios_hash")
|
|
||||||
echo "$bios_file"^"$bios_system"^"$bios_file_found"^"$bios_hash_matched"^"$bios_desc"^"$bios_subdir"^"$bios_hash" >> "$godot_bios_files_checked" # Godot data transfer temp file
|
|
||||||
fi
|
fi
|
||||||
done < $bios_checklist
|
done < $bios_checklist
|
||||||
}
|
}
|
||||||
|
@ -44,7 +46,7 @@ find_empty_rom_folders() {
|
||||||
all_empty_folders=()
|
all_empty_folders=()
|
||||||
all_helper_files=()
|
all_helper_files=()
|
||||||
|
|
||||||
while IFS='^' read -r file dest
|
while IFS='^' read -r file dest || [[ -n "$file" ]];
|
||||||
do
|
do
|
||||||
if [[ ! "$file" == "#"* ]] && [[ ! -z "$file" ]]; then
|
if [[ ! "$file" == "#"* ]] && [[ ! -z "$file" ]]; then
|
||||||
all_helper_files=("${all_helper_files[@]}" "$file")
|
all_helper_files=("${all_helper_files[@]}" "$file")
|
||||||
|
|
|
@ -410,47 +410,44 @@ deploy_single_patch() {
|
||||||
|
|
||||||
cp -fv "$1" "$3" # Create a copy of the original file to be patched
|
cp -fv "$1" "$3" # Create a copy of the original file to be patched
|
||||||
|
|
||||||
while IFS="^" read -r action current_section setting_name setting_value system_name
|
while IFS="^" read -r action current_section setting_name setting_value system_name || [[ -n "$action" ]];
|
||||||
do
|
do
|
||||||
|
if [[ ! $action == "#"* ]] && [[ ! -z "$action" ]]; then
|
||||||
|
case $action in
|
||||||
|
|
||||||
case $action in
|
"disable_file" )
|
||||||
|
eval disable_file "$setting_name"
|
||||||
|
;;
|
||||||
|
|
||||||
"disable_file" )
|
"enable_file" )
|
||||||
eval disable_file "$setting_name"
|
eval enable_file "$setting_name"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"enable_file" )
|
"add_setting_line" )
|
||||||
eval enable_file "$setting_name"
|
add_setting_line "$3" "$setting_name" "$system_name" "$current_section"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"add_setting_line" )
|
"disable_setting" )
|
||||||
add_setting_line "$3" "$setting_name" "$system_name" "$current_section"
|
disable_setting "$3" "$setting_name" "$system_name" "$current_section"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"disable_setting" )
|
"enable_setting" )
|
||||||
disable_setting "$3" "$setting_name" "$system_name" "$current_section"
|
enable_setting "$3" "$setting_name" "$system_name" "$current_section"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"enable_setting" )
|
"change" )
|
||||||
enable_setting "$3" "$setting_name" "$system_name" "$current_section"
|
if [[ "$setting_value" = \$* ]]; then # If patch setting value is a reference to an internal variable name
|
||||||
;;
|
eval setting_value="$setting_value"
|
||||||
|
fi
|
||||||
|
set_setting_value "$3" "$setting_name" "$setting_value" "$system_name" "$current_section"
|
||||||
|
;;
|
||||||
|
|
||||||
"change" )
|
* )
|
||||||
if [[ "$setting_value" = \$* ]]; then # If patch setting value is a reference to an internal variable name
|
log e "Config line malformed: $action"
|
||||||
eval setting_value="$setting_value"
|
;;
|
||||||
fi
|
|
||||||
set_setting_value "$3" "$setting_name" "$setting_value" "$system_name" "$current_section"
|
|
||||||
;;
|
|
||||||
|
|
||||||
*"#"* )
|
esac
|
||||||
# Comment line in patch file
|
fi
|
||||||
;;
|
|
||||||
|
|
||||||
* )
|
|
||||||
echo "Config line malformed: $action"
|
|
||||||
;;
|
|
||||||
|
|
||||||
esac
|
|
||||||
done < "$2"
|
done < "$2"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -461,60 +458,58 @@ deploy_multi_patch() {
|
||||||
# Patch file format should be as follows, with optional entries in (). Optional settings can be left empty, but must still have ^ dividers:
|
# Patch file format should be as follows, with optional entries in (). Optional settings can be left empty, but must still have ^ dividers:
|
||||||
# $action^($current_section)^$setting_name^$setting_value^$system_name^($config file)
|
# $action^($current_section)^$setting_name^$setting_value^$system_name^($config file)
|
||||||
|
|
||||||
while IFS="^" read -r action current_section setting_name setting_value system_name config_file
|
while IFS="^" read -r action current_section setting_name setting_value system_name config_file || [[ -n "$action" ]];
|
||||||
do
|
do
|
||||||
case $action in
|
if [[ ! $action == "#"* ]] && [[ ! -z "$action" ]]; then
|
||||||
|
case $action in
|
||||||
|
|
||||||
"disable_file" )
|
"disable_file" )
|
||||||
if [[ "$config_file" = \$* ]]; then # If patch setting value is a reference to an internal variable name
|
if [[ "$config_file" = \$* ]]; then # If patch setting value is a reference to an internal variable name
|
||||||
eval config_file="$config_file"
|
eval config_file="$config_file"
|
||||||
fi
|
fi
|
||||||
disable_file "$config_file"
|
disable_file "$config_file"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"enable_file" )
|
"enable_file" )
|
||||||
if [[ "$config_file" = \$* ]]; then # If patch setting value is a reference to an internal variable name
|
if [[ "$config_file" = \$* ]]; then # If patch setting value is a reference to an internal variable name
|
||||||
eval config_file="$config_file"
|
eval config_file="$config_file"
|
||||||
fi
|
fi
|
||||||
enable_file "$config_file"
|
enable_file "$config_file"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"add_setting_line" )
|
"add_setting_line" )
|
||||||
if [[ "$config_file" = \$* ]]; then # If patch setting value is a reference to an internal variable name
|
if [[ "$config_file" = \$* ]]; then # If patch setting value is a reference to an internal variable name
|
||||||
eval config_file="$config_file"
|
eval config_file="$config_file"
|
||||||
fi
|
fi
|
||||||
add_setting_line "$config_file" "$setting_name" "$system_name" "$current_section"
|
add_setting_line "$config_file" "$setting_name" "$system_name" "$current_section"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"disable_setting" )
|
"disable_setting" )
|
||||||
if [[ "$config_file" = \$* ]]; then # If patch setting value is a reference to an internal variable name
|
if [[ "$config_file" = \$* ]]; then # If patch setting value is a reference to an internal variable name
|
||||||
eval config_file="$config_file"
|
eval config_file="$config_file"
|
||||||
fi
|
fi
|
||||||
disable_setting "$config_file" "$setting_name" "$system_name" "$current_section"
|
disable_setting "$config_file" "$setting_name" "$system_name" "$current_section"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"enable_setting" )
|
"enable_setting" )
|
||||||
if [[ "$config_file" = \$* ]]; then # If patch setting value is a reference to an internal variable name
|
if [[ "$config_file" = \$* ]]; then # If patch setting value is a reference to an internal variable name
|
||||||
eval config_file="$config_file"
|
eval config_file="$config_file"
|
||||||
fi
|
fi
|
||||||
enable_setting "$config_file" "$setting_name" "$system_name" "$current_section"
|
enable_setting "$config_file" "$setting_name" "$system_name" "$current_section"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"change" )
|
"change" )
|
||||||
if [[ "$setting_value" = \$* ]]; then # If patch setting value is a reference to an internal variable name
|
if [[ "$setting_value" = \$* ]]; then # If patch setting value is a reference to an internal variable name
|
||||||
eval setting_value="$setting_value"
|
eval setting_value="$setting_value"
|
||||||
fi
|
fi
|
||||||
set_setting_value "$config_file" "$setting_name" "$setting_value" "$system_name" "$current_section"
|
set_setting_value "$config_file" "$setting_name" "$setting_value" "$system_name" "$current_section"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
*"#"* )
|
* )
|
||||||
# Comment line in patch file
|
log e "Config line malformed: $action"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
* )
|
esac
|
||||||
echo "Config line malformed: $action"
|
fi
|
||||||
;;
|
|
||||||
|
|
||||||
esac
|
|
||||||
done < "$1"
|
done < "$1"
|
||||||
}
|
}
|
||||||
|
|
|
@ -149,7 +149,7 @@ multi_user_determine_current_user() {
|
||||||
|
|
||||||
multi_user_return_to_single_user() {
|
multi_user_return_to_single_user() {
|
||||||
single_user="$1"
|
single_user="$1"
|
||||||
echo "Returning to single-user mode for $single_user"
|
log i "Returning to single-user mode for $single_user"
|
||||||
unlink "$saves_folder"
|
unlink "$saves_folder"
|
||||||
unlink "$states_folder"
|
unlink "$states_folder"
|
||||||
unlink "$rd_conf"
|
unlink "$rd_conf"
|
||||||
|
@ -182,7 +182,7 @@ multi_user_return_to_single_user() {
|
||||||
|
|
||||||
multi_user_setup_new_user() {
|
multi_user_setup_new_user() {
|
||||||
# TODO: RPCS3 one-offs
|
# TODO: RPCS3 one-offs
|
||||||
echo "Setting up new user"
|
log i "Setting up new user"
|
||||||
unlink "$saves_folder"
|
unlink "$saves_folder"
|
||||||
unlink "$states_folder"
|
unlink "$states_folder"
|
||||||
dir_prep "$multi_user_data_folder/$SteamAppUser/saves" "$saves_folder"
|
dir_prep "$multi_user_data_folder/$SteamAppUser/saves" "$saves_folder"
|
||||||
|
@ -220,7 +220,7 @@ multi_user_setup_new_user() {
|
||||||
}
|
}
|
||||||
|
|
||||||
multi_user_link_current_user_files() {
|
multi_user_link_current_user_files() {
|
||||||
echo "Linking existing user"
|
log i "Linking existing user"
|
||||||
ln -sfT "$multi_user_data_folder/$SteamAppUser/saves" "$saves_folder"
|
ln -sfT "$multi_user_data_folder/$SteamAppUser/saves" "$saves_folder"
|
||||||
ln -sfT "$multi_user_data_folder/$SteamAppUser/states" "$states_folder"
|
ln -sfT "$multi_user_data_folder/$SteamAppUser/states" "$states_folder"
|
||||||
ln -sfT "$multi_user_data_folder/$SteamAppUser/config/retrodeck/retrodeck.cfg" "$rd_conf"
|
ln -sfT "$multi_user_data_folder/$SteamAppUser/config/retrodeck/retrodeck.cfg" "$rd_conf"
|
||||||
|
|
|
@ -361,9 +361,11 @@ done
|
||||||
finit_user_options_dialog() {
|
finit_user_options_dialog() {
|
||||||
finit_available_options=()
|
finit_available_options=()
|
||||||
|
|
||||||
while IFS="^" read -r enabled option_name option_desc option_tag
|
while IFS="^" read -r enabled option_name option_desc option_tag || [[ -n "$enabled" ]];
|
||||||
do
|
do
|
||||||
finit_available_options=("${finit_available_options[@]}" "$enabled" "$option_name" "$option_desc" "$option_tag")
|
if [[ ! $enabled == "#"* ]] && [[ ! -z "$enabled" ]]; then
|
||||||
|
finit_available_options=("${finit_available_options[@]}" "$enabled" "$option_name" "$option_desc" "$option_tag")
|
||||||
|
fi
|
||||||
done < $finit_options_list
|
done < $finit_options_list
|
||||||
|
|
||||||
|
|
||||||
|
@ -561,7 +563,7 @@ deploy_helper_files() {
|
||||||
# This script will distribute helper documentation files throughout the filesystem according to the $helper_files_list
|
# This script will distribute helper documentation files throughout the filesystem according to the $helper_files_list
|
||||||
# USAGE: deploy_helper_files
|
# USAGE: deploy_helper_files
|
||||||
|
|
||||||
while IFS='^' read -r file dest
|
while IFS='^' read -r file dest || [[ -n "$file" ]];
|
||||||
do
|
do
|
||||||
if [[ ! "$file" == "#"* ]] && [[ ! -z "$file" ]]; then
|
if [[ ! "$file" == "#"* ]] && [[ ! -z "$file" ]]; then
|
||||||
eval current_dest="$dest"
|
eval current_dest="$dest"
|
||||||
|
@ -579,13 +581,15 @@ easter_eggs() {
|
||||||
current_day=$(date +"%0m%0d") # Read the current date in a format that can be calculated in ranges
|
current_day=$(date +"%0m%0d") # Read the current date in a format that can be calculated in ranges
|
||||||
current_time=$(date +"%0H%0M") # Read the current time in a format that can be calculated in ranges
|
current_time=$(date +"%0H%0M") # Read the current time in a format that can be calculated in ranges
|
||||||
if [[ ! -z $(cat $easter_egg_checklist) ]]; then
|
if [[ ! -z $(cat $easter_egg_checklist) ]]; then
|
||||||
while IFS="^" read -r start_date end_date start_time end_time splash_file # Read Easter Egg checklist file and separate values
|
while IFS="^" read -r start_date end_date start_time end_time splash_file || [[ -n "$start_date" ]]; # Read Easter Egg checklist file and separate values
|
||||||
do
|
do
|
||||||
if [[ "$((10#$current_day))" -ge "$((10#$start_date))" && "$((10#$current_day))" -le "$((10#$end_date))" && "$((10#$current_time))" -ge "$((10#$start_time))" && "$((10#$current_time))" -le "$((10#$end_time))" ]]; then # If current line specified date/time matches current date/time, set $splash_file to be deployed
|
if [[ ! $start_date == "#"* ]] && [[ ! -z "$start_date" ]]; then
|
||||||
new_splash_file="$splashscreen_dir/$splash_file"
|
if [[ "$((10#$current_day))" -ge "$((10#$start_date))" && "$((10#$current_day))" -le "$((10#$end_date))" && "$((10#$current_time))" -ge "$((10#$start_time))" && "$((10#$current_time))" -le "$((10#$end_time))" ]]; then # If current line specified date/time matches current date/time, set $splash_file to be deployed
|
||||||
break
|
new_splash_file="$splashscreen_dir/$splash_file"
|
||||||
else # When there are no matches, the default splash screen is set to deploy
|
break
|
||||||
new_splash_file="$default_splash_file"
|
else # When there are no matches, the default splash screen is set to deploy
|
||||||
|
new_splash_file="$default_splash_file"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
done < $easter_egg_checklist
|
done < $easter_egg_checklist
|
||||||
else
|
else
|
||||||
|
|
|
@ -28,7 +28,7 @@ change_preset_dialog() {
|
||||||
--title "RetroDECK Configurator Utility - Presets Configuration" \
|
--title "RetroDECK Configurator Utility - Presets Configuration" \
|
||||||
--text="Setting up your presets, please wait..."
|
--text="Setting up your presets, please wait..."
|
||||||
else
|
else
|
||||||
echo "No choices made"
|
log i "No preset choices made"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -79,11 +79,14 @@ make_preset_changes() {
|
||||||
fi
|
fi
|
||||||
set_setting_value "$rd_conf" "$emulator" "true" "retrodeck" "$preset"
|
set_setting_value "$rd_conf" "$emulator" "true" "retrodeck" "$preset"
|
||||||
# Check for conflicting presets for this system
|
# Check for conflicting presets for this system
|
||||||
while IFS=: read -r preset_being_checked known_incompatible_preset; do
|
while IFS=: read -r preset_being_checked known_incompatible_preset || [[ -n "$preset_being_checked" ]];
|
||||||
if [[ "$preset" == "$preset_being_checked" ]]; then
|
do
|
||||||
if [[ $(get_setting_value "$rd_conf" "$emulator" "retrodeck" "$known_incompatible_preset") == "true" ]]; then
|
if [[ ! $preset_being_checked == "#"* ]] && [[ ! -z "$preset_being_checked" ]]; then
|
||||||
changed_presets=("${changed_presets[@]}" "$known_incompatible_preset")
|
if [[ "$preset" == "$preset_being_checked" ]]; then
|
||||||
set_setting_value "$rd_conf" "$emulator" "false" "retrodeck" "$known_incompatible_preset"
|
if [[ $(get_setting_value "$rd_conf" "$emulator" "retrodeck" "$known_incompatible_preset") == "true" ]]; then
|
||||||
|
changed_presets=("${changed_presets[@]}" "$known_incompatible_preset")
|
||||||
|
set_setting_value "$rd_conf" "$emulator" "false" "retrodeck" "$known_incompatible_preset"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
done < "$incompatible_presets_reference_list"
|
done < "$incompatible_presets_reference_list"
|
||||||
|
@ -116,81 +119,83 @@ build_preset_config() {
|
||||||
local read_system_name=$(get_setting_name "$system_line")
|
local read_system_name=$(get_setting_name "$system_line")
|
||||||
if [[ "$read_system_name" == "$system_being_changed" ]]; then
|
if [[ "$read_system_name" == "$system_being_changed" ]]; then
|
||||||
local read_system_enabled=$(get_setting_value "$rd_conf" "$read_system_name" "retrodeck" "$current_preset")
|
local read_system_enabled=$(get_setting_value "$rd_conf" "$read_system_name" "retrodeck" "$current_preset")
|
||||||
while IFS='^' read -r action read_preset read_setting_name new_setting_value section target_file defaults_file
|
while IFS='^' read -r action read_preset read_setting_name new_setting_value section target_file defaults_file || [[ -n "$action" ]];
|
||||||
do
|
do
|
||||||
case "$action" in
|
if [[ ! $action == "#"* ]] && [[ ! -z "$action" ]]; then
|
||||||
|
case "$action" in
|
||||||
|
|
||||||
"config_file_format" )
|
"config_file_format" )
|
||||||
if [[ "$read_preset" == "retroarch-all" ]]; then
|
if [[ "$read_preset" == "retroarch-all" ]]; then
|
||||||
local retroarch_all="true"
|
local retroarch_all="true"
|
||||||
local read_config_format="retroarch"
|
local read_config_format="retroarch"
|
||||||
else
|
else
|
||||||
local read_config_format="$read_preset"
|
local read_config_format="$read_preset"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"change" )
|
"change" )
|
||||||
if [[ "$read_preset" == "$current_preset" ]]; then
|
if [[ "$read_preset" == "$current_preset" ]]; then
|
||||||
if [[ "$target_file" = \$* ]]; then # Read current target file and resolve if it is a variable
|
if [[ "$target_file" = \$* ]]; then # Read current target file and resolve if it is a variable
|
||||||
eval target_file=$target_file
|
eval target_file=$target_file
|
||||||
fi
|
|
||||||
local read_target_file="$target_file"
|
|
||||||
if [[ "$defaults_file" = \$* ]]; then #Read current defaults file and resolve if it is a variable
|
|
||||||
eval defaults_file=$defaults_file
|
|
||||||
fi
|
|
||||||
local read_defaults_file="$defaults_file"
|
|
||||||
if [[ "$read_system_enabled" == "true" ]]; then
|
|
||||||
if [[ "$new_setting_value" = \$* ]]; then
|
|
||||||
eval new_setting_value=$new_setting_value
|
|
||||||
fi
|
fi
|
||||||
if [[ "$read_config_format" == "retroarch" && ! "$retroarch_all" == "true" ]]; then # If this is a RetroArch core, generate the override file
|
local read_target_file="$target_file"
|
||||||
if [[ ! -f "$read_target_file" ]]; then
|
if [[ "$defaults_file" = \$* ]]; then #Read current defaults file and resolve if it is a variable
|
||||||
create_dir "$(realpath "$(dirname "$read_target_file")")"
|
eval defaults_file=$defaults_file
|
||||||
echo "$read_setting_name = \""$new_setting_value"\"" > "$read_target_file"
|
fi
|
||||||
else
|
local read_defaults_file="$defaults_file"
|
||||||
if [[ -z $(grep -o -P "^$read_setting_name\b" "$read_target_file") ]]; then
|
if [[ "$read_system_enabled" == "true" ]]; then
|
||||||
add_setting "$read_target_file" "$read_setting_name" "$new_setting_value" "$read_config_format" "$section"
|
if [[ "$new_setting_value" = \$* ]]; then
|
||||||
|
eval new_setting_value=$new_setting_value
|
||||||
|
fi
|
||||||
|
if [[ "$read_config_format" == "retroarch" && ! "$retroarch_all" == "true" ]]; then # If this is a RetroArch core, generate the override file
|
||||||
|
if [[ ! -f "$read_target_file" ]]; then
|
||||||
|
create_dir "$(realpath "$(dirname "$read_target_file")")"
|
||||||
|
echo "$read_setting_name = \""$new_setting_value"\"" > "$read_target_file"
|
||||||
else
|
else
|
||||||
set_setting_value "$read_target_file" "$read_setting_name" "$new_setting_value" "$read_config_format" "$section"
|
if [[ -z $(grep -o -P "^$read_setting_name\b" "$read_target_file") ]]; then
|
||||||
fi
|
add_setting "$read_target_file" "$read_setting_name" "$new_setting_value" "$read_config_format" "$section"
|
||||||
|
else
|
||||||
|
set_setting_value "$read_target_file" "$read_setting_name" "$new_setting_value" "$read_config_format" "$section"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
set_setting_value "$read_target_file" "$read_setting_name" "$new_setting_value" "$read_config_format" "$section"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
set_setting_value "$read_target_file" "$read_setting_name" "$new_setting_value" "$read_config_format" "$section"
|
if [[ "$read_config_format" == "retroarch" && ! "$retroarch_all" == "true" ]]; then
|
||||||
fi
|
if [[ -f "$read_target_file" ]]; then
|
||||||
else
|
delete_setting "$read_target_file" "$read_setting_name" "$read_config_format" "$section"
|
||||||
if [[ "$read_config_format" == "retroarch" && ! "$retroarch_all" == "true" ]]; then
|
if [[ -z $(cat "$read_target_file") ]]; then # If the override file is empty
|
||||||
if [[ -f "$read_target_file" ]]; then
|
rm -f "$read_target_file"
|
||||||
delete_setting "$read_target_file" "$read_setting_name" "$read_config_format" "$section"
|
fi
|
||||||
if [[ -z $(cat "$read_target_file") ]]; then # If the override file is empty
|
if [[ -z $(ls -1 "$(dirname "$read_target_file")") ]]; then # If the override folder is empty
|
||||||
rm -f "$read_target_file"
|
rmdir "$(realpath "$(dirname "$read_target_file")")"
|
||||||
fi
|
fi
|
||||||
if [[ -z $(ls -1 "$(dirname "$read_target_file")") ]]; then # If the override folder is empty
|
|
||||||
rmdir "$(realpath "$(dirname "$read_target_file")")"
|
|
||||||
fi
|
fi
|
||||||
|
else
|
||||||
|
local default_setting_value=$(get_setting_value "$read_defaults_file" "$read_setting_name" "$read_config_format" "$section")
|
||||||
|
set_setting_value "$read_target_file" "$read_setting_name" "$default_setting_value" "$read_config_format" "$section"
|
||||||
fi
|
fi
|
||||||
else
|
|
||||||
local default_setting_value=$(get_setting_value "$read_defaults_file" "$read_setting_name" "$read_config_format" "$section")
|
|
||||||
set_setting_value "$read_target_file" "$read_setting_name" "$default_setting_value" "$read_config_format" "$section"
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
;;
|
||||||
;;
|
|
||||||
|
|
||||||
"enable" )
|
"enable" )
|
||||||
if [[ "$read_preset" == "$current_preset" ]]; then
|
if [[ "$read_preset" == "$current_preset" ]]; then
|
||||||
if [[ "$read_system_enabled" == "true" ]]; then
|
if [[ "$read_system_enabled" == "true" ]]; then
|
||||||
enable_file "$read_setting_name"
|
enable_file "$read_setting_name"
|
||||||
else
|
else
|
||||||
disable_file "$read_setting_name"
|
disable_file "$read_setting_name"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
;;
|
||||||
;;
|
|
||||||
|
|
||||||
* )
|
* )
|
||||||
echo "Other data: $action $read_preset $read_setting_name $new_setting_value $section" # DEBUG
|
log d "Other data: $action $read_preset $read_setting_name $new_setting_value $section" # DEBUG
|
||||||
;;
|
;;
|
||||||
|
|
||||||
esac
|
esac
|
||||||
|
fi
|
||||||
done < <(cat "$presets_dir/$read_system_name"_presets.cfg)
|
done < <(cat "$presets_dir/$read_system_name"_presets.cfg)
|
||||||
fi
|
fi
|
||||||
done < <(printf '%s\n' "$preset_section")
|
done < <(printf '%s\n' "$preset_section")
|
||||||
|
@ -202,7 +207,7 @@ build_retrodeck_current_presets() {
|
||||||
# This can also be used to build the "current" state post-update after adding new systems
|
# This can also be used to build the "current" state post-update after adding new systems
|
||||||
# USAGE: build_retrodeck_current_presets
|
# USAGE: build_retrodeck_current_presets
|
||||||
|
|
||||||
while IFS= read -r current_setting_line # Read the existing retrodeck.cfg
|
while IFS= read -r current_setting_line || [[ -n "$current_setting_line" ]]; # Read the existing retrodeck.cfg
|
||||||
do
|
do
|
||||||
if [[ (! -z "$current_setting_line") && (! "$current_setting_line" == "#"*) && (! "$current_setting_line" == "[]") ]]; then # If the line has a valid entry in it
|
if [[ (! -z "$current_setting_line") && (! "$current_setting_line" == "#"*) && (! "$current_setting_line" == "[]") ]]; then # If the line has a valid entry in it
|
||||||
if [[ ! -z $(grep -o -P "^\[.+?\]$" <<< "$current_setting_line") ]]; then # If the line is a section header
|
if [[ ! -z $(grep -o -P "^\[.+?\]$" <<< "$current_setting_line") ]]; then # If the line is a section header
|
||||||
|
|
Loading…
Reference in a new issue