1
0
Fork 0
mirror of https://github.com/aclist/dztui.git synced 2025-04-08 13:33:00 +02:00

Fix reserved chars in modlist

This commit is contained in:
aclist 2022-06-19 11:17:12 +09:00 committed by GitHub
parent 7989ab36f8
commit 5539dd4eec
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
set -eo pipefail set -eo pipefail
version=0.5.0 version=0.6.0
release_url="https://raw.githubusercontent.com/aclist/dztui/main/dztui.sh" release_url="https://raw.githubusercontent.com/aclist/dztui/main/dztui.sh"
aid=221100 aid=221100
game="dayz" game="dayz"
@ -30,6 +30,7 @@ staging_dir="/tmp"
declare -A deps declare -A deps
deps=([awk]="5.1.1" [curl]="7.80.0" [jq]="1.6" [column]="2.37.2" [tr]="9.0" [comm]="9.0") deps=([awk]="5.1.1" [curl]="7.80.0" [jq]="1.6" [column]="2.37.2" [tr]="9.0" [comm]="9.0")
max_range=$(awk -F, '{print NF}' <<< $whitelist) max_range=$(awk -F, '{print NF}' <<< $whitelist)
[[ $debug -eq 0 ]] && mode=Normal || mode=Debug
err(){ err(){
printf "[ERROR] %s\n" "$1" printf "[ERROR] %s\n" "$1"
@ -111,7 +112,7 @@ parse_json(){
done done
} }
encode(){ encode(){
echo "$1" | awk '{printf("%c",$1)}' | base64 | sed 's/\//_/g; s/=//g' echo "$1" | awk '{printf("%c",$1)}' | base64 | sed 's/\//_/g; s/=//g; s/+/]/g'
} }
symlinks(){ symlinks(){
for d in "$workshop_dir"/*; do for d in "$workshop_dir"/*; do
@ -203,8 +204,10 @@ move_files(){
rm -r "$staging_dir"/steamapps rm -r "$staging_dir"/steamapps
} }
auto_mod_download(){ auto_mod_download(){
sudo chown -R $USER:$gid "$staging_dir"/steamapps if [[ -d "$staging_dir/steamapps" ]]; then
rm -r "$staging_dir"/steamapps sudo chown -R $USER:$gid "$staging_dir"/steamapps
rm -r "$staging_dir"/steamapps
fi
until [[ -z $(diff) ]]; do until [[ -z $(diff) ]]; do
printf "[INFO] Downloading missing mods\n" printf "[INFO] Downloading missing mods\n"
sudo -iu steam bash -c "$steamcmd_path +force_install_dir $staging_dir +login $steam_username $(steamcmd_modlist) +quit" $steamcmd_user sudo -iu steam bash -c "$steamcmd_path +force_install_dir $staging_dir +login $steam_username $(steamcmd_modlist) +quit" $steamcmd_user
@ -326,22 +329,26 @@ query_api(){
response=$(curl -s "$api" -H "Authorization: Bearer "$key"" -G -d "sort=-players" \ response=$(curl -s "$api" -H "Authorization: Bearer "$key"" -G -d "sort=-players" \
-d "filter[game]=$game" -d "filter[ids][whitelist]=$whitelist") -d "filter[game]=$game" -d "filter[ids][whitelist]=$whitelist")
if [[ "$(jq -r 'keys[]' <<< $response)" == "errors" ]]; then if [[ "$(jq -r 'keys[]' <<< $response)" == "errors" ]]; then
printf "\n"
printf "[ERROR] %s: check API key\n" "$(jq -r '.errors[] .status' <<< $response)" printf "[ERROR] %s: check API key\n" "$(jq -r '.errors[] .status' <<< $response)"
tput cnorm
return 1 return 1
elif elif
[[ -z "$(jq -r '.data[]' <<< $response)" ]]; then [[ -z "$(jq -r '.data[]' <<< $response)" ]]; then
printf "[ERROR] Check server ID\n" printf "[ERROR] Check server ID\n"
tput cnorm
return 1 return 1
fi fi
} }
init_table(){ init_table(){
tput civis tput civis
printf "[INFO] Polling servers. Please wait.\r" printf "[INFO] Polling servers. Please wait.\n"
query_api query_api
readarray -t tabled <<< $(parse_json <<< $response) readarray -t tabled <<< $(parse_json <<< $response)
tput cnorm tput cnorm
tput cuu1 tput cuu1
tput el tput el
printf "\n"
table | columnize table | columnize
} }
get_sorted_id(){ get_sorted_id(){
@ -356,7 +363,6 @@ menu(){
printf "\n" printf "\n"
} }
exit_msg(){ exit_msg(){
printf "DZTUI $version\n"
exit exit
} }
forced_exit(){ forced_exit(){
@ -369,6 +375,7 @@ main(){
init_table init_table
while true; do while true; do
menu menu
printf "[DZTUI $version/$mode]\n"
read -p "Selection: " sel read -p "Selection: " sel
if [[ $sel =~ ^[0-9]+$ ]]; then if [[ $sel =~ ^[0-9]+$ ]]; then
if [[ $sel -gt $max_range ]]; then if [[ $sel -gt $max_range ]]; then