Update Launch

This commit is contained in:
Nicole George 2020-04-28 18:23:34 -05:00 committed by GitHub
parent 87da64f126
commit 293b06cb57
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

345
launch.sh
View File

@ -3,64 +3,59 @@ export TITLE="Worlds Linux"
export WORLDSDIR="$(dirname "$(readlink -f "$0")")" export WORLDSDIR="$(dirname "$(readlink -f "$0")")"
export WINEPREFIX=$WORLDSDIR/prefix export WINEPREFIX=$WORLDSDIR/prefix
export WORLDSINSTALL="$WINEPREFIX/drive_c/Program Files/Worlds/WorldsPlayer by Worlds.com" export WORLDSINSTALL="$WINEPREFIX/drive_c/Program Files/Worlds/WorldsPlayer by Worlds.com"
export SETTHEME="DEFAULT"
mkdir -p $WORLDSDIR/backups $WORLDSDIR/themes mkdir -p $WORLDSDIR/backups $WORLDSDIR/themes
if [ -f "$WORLDSDIR/wine.worldslinux" ]; then if [ -f "$WORLDSDIR/wrldslinux" ]; then
export WINE=$(cat "$WORLDSDIR/wine.worldslinux") source "$WORLDSDIR/wrldslinux"
fi
if [ -f "$WORLDSDIR/wineprefix.worldslinux" ]; then
export WINEPREFIX=$(cat "$WORLDSDIR/wineprefix.worldslinux")
fi
if [ -f "$WORLDSDIR/worlds.worldslinux" ]; then
export WORLDSINSTALL=$(cat "$WORLDSDIR/worlds.worldslinux")
fi fi
cd "$WORLDSINSTALL" cd "$WORLDSINSTALL"
main() { main() {
sel=$(zenity \ sel=$(zenity \
--list \ --list \
--title="$TITLE" \ --title="$TITLE" \
--window-icon="$WORLDSDIR/icon.png" \ --window-icon="$WORLDSDIR/icon.png" \
--width=300 \ --width=320 \
--height=340 \ --height=280 \
--cancel-label='Quit' \ --cancel-label='Quit' \
--list \ --radiolist \
--text 'WorldsPlayer Linux' \ --text 'WorldsPlayer Linux' \
--column 'Options' \ --column '' \
--hide-header \ --column 'Options' \
'Launch Worlds' \ --hide-header \
'Open Logger' \ TRUE 'Launch Worlds' \
'Open Worlds folder' \ FALSE 'Launch Worlds with Logger' \
'Edit worlds.ini' \ FALSE 'Open Worlds folder' \
'Backup Worlds files' \ FALSE 'Settings' \
'Restore from backup' \ FALSE 'Clear Cache' \
'Set theme' \ FALSE 'Force Kill' \
'Settings' \ FALSE 'Open Github page' 2>/dev/null)
'Clear Cache' \
'FORCE KILL' 2>/dev/null)
case $sel in case $sel in
'Launch Worlds') 'Launch Worlds')
launch ;; launch ;;
'Open Logger') 'Launch Worlds with Logger')
logger ;; launch && tail -F "$WORLDSINSTALL/Gamma.Log.open" | zenity --text-info --auto-scroll --height=480 --width=768 --title="$TITLE - Log" --window-icon="$WORLDSDIR/icon.png" --text="Gamma.Log.open" ;;
'Open Worlds folder') 'Open Worlds folder')
folder ;; gio open "$WORLDSINSTALL" ;;
'Edit worlds.ini') 'Settings' )
ini ;; settings
'Backup Worlds files') main ;;
backup ;; 'Clear Cache')
'Restore from backup') cache
restore ;; main ;;
'Set theme' ) 'Force Kill' )
theme ;; killw
'Settings' ) main ;;
settings ;; 'Open Github page' )
'Clear Cache') xdg-open "https://github.com/Vencorr/Worlds-LinuxScript"
cache ;; main ;;
'FORCE KILL' )
kill ;;
esac esac
if [ "$?" != 0 ]
then
exit
fi
} }
launch () { launch () {
@ -72,122 +67,160 @@ launch () {
elif [ -f "$WORLDSINSTALL/$WORLDSOLD" ]; then elif [ -f "$WORLDSINSTALL/$WORLDSOLD" ]; then
$WINE "$WORLDSINSTALL/$WORLDSOLD" $WINE "$WORLDSINSTALL/$WORLDSOLD"
else else
$WINE "$WORLDSINSTALL/$WORLDSLEGACY" $WINE cmd /c "$WORLDSINSTALL/$WORLDSLEGACY"
fi fi
} }
logger () {
tail -F "$WORLDSINSTALL/Gamma.Log.open" | zenity --text-info --auto-scroll --height=400 --width=500 --title="$TITLE - Log" --window-icon="$WORLDSDIR/icon.png" --text="Gamma.Log.open"
main
}
folder () {
gio open "$WORLDSINSTALL"
main
}
ini () {
xdg-open "$WORLDSINSTALL/worlds.ini"
main
}
backup () {
mkdir -p "$WORLDSDIR/backups"
bkup=$(zenity --file-selection --title="$TITLE - Backup" --text="Select Backup folder to backup to" --directory --filename="$WORLDSDIR/backups/" --save --confirm-overwrite --window-icon="$WORLDSDIR/icon.png")
if [[ ! $? -eq 1 ]]; then
cp -r "$WORLDSINSTALL/worlds.ini" "$bkup/worlds.ini"
cp -r "$WORLDSINSTALL/gamma.avatars" "$bkup/gamma.avatars"
cp -r "$WORLDSINSTALL/gamma.worldsmarks" "$bkup/gamma.worldsmarks"
if [[ $? -eq 1 ]]; then
zenity --error --text="Could not successfully backup files." --width=240 --height=40 --title="$TITLE - Backup" --window-icon="$WORLDSDIR/icon.png"
else
zenity --info --text="Personal world files successfully backed up." --width=240 --height=40 --title="$TITLE - Backup" --window-icon="$WORLDSDIR/icon.png"
fi
fi
main
}
restore () {
mkdir -p "$WORLDSDIR/backups"
rbkup=$(zenity --file-selection --title="Select Backup folder to restore from" --directory --filename="$WORLDSDIR/backups/" --window-icon="$WORLDSDIR/icon.png")
if [[ ! $? -eq 1 ]]; then
cp -r "$rbkup/worlds.ini" "$WORLDSINSTALL/worlds.ini"
cp -r "$rbkup/gamma.avatars" "$WORLDSINSTALL/gamma.avatars"
cp -r "$rbkup/gamma.worldsmarks" "$WORLDSINSTALL/gamma.worldsmarks"
if [[ $? -eq 1 ]]; then
zenity --error --text="Could not successfully restore files." --width=240 --height=40 --title="$TITLE - Restore" --window-icon="$WORLDSDIR/icon.png"
else
zenity --info --text="Personal world files successfully restored." --width=240 --height=40 --title="$TITLE - Restore" --window-icon="$WORLDSDIR/icon.png"
fi
fi
main
}
theme () {
mkdir -p "$WORLDSDIR/themes"
seltheme=$(zenity --file-selection --title="Select a theme folder" --directory --filename="$WORLDSDIR/themes/" --window-icon="$WORLDSDIR/icon.png")
if [[ ! $? -eq 1 ]]; then
for i in $seltheme/*;
do FILENAME="$(basename $i)"
echo "$seltheme/$FILENAME >> $WORLDSINSTALL/$FILENAME"
ln -sf "$seltheme/$FILENAME" "$WORLDSINSTALL/$FILENAME"
done
zenity --info --text="Successfully set theme to $(basename $seltheme)." --width=240 --height=40 --title="$TITLE - Theme" --window-icon="$WORLDSDIR/icon.png"
fi
main
}
settings () { settings () {
SETSEL=$(zenity --list --title="$TITLE - Settings" --text="Settings for Worlds Linux" --column='Option' --column='Value' --cancel-label="Back" --width=300 --height=300 --window-icon="$WORLDSDIR/icon.png" \ SETSEL=$(zenity --list --title="$TITLE - Settings" --text="Settings for Worlds Linux" --column='Option' --column='Value' --cancel-label="Back" --width=540 --height=360 --window-icon="$WORLDSDIR/icon.png" \
"Wine Location" "$WINE" \ "Wine Location" "$WINE" \
"Prefix Location" "$WINEPREFIX" \ "Prefix Location" "$WINEPREFIX" \
"Worlds Location" "$WORLDSINSTALL" \ "Worlds Location" "$WORLDSINSTALL" \
2>/dev/null) "Edit worlds.ini" "" \
case $SETSEL in "Wine Configuration" "" \
'Wine Location') "Set Theme" "$SETTHEME" \
WINESEL=$(zenity --entry --title="$WTITLE - Wine Binary Location" --text="Path to wine binary" --entry-text="$WINE" --window-icon="$WORLDSDIR/icon.png") "Install Theme" "" \
if [[ ! $? -eq 1 ]]; then "Backup" "" \
export WINE=$WINESEL "Restore" "" \
echo "$WINESEL" > "$WORLDSDIR/wine.worldslinux" 2>/dev/null)
fi case $SETSEL in
settings ;; 'Wine Location')
'Prefix Location') WINESEL=$(zenity --entry --title="$WTITLE - Wine Binary Location" --text="Path to wine binary" --entry-text="$WINE" --window-icon="$WORLDSDIR/icon.png")
PREFSEL=$(zenity --entry --title="$WTITLE - Wine Prefix Location" --text="Path to Wine Prefix." --entry-text="$WINEPREFIX" --window-icon="$WORLDSDIR/icon.png") if [[ ! $? -eq 1 ]]; then
if [[ ! $? -eq 1 ]]; then export WINE=$WINESEL
export WINEPREFIX=$PREFSEL fi
echo "$PREFSEL" > "$WORLDSDIR/wineprefix.worldslinux" settings ;;
fi 'Prefix Location')
settings ;; PREFSEL=$(zenity --entry --title="$WTITLE - Wine Prefix Location" --text="Path to Wine Prefix." --entry-text="$WINEPREFIX" --window-icon="$WORLDSDIR/icon.png")
'Worlds Location') if [[ ! $? -eq 1 ]]; then
WORLDSEL=$(zenity --entry --title="$WTITLE - Worlds Location" --text="Path to Worlds Folder" --entry-text="$WORLDSINSTALL" --window-icon="$WORLDSDIR/icon.png") export WINEPREFIX=$PREFSEL
if [[ ! $? -eq 1 ]]; then fi
export WORLDSINSTALL=$WORLDSEL settings ;;
echo "$WORLDSEL" > "$WORLDSDIR/worlds.worldslinux" 'Worlds Location')
fi WORLDSEL=$(zenity --entry --title="$WTITLE - Worlds Location" --text="Path to Worlds Folder" --entry-text="$WORLDSINSTALL" --window-icon="$WORLDSDIR/icon.png")
settings ;; if [[ ! $? -eq 1 ]]; then
esac export WORLDSINSTALL=$WORLDSEL
main fi
settings ;;
'Edit worlds.ini')
xdg-open "$WORLDSINSTALL/worlds.ini"
settings ;;
'Wine Configuration')
"$WINE"cfg
settings ;;
'Set Theme')
theme
settings ;;
'Backup')
backup
settings ;;
'Restore')
restore
settings ;;
esac
echo "# Configuration for Worlds on Linux." > "$WORLDSDIR/wrldslinux"
echo "export WINE=\"$WINE\"" >> "$WORLDSDIR/wrldslinux"
echo "export WINEPREFIX=\"$WINEPREFIX\"" >> "$WORLDSDIR/wrldslinux"
echo "export WORLDSINSTALL=\"$WORLDSINSTALL\"" >> "$WORLDSDIR/wrldslinux"
echo "export SETTHEME=\"$SETTHEME\"" >> "$WORLDSDIR/wrldslinux"
echo "source \"$WORLDSDIR/wlrdscmd\"" >> "$WORLDSDIR/wrldslinux"
}
theme () {
declare -a acceptimg=(
"actb.gif"
"actm.gif"
"actt.gif"
"back.gif"
"changeav.gif"
"drive.gif"
"dyrwtq.gif"
"explore.gif"
"friends.gif"
"hangong.gif"
"mfriends.gif"
"moreinfo.gif"
"notavail.gif"
"opnscrnc.gif"
"override.ini"
"pwc.gif"
"quit.gif"
"rtpanel.gif"
)
declare -A map
for key in "${!acceptimg[@]}"; do map[${acceptimg[$key]}]="$key"; done
mkdir -p "$WORLDSDIR/themes"
cd "$WORLDSDIR/themes"
# Due to some bug, this won't even accept a directory despite the option being defined. Instead using text entry.
# seltheme=$(zenity --file-selection --directory --title="Select a theme folder" --window-icon="$WORLDSDIR/icon.png")
seltheme=$(zenity --entry --title="$WTITLE - Worlds Theme" --text="Enter a theme directory." --entry-text="$WORLDSDIR/themes/" --window-icon="$WORLDSDIR/icon.png")
if [[ ! $? -eq 1 ]]; then
rename 'y/A-Z/a-z/' "$seltheme/*"
for i in $seltheme/*;
do FILENAME="$(basename $i)"
if [[ -n "${map[$i]}" ]]; then
echo "$seltheme/$FILENAME >> $WORLDSINSTALL/$FILENAME"
ln -sf "$seltheme/$FILENAME" "$WORLDSINSTALL/$FILENAME"
fi
done
export SETTHEME="$(basename $seltheme)"
zenity --info --text="Successfully set theme to $(basename $seltheme)." --width=240 --height=40 --title="$TITLE - Theme" --window-icon="$WORLDSDIR/icon.png"
else
zenity --error --text="Couldn't set $(basename $seltheme). Does it exist?" --width=240 --height=40 --title="$TITLE - Theme" --window-icon="$WORLDSDIR/icon.png"
fi
cd "$WORLDSINSTALL"
settings
}
backup () {
mkdir -p "$WORLDSDIR/backups"
bkup=$(zenity --file-selection --title="$TITLE - Backup" --text="Select Backup folder to backup to" --directory --filename="$WORLDSDIR/backups/" --save --confirm-overwrite --window-icon="$WORLDSDIR/icon.png")
if [[ ! $? -eq 1 ]]; then
cp -r "$WORLDSINSTALL/worlds.ini" "$bkup/worlds.ini"
cp -r "$WORLDSINSTALL/gamma.avatars" "$bkup/gamma.avatars"
cp -r "$WORLDSINSTALL/gamma.worldsmarks" "$bkup/gamma.worldsmarks"
if [[ $? -eq 1 ]]; then
zenity --error --text="Could not backup files." --width=240 --height=40 --title="$TITLE - Backup" --window-icon="$WORLDSDIR/icon.png"
else
zenity --info --text="Personal world files successfully backed up." --width=240 --height=40 --title="$TITLE - Backup" --window-icon="$WORLDSDIR/icon.png"
fi
fi
}
restore () {
mkdir -p "$WORLDSDIR/backups"
rbkup=$(zenity --file-selection --title="Select Backup folder to restore from" --directory --filename="$WORLDSDIR/backups/" --window-icon="$WORLDSDIR/icon.png")
if [[ ! $? -eq 1 ]]; then
cp -r "$rbkup/worlds.ini" "$WORLDSINSTALL/worlds.ini"
cp -r "$rbkup/gamma.avatars" "$WORLDSINSTALL/gamma.avatars"
cp -r "$rbkup/gamma.worldsmarks" "$WORLDSINSTALL/gamma.worldsmarks"
if [[ $? -eq 1 ]]; then
zenity --error --text="Could not restore files." --width=240 --height=40 --title="$TITLE - Restore" --window-icon="$WORLDSDIR/icon.png"
else
zenity --info --text="Personal world files successfully restored." --width=240 --height=40 --title="$TITLE - Restore" --window-icon="$WORLDSDIR/icon.png"
fi
fi
} }
cache () { cache () {
CDSIZE=$(du -sh "$WORLDSINSTALL/cachedir" | cut -f1) CDSIZE=$(du -sh "$WORLDSINSTALL/cachedir" | cut -f1)
if [ -d "$WORLDSINSTALL/cachedir" ]; then if [ -d "$WORLDSINSTALL/cachedir" ]; then
rm -rf "$WORLDSINSTALL/cachedir" rm -rf "$WORLDSINSTALL/cachedir" | zenity --progress --no-buttons --text="Removing cachedir..." -title="$TITLE - Removing Cachedir" --window-icon="$WORLDSDIR/icon.png" --auto-close --auto-kill
if [ ! -d "$WORLDSINSTALL/cachedir" ]; then if [ ! -d "$WORLDSINSTALL/cachedir" ]; then
zenity --info --text="$CDSIZE were successfully cleared." --width=240 --height=40 --title="$TITLE - Cachedir" --window-icon="$WORLDSDIR/icon.png" zenity --info --text="$CDSIZE were successfully cleared." --width=240 --height=40 --title="$TITLE - Cachedir" --window-icon="$WORLDSDIR/icon.png"
else else
zenity --error --text="Something went wrong." --width=240 --height=40 --title="$TITLE - Cachedir" --window-icon="$WORLDSDIR/icon.png" zenity --error --text="Something went wrong." --width=240 --height=40 --title="$TITLE - Cachedir" --window-icon="$WORLDSDIR/icon.png"
fi fi
else else
zenity --error --text="Cachedir doesn't exist! Was it already cleared?" --width=240 --height=40 --title="$TITLE - Cachedir" --window-icon="$WORLDSDIR/icon.png" zenity --error --text="Cachedir doesn't exist! Was it already cleared?" --width=240 --height=40 --title="$TITLE - Cachedir" --window-icon="$WORLDSDIR/icon.png"
fi fi
main
} }
kill () { killw () {
killall WorldsPlayer.exe run.exe javaw.exe jrew.exe killall WorldsPlayer.exe run.exe javaw.exe jrew.exe run.bat | zenity --progress --no-buttons --title="$TITLE - Killing Processes" --width=300 --height=50 --auto-close --auto-kill
zenity --error --text="Killed all possible running processes of Worlds." --width=240 --height=40 --title="$TITLE - Kill" --window-icon="$WORLDSDIR/icon.png" zenity --error --text="Killed all possible running processes of Worlds." --width=240 --height=40 --title="$TITLE - Kill" --window-icon="$WORLDSDIR/icon.png"
main
} }
main main