|
|
|
@ -1,11 +1,10 @@
|
|
|
|
#!/bin/bash
|
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
|
|
|
|
### Manage Stardew Valley mods
|
|
|
|
# sdv-mods
|
|
|
|
|
|
|
|
### Manage Stardew Valley mods with nginx-style x-available and x-enabled folders.
|
|
|
|
|
|
|
|
|
|
|
|
# Use nginx-style mods-available and mods-enabled folders.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# game_dir="${HOME}/.local/share/Steam/steamapps/common/Stardew Valley"
|
|
|
|
|
|
|
|
game_dir="${HOME}/sdv-manager-test"
|
|
|
|
game_dir="${HOME}/sdv-manager-test"
|
|
|
|
|
|
|
|
game_dir="${HOME}/.local/share/Steam/steamapps/common/Stardew Valley"
|
|
|
|
mods_available_dir="${game_dir}/mods-available"
|
|
|
|
mods_available_dir="${game_dir}/mods-available"
|
|
|
|
mods_enabled_dir="${game_dir}/mods-enabled"
|
|
|
|
mods_enabled_dir="${game_dir}/mods-enabled"
|
|
|
|
declare -A mod_state
|
|
|
|
declare -A mod_state
|
|
|
|
@ -19,8 +18,7 @@ function get_mod_state {
|
|
|
|
# TODO: Probably remove broken links and untracked files.
|
|
|
|
# TODO: Probably remove broken links and untracked files.
|
|
|
|
for enabled_mod_dir in "$mods_enabled_dir"/*; do
|
|
|
|
for enabled_mod_dir in "$mods_enabled_dir"/*; do
|
|
|
|
enabled_mod_name="$(basename "$enabled_mod_dir")"
|
|
|
|
enabled_mod_name="$(basename "$enabled_mod_dir")"
|
|
|
|
# xargs sometimes gets a broken pipe signal here. It's harmless but annoying.
|
|
|
|
if printf '%s\n' "${!mod_state[@]}" | grep -qx "${enabled_mod_name}"; then
|
|
|
|
if echo "${!mod_state[@]}" | xargs -n1 2>/dev/null | grep -q "$enabled_mod_name"; then
|
|
|
|
|
|
|
|
mod_state[$enabled_mod_name]='enabled'
|
|
|
|
mod_state[$enabled_mod_name]='enabled'
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
done
|
|
|
|
@ -31,7 +29,8 @@ function mod_is_available {
|
|
|
|
get_mod_state
|
|
|
|
get_mod_state
|
|
|
|
if [[ $mod_name == '' ]]; then
|
|
|
|
if [[ $mod_name == '' ]]; then
|
|
|
|
echo "Mod name not given."
|
|
|
|
echo "Mod name not given."
|
|
|
|
elif echo "${!mod_state[@]}" | xargs -n1 2>/dev/null | grep -q "$mod_name"; then
|
|
|
|
return 1
|
|
|
|
|
|
|
|
elif printf '%s\n' "${!mod_state[@]}" | grep -qx "$mod_name"; then
|
|
|
|
return 0
|
|
|
|
return 0
|
|
|
|
else
|
|
|
|
else
|
|
|
|
return 1
|
|
|
|
return 1
|