Pastebin is 300% more awesome when you are logged in. Sign Up, it's FREE!

#!/bin/bash

By: TehCAKE on Nov 8th, 2011  |  syntax: Bash  |  size: 20.92 KB  |  hits: 180  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #!/bin/bash
  2. # Last changes made on "Sat,Nov,12th"
  3. #        _______         __ __   __ __         __        __
  4. #       |   |   |.--.--.|  |  |_|__|  |_.----.|__|.----.|  |--.-----.
  5. #       |       ||  |  ||  |   _|  |   _|   _||  ||  __||    <|__ --|
  6. #       |__|_|__||_____||__|____|__|____|__|  |__||____||__|__|_____| [WIP] Version 0.2g
  7. #
  8. ########################################################################################
  9. # http://tehcakeswineblog.wordpress.com ######################################
  10. ####################################################################
  11.  
  12.                 IFS=$'
  13.                 '
  14.  
  15. #               ICON=$''
  16. #               echo $ICON | base64 -d > $HOME/.cache/multitricks/temp/icon.png
  17.  
  18.                 USER=$(whoami)
  19.                 echo "[INFO] Running Multitricks Version 0.2g as: $USER"
  20.  
  21.                 while true; do
  22.                     AGREE=$(zenity --width="300" --height="200" --list --column "" --title="Argee to use Multitricks?" --text "Choose Your Destiny?" \
  23.                         "Run Multitricks" \
  24.                         "Exit ")
  25.  
  26.                 case "${AGREE}" in
  27.  
  28.           "Run Multitricks")
  29.  
  30.                 while true; do
  31.                     MENU=$(zenity --width="800" --height="425" --list --column "Option" --column "Description" --column "Root" --title="If a Genie granted you three wishes, what would you wish for?" \
  32.                                                                                                                                --text "What would you like, to do $USER? Your wish is my command." \
  33.                         "Create a WINEPREFIX" "(A simple way to create new wineprefixes)" "(NO)" \
  34.                         "Remove a WINEPREFIX" "(A simple way to remove wineprefixes)" "(NO)" \
  35.                         "Install winetricks" "(Installs winetricks into /usr/local/bin)" "(YES)" \
  36.                         "Run winetricks" "(Run winetricks over multiple wine versions and prefixes)" "(NO)" \
  37.                         "Install a winetricks .verb" "(Install a .verb with multiple wine versions and prefixes)" "(NO)" \
  38.                         "Delete winetricks .cache" "(Removes files in $HOME/.cache/winetricks)" "(NO)" \
  39.                         "Install a windows .exe" "(Install a windows .exe with a selected wine version in a selected prefix)" "(NO)" \
  40.                         "Install a windows .msi" "(Install a windows .msi with a selected wine version in a selected prefix)" "(NO)" \
  41.                         "Run an application" "(Run a selected application over multiple wine versions and prefixes)" "(NO)" \
  42.                         "Run a batch script" "(Run a selected batch script with multiple wine versions and prefixes)" "(NO)" \
  43.                         "Run a steam game" "(Run Steam Games over multiple wine versions and prefixes)" "(NO)" \
  44.                         "Run a debug trace" "(Run debug trace on a selected program and wine version in a selected prefix)" "(NO)" \
  45.                         "Back")
  46.  
  47.                 case "${MENU}" in
  48.  
  49.           "Create a WINEPREFIX")
  50.  
  51.                 echo "[INFO] Create a WINEPREFIX"
  52.  
  53.                 WINE_DIR=$(zenity --file-selection --directory --title="Select Wine Binary Directory" --window-icon="info")
  54.                 case $? in
  55.                          0)
  56.                                 echo "[INFO] Selected BINARY directory: $WINE_DIR";;
  57.                          1)
  58.                                 echo "[INFO] No Binary Directory selected" &&
  59.                                 exit ;;
  60.                         -1)
  61.                                 echo "[INFO] No Binary Directory selected" &&
  62.                                 exit ;;
  63.                 esac
  64.  
  65.                 WINE_VER=$(ls -Q $WINE_DIR)
  66.  
  67.                 SELECTED_VER=$(eval zenity --width="400" --height="500" --list --column="Version" $WINE_VER --title="" --window-icon="info")
  68.                 echo "[INFO] Selected BINARY version: $SELECTED_VER"
  69.  
  70.                 PREFIX_DIR=$(zenity --file-selection --directory --title="Select Wine Prefix Directory" --window-icon="info")
  71.                 case $? in
  72.                          0)
  73.                                 echo "[INFO] Selected PREFIX directory: $PREFIX_DIR";;
  74.                          1)
  75.                                 echo "[INFO] No PREFIX Directory selected" &&
  76.                                 exit ;;
  77.                         -1)
  78.                                 echo "[INFO] No PREFIX Directory selected" &&
  79.                                 exit ;;
  80.                 esac
  81.  
  82.                 PREFIX_NAME=$(zenity --width="350" --height="100" --entry --entry-text "" --title="" --text="Enter a _prefix name:")
  83.                 echo "[INFO] Creating PREFIX: $PREFIX_NAME"
  84.  
  85.                 echo "[INFO] WINEBINARY=PATH: $WINE_DIR/$SELECTED_VER/wine"
  86.                 echo "[INFO] WINEPREFIX=PATH: $PREFIX_DIR/$PREFIX_NAME"
  87.  
  88.                 if [ -z "$1" ] ; then zenity --notification --window-icon="info" --text="Creating the prefix: $PREFIX_DIR/$PREFIX_NAME";
  89.           fi
  90.  
  91.                         export WINEPREFIX="$PREFIX_DIR/$PREFIX_NAME"
  92.                         $WINE_DIR/$SELECTED_VER/wine winecfg
  93.  
  94.                 clear
  95.           ;;
  96.  
  97.           "Remove a WINEPREFIX")
  98.  
  99.                 echo "[INFO] Remove a WINEPREFIX"
  100.  
  101.                 PREFIX_DIR=$(zenity --file-selection --directory --title="Select Wine Prefix Directory" --window-icon="info")
  102.                 case $? in
  103.                          0)
  104.                                 echo "[INFO] Selected PREFIX directory: $PREFIX_DIR";;
  105.                          1)
  106.                                 echo "[INFO] No PREFIX Directory selected" &&
  107.                                 exit ;;
  108.                         -1)
  109.                                 echo "[INFO] No PREFIX Directory selected" &&
  110.                                 exit ;;
  111.                 esac
  112.  
  113.                 PREFIX=$(ls -Q $PREFIX_DIR)
  114.  
  115.                 SELECTED_PREFIX=$(eval zenity --width="400" --height="500" --list --column="Prefix" $PREFIX --title="" --window-icon="info")
  116.                 echo "[INFO] Selected PREFIX: $SELECTED_PREFIX"
  117.  
  118.                 echo "[INFO] Removing WINEPREFIX: $PREFIX_DIR/$SELECTED_PREFIX"
  119.  
  120.                 zenity --question --text="Are you sure you wish to proceed?"
  121.  
  122.                 if [ -z "$1" ] ; then zenity --notification --window-icon="info" --text="Removing WINEPREFIX: $PREFIX_DIR/$SELECTED_PREFIX";
  123.           fi
  124.  
  125.                         rm -r "$PREFIX_DIR/$SELECTED_PREFIX"
  126.  
  127.                 clear
  128.           ;;
  129.  
  130.           "Install winetricks")
  131.  
  132.                 # Testing C Style Functions.
  133.                 # Fuctions are fun :)
  134.  
  135.                 WinetricksInstallStable ()
  136.                 {
  137.                         FILE=/usr/local/bin/winetricks
  138.  
  139.                         if [ -f $FILE ];
  140.                         then
  141.                         echo "[CHECKING] If file $FILE exists"
  142.                         echo "[INFO] Winetricks already exists in /usr/local/bin"
  143.  
  144.                         else
  145.                         echo "[CHECKING] If file $FILE exists"
  146.                         echo "[INFO] Winetricks does not exists in /usr/local/bin"
  147.  
  148.                         wget -q "http://winetricks.org/winetricks" &&
  149.                         chmod +x winetricks &&
  150.  
  151.                         echo "[ACTION] Winetricks will be installed in /usr/local/bin"
  152.                         echo "[ACTION] please provide root password!"
  153.  
  154.                         PASSWORD=$(zenity --password --title="Root permission needed." --text="")
  155.                         echo $PASSWORD | su -c "mv winetricks /usr/local/bin" &&
  156.  
  157.                         export TMOUT=1
  158.  
  159.                         echo "[INFO] Winetricks has been installed to /usr/local/bin/winetricks"
  160.                         echo "[INFO] Logged out ROOT! running as: $USER"
  161.                         fi
  162.                 }
  163.  
  164.                 WinetricksInstallDev ()
  165.                 {
  166.                         FILE=/usr/local/bin/winetricks
  167.  
  168.                         if [ -f $FILE ];
  169.                         then
  170.                         echo "[CHECKING] If file $FILE exists"
  171.                         echo "[INFO] Winetricks already exists in /usr/local/bin"
  172.  
  173.                         else
  174.                         echo "[CHECKING] If file $FILE exists"
  175.                         echo "[INFO] Winetricks does not exists in /usr/local/bin"
  176.  
  177.                         wget -q "http://winetricks.googlecode.com/svn/trunk/src/" &&
  178.                         chmod +x winetricks &&
  179.  
  180.                         echo "[ACTION] Winetricks will be installed in /usr/local/bin"
  181.                         echo "[ACTION] please provide root password!"
  182.  
  183.                         PASSWORD=$(zenity --password --title="Root permission needed." --text="")
  184.                         echo $PASSWORD | su -c "mv winetricks /usr/local/bin" &&
  185.  
  186.                         export TMOUT=1
  187.  
  188.                         echo "[INFO] Winetricks has been installed to /usr/local/bin/winetricks"
  189.                         echo "[INFO] Logged out ROOT! running as: $USER"
  190.                         fi
  191.                 }
  192.  
  193.                 while true; do
  194.                         SUB_MENU=$(zenity  --width 475 --height 225 --list --column "Option" --column "Description" \
  195.                         "Stable" "(Installs the current stable winetricks release.)" \
  196.                         "Development" "(Installs the latest development winetricks release.)" \
  197.                         "Exit")
  198.  
  199.                                 if [ "$SUB_MENU" = "Exit" ]; then
  200.                                 echo done
  201.                                 exit
  202.  
  203.                                 elif [ "$SUB_MENU" = "Stable" ]; then
  204.                                         WinetricksInstallStable
  205.  
  206.                                 elif [ "$SUB_MENU" = "Development" ]; then
  207.                                         WinetricksInstallDev
  208.                                 else
  209.                                 clear
  210.                         fi
  211.                         done
  212.  
  213.           ;;
  214.  
  215.           "Run winetricks")
  216.  
  217.                 echo "[INFO] Run Winetricks"
  218.  
  219.                 WINE_DIR=$(zenity --file-selection --directory --title="Select Wine Binary Directory" --window-icon="info")
  220.                 case $? in
  221.                          0)
  222.                                 echo "[INFO] Selected BINARY directory: $WINE_DIR";;
  223.                          1)
  224.                                 echo "[INFO] No Binary Directory selected" &&
  225.                                 exit ;;
  226.                         -1)
  227.                                 echo "[INFO] No Binary Directory selected" &&
  228.                                 exit ;;
  229.                 esac
  230.  
  231.                 WINE_VER=$(ls -Q $WINE_DIR)
  232.  
  233.                 SELECTED_VER=$( eval zenity --width="400" --height="500" --list --column="Version" $WINE_VER --title="" --window-icon="info")
  234.                 echo "[INFO] Selected BINARY version: $SELECTED_VER"
  235.  
  236.                 PREFIX_DIR=$(zenity --file-selection --directory --title="Select Wine Prefix Directory" --window-icon="info")
  237.                 case $? in
  238.                          0)
  239.                                 echo "[INFO] Selected PREFIX directory: $PREFIX_DIR";;
  240.                          1)
  241.                                 echo "[INFO] No PREFIX Directory selected" &&
  242.                                 exit ;;
  243.                         -1)
  244.                                 echo "[INFO] No PREFIX Directory selected" &&
  245.                                 exit ;;
  246.                 esac
  247.  
  248.                 PREFIX=$(ls -Q $PREFIX_DIR)
  249.  
  250.                 SELECTED_PREFIX=$(eval zenity --width="400" --height="500" --list --column="Prefix" $PREFIX --title="" --window-icon="info")
  251.                 echo "[INFO] Selected PREFIX: $SELECTED_PREFIX"
  252.  
  253.                 echo "[INFO] WINEBINARY=PATH: $WINE_DIR/$SELECTED_VER/wine"
  254.                 echo "[INFO] WINEPREFIX=PATH: $PREFIX_DIR/$SELECTED_PREFIX"
  255.                 echo "[OUTPUT] from winetricks"
  256.  
  257.                 if [ -z "$1" ] ; then zenity --notification --window-icon="info" --text="Running Winetricks on $PREFIX_DIR/$SELECTED_PREFIX";
  258.           fi
  259.  
  260.                         export WINEPREFIX="$PREFIX_DIR/$SELECTED_PREFIX"
  261.                         WINE=$WINE_DIR/$SELECTED_VER/wine winetricks
  262.  
  263.                 clear
  264.           ;;
  265.  
  266.           "Install a winetricks .verb")
  267.  
  268.                 echo "[INFO] Install Winetricks .verb"
  269.  
  270.                 WINE_DIR=$(zenity --file-selection --directory --title="Select Wine Binary Directory" --window-icon="info")
  271.                 case $? in
  272.                          0)
  273.                                 echo "[INFO] Selected BINARY directory: $WINE_DIR";;
  274.                          1)
  275.                                 echo "[INFO] No Binary Directory selected" &&
  276.                                 exit ;;
  277.                         -1)
  278.                                 echo "[INFO] No Binary Directory selected" &&
  279.                                 exit ;;
  280.                 esac
  281.  
  282.                 WINE_VER=$(ls -Q $WINE_DIR)
  283.  
  284.                 SELECTED_VER=$(eval zenity --width="400" --height="500" --list --column="Version" $WINE_VER --title="" --window-icon="info")
  285.                 echo "[INFO] Selected BINARY version: $SELECTED_VER"
  286.  
  287.                 PREFIX_DIR=$(zenity --file-selection --directory --title="Select Wine Prefix Directory" --window-icon="info")
  288.                 case $? in
  289.                          0)
  290.                                 echo "[INFO] Selected PREFIX directory: $PREFIX_DIR";;
  291.                          1)
  292.                                 echo "[INFO] No PREFIX Directory selected" &&
  293.                                 exit ;;
  294.                         -1)
  295.                                 echo "[INFO] No PREFIX Directory selected" &&
  296.                                 exit ;;
  297.                 esac
  298.  
  299.                 PREFIX=$(ls -Q $PREFIX_DIR)
  300.  
  301.                 SELECTED_PREFIX=$(eval zenity --width="400" --height="500" --list --column="Prefix" $PREFIX --title="" --window-icon="info")
  302.                 echo "[INFO] Selected PREFIX: $SELECTED_PREFIX"
  303.  
  304.                 echo "[INFO] WINEBINARY=PATH: $WINE_DIR/$SELECTED_VER/wine"
  305.                 echo "[INFO] WINEPREFIX=PATH: $PREFIX_DIR/$SELECTED_PREFIX"
  306.  
  307.                 SELECTED_VERB=$(zenity --file-selection --title="Select .verb" --window-icon="info")
  308.                 case $? in
  309.                          0)
  310.                                 echo "[INFO] $SELECTED_VERB selected for install";;
  311.                          1)
  312.                                 echo "[INFO] No .verb selected" &&
  313.                                 exit ;;
  314.                         -1)
  315.                                 echo "[INFO] No .verb selected" &&
  316.                                 exit ;;
  317.                 esac
  318.  
  319.                 if [ -z "$1" ] ; then zenity --notification --window-icon="info" --text="Running $WINE_DIR/$SELECTED_VER/wine winetricks $SELECTED_VERB";
  320.           fi
  321.  
  322.                         export WINEPREFIX="$PREFIX_DIR/$SELECTED_PREFIX"
  323.                         WINE=$WINE_DIR/$SELECTED_VER/wine winetricks $SELECTED_VERB
  324.  
  325.                 clear
  326.           ;;
  327.  
  328.           "Delete winetricks .cache")
  329.  
  330.                 echo "[INFO] Delete Winetricks cache: $HOME/.cache/winetricks"
  331.  
  332.                 zenity --warning --text="Are you sure you wish to proceed?"
  333.  
  334.                         rm -r "$HOME/.cache/winetricks"
  335.  
  336.                 clear
  337.           ;;
  338.  
  339.           "Install a windows .exe")
  340.  
  341.                 echo "[INFO] Install a Windows .exe"
  342.  
  343.                 WINE_DIR=$(zenity --file-selection --directory --title="Select Wine Binary Directory" --window-icon="info")
  344.                 case $? in
  345.                          0)
  346.                                 echo "[INFO] Selected BINARY directory: $WINE_DIR";;
  347.                          1)
  348.                                 echo "[INFO] No Binary Directory selected" &&
  349.                                 exit ;;
  350.                         -1)
  351.                                 echo "[INFO] No Binary Directory selected" &&
  352.                                 exit ;;
  353.                 esac
  354.  
  355.                 WINE_VER=$(ls -Q $WINE_DIR)
  356.  
  357.                 SELECTED_VER=$(eval zenity --width="400" --height="500" --list --column="Version" $WINE_VER --title="" --window-icon="info")
  358.                 echo "[INFO] Selected BINARY version: $SELECTED_VER"
  359.  
  360.                 PREFIX_DIR=$(zenity --file-selection --directory --title="Select Wine Prefix Directory" --window-icon="info")
  361.                 case $? in
  362.                          0)
  363.                                 echo "[INFO] Selected PREFIX directory: $PREFIX_DIR";;
  364.                          1)
  365.                                 echo "[INFO] No PREFIX Directory selected" &&
  366.                                 exit ;;
  367.                         -1)
  368.                                 echo "[INFO] No PREFIX Directory selected" &&
  369.                                 exit ;;
  370.                 esac
  371.  
  372.                 PREFIX=$(ls -Q $PREFIX_DIR)
  373.  
  374.                 SELECTED_PREFIX=$(eval zenity --width="400" --height="500" --list --column="Prefix" $PREFIX --title="" --window-icon="info")
  375.                 echo "[INFO] Selected PREFIX: $SELECTED_PREFIX"
  376.  
  377.                 echo "[INFO] WINEBINARY=PATH: $WINE_DIR/$SELECTED_VER/wine"
  378.                 echo "[INFO] WINEPREFIX=PATH: $PREFIX_DIR/$SELECTED_PREFIX"
  379.  
  380.                 SELECTED_EXE=$(zenity --file-selection --title="Select a Windows .exe" --window-icon="info")
  381.                 case $? in
  382.                          0)
  383.                                 echo "[INFO] $SELECTED_EXE selected for install";;
  384.                          1)
  385.                                 echo "[INFO] No .exe selected" &&
  386.                                 exit ;;
  387.                         -1)
  388.                                 echo "[INFO] No .exe selected" &&
  389.                                 exit ;;
  390.                 esac
  391.  
  392.                 if [ -z "$1" ] ; then zenity --notification --window-icon="info" --text="Running $WINE_DIR/$SELECTED_VER/wine $SELECTED_EXE";
  393.           fi
  394.  
  395.                         export WINEPREFIX="$PREFIX_DIR/$SELECTED_PREFIX"
  396.                         $WINE_DIR/$SELECTED_VER/wine $SELECTED_EXE
  397.  
  398.                 clear
  399.           ;;
  400.  
  401.           "Install a windows .msi")
  402.  
  403.                 echo "[INFO] Install a Windows .exe"
  404.  
  405.                 WINE_DIR=$(zenity --file-selection --directory --title="Select Wine Binary Directory" --window-icon="info")
  406.                 case $? in
  407.                          0)
  408.                                 echo "[INFO] Selected BINARY directory: $WINE_DIR";;
  409.                          1)
  410.                                 echo "[INFO] No Binary Directory selected" &&
  411.                                 exit ;;
  412.                         -1)
  413.                                 echo "[INFO] No Binary Directory selected" &&
  414.                                 exit ;;
  415.                 esac
  416.  
  417.                 WINE_VER=$(ls -Q $WINE_DIR)
  418.  
  419.                 SELECTED_VER=$(eval zenity --width="400" --height="500" --list --column="Version" $WINE_VER --title="" --window-icon="info")
  420.                 echo "[INFO] Selected BINARY version: $SELECTED_VER"
  421.  
  422.                 PREFIX_DIR=$(zenity --file-selection --directory --title="Select Wine Prefix Directory" --window-icon="info")
  423.                 case $? in
  424.                          0)
  425.                                 echo "[INFO] Selected PREFIX directory: $PREFIX_DIR";;
  426.                          1)
  427.                                 echo "[INFO] No PREFIX Directory selected" &&
  428.                                 exit ;;
  429.                         -1)
  430.                                 echo "[INFO] No PREFIX Directory selected" &&
  431.                                 exit ;;
  432.                 esac
  433.  
  434.                 PREFIX=$(ls -Q $PREFIX_DIR)
  435.  
  436.                 SELECTED_PREFIX=$(eval zenity --width="400" --height="500" --list --column="Prefix" $PREFIX --title="" --window-icon="info")
  437.                 echo "[INFO] Selected PREFIX: $SELECTED_PREFIX"
  438.  
  439.                 echo "[INFO] WINEBINARY=PATH: $WINE_DIR/$SELECTED_VER/wine"
  440.                 echo "[INFO] WINEPREFIX=PATH: $PREFIX_DIR/$SELECTED_PREFIX"
  441.  
  442.                 SELECTED_MSI=$(zenity --file-selection --title="Select a Windows .msi" --window-icon="info")
  443.                 case $? in
  444.                          0)
  445.                                 echo "[INFO] $SELECTED_MSI selected for install";;
  446.                          1)
  447.                                 echo "[INFO] No .msi selected" &&
  448.                                 exit ;;
  449.                         -1)
  450.                                 echo "[INFO] No .msi selected" &&
  451.                                 exit ;;
  452.                 esac
  453.  
  454.                 if [ -z "$1" ] ; then zenity --notification --window-icon="info" --text="Running $WINE_DIR/$SELECTED_VER/wine $SELECTED_MSI";
  455.           fi
  456.  
  457.                         export WINEPREFIX="$PREFIX_DIR/$SELECTED_PREFIX"
  458.                         $WINE_DIR/$SELECTED_VER/wine msiexec /i $SELECTED_MSI
  459.  
  460.                 clear
  461.           ;;
  462.  
  463.           "Run an application")
  464.  
  465.                 echo "[INFO] Run a Windows Application"
  466.  
  467.                 WINE_DIR=$(zenity --file-selection --directory --title="Select Wine Binary Directory" --window-icon="info")
  468.                 case $? in
  469.                          0)
  470.                                 echo "[INFO] Selected BINARY directory: $WINE_DIR";;
  471.                          1)
  472.                                 echo "[INFO] No Binary Directory selected" &&
  473.                                 exit ;;
  474.                         -1)
  475.                                 echo "[INFO] No Binary Directory selected" &&
  476.                                 exit ;;
  477.                 esac
  478.  
  479.                 WINE_VER=$(ls -Q $WINE_DIR)
  480.  
  481.                 SELECTED_VER=$(eval zenity --width="400" --height="500" --list --column="Version" $WINE_VER --title="" --window-icon="info")
  482.                 echo "[INFO] Selected BINARY version: $SELECTED_VER"
  483.  
  484.                 PREFIX_DIR=$(zenity --file-selection --directory --title="Select Wine Prefix Directory" --window-icon="info")
  485.                 case $? in
  486.                          0)
  487.                                 echo "[INFO] Selected PREFIX directory: $PREFIX_DIR";;
  488.                          1)
  489.                                 echo "[INFO] No PREFIX Directory selected" &&
  490.                                 exit ;;
  491.                         -1)
  492.                                 echo "[INFO] No PREFIX Directory selected" &&
  493.                                 exit ;;
  494.                 esac
  495.  
  496.                 PREFIX=$(ls -Q $PREFIX_DIR)
  497.  
  498.                 SELECTED_PREFIX=$(eval zenity --width="400" --height="500" --list --column="Prefix" $PREFIX --title="" --window-icon="info")
  499.                 echo "[INFO] Selected PREFIX: $SELECTED_PREFIX"
  500.  
  501.                 echo "[INFO] WINEBINARY=PATH: $WINE_DIR/$SELECTED_VER/wine"
  502.                 echo "[INFO] WINEPREFIX=PATH: $PREFIX_DIR/$SELECTED_PREFIX"
  503.  
  504.                 SELECTED_APP=$(zenity --file-selection --title="Select a Windows Application" --window-icon="info")
  505.                 case $? in
  506.                          0)
  507.                                 echo "[INFO] $SELECTED_APP selected to execute";;
  508.                          1)
  509.                                 echo "[INFO] No application selected" &&
  510.                                 exit ;;
  511.                         -1)
  512.                                 echo "[INFO] No application selected" &&
  513.                                 exit ;;
  514.                 esac
  515.  
  516.                 ARGUMENTS=$(zenity --width="350" --height="100" --entry --title="Command-Line Arguments" --text="Enter Command-Line Arguments:" --entry-text "")
  517.                 echo "[INFO] Command-Line Arguments: $ARGUMENTS"
  518.  
  519.                 if [ -z "$1" ] ; then zenity --notification --window-icon="info" --text="Running $WINE_DIR/$SELECTED_VER/wine $SELECTED_APP";
  520.           fi
  521.  
  522.                         export WINEPREFIX="$PREFIX_DIR/$SELECTED_PREFIX"
  523.                         WINE=$WINE_DIR/$SELECTED_VER/wine $SELECTED_APP $ARGUMENTS
  524.  
  525.                 clear
  526.           ;;
  527.  
  528.           "Run a batch script")
  529.  
  530.                 echo "[INFO] Run a Batch Script"
  531.  
  532.                 WINE_DIR=$(zenity --file-selection --directory --title="Select Wine Binary Directory" --window-icon="info")
  533.                 case $? in
  534.                          0)
  535.                                 echo "[INFO] Selected BINARY directory: $WINE_DIR";;
  536.                          1)
  537.                                 echo "[INFO] No Binary Directory selected" &&
  538.                                 exit ;;
  539.                         -1)
  540.                                 echo "[INFO] No Binary Directory selected" &&
  541.                                 exit ;;
  542.                 esac
  543.  
  544.                 WINE_VER=$(ls -Q $WINE_DIR)
  545.  
  546.                 SELECTED_VER=$(eval zenity --width="400" --height="500" --list --column="Version" $WINE_VER --title="" --window-icon="info")
  547.                 echo "[INFO] Selected BINARY version: $SELECTED_VER"
  548.  
  549.                 PREFIX_DIR=$(zenity --file-selection --directory --title="Select Wine Prefix Directory" --window-icon="info")
  550.                 case $? in
  551.                          0)
  552.                                 echo "[INFO] Selected PREFIX directory: $PREFIX_DIR";;
  553.                          1)
  554.                                 echo "[INFO] No PREFIX Directory selected" &&
  555.                                 exit ;;
  556.                         -1)
  557.                                 echo "[INFO] No PREFIX Directory selected" &&
  558.                                 exit ;;
  559.                 esac
  560.  
  561.                 PREFIX=$(ls -Q $PREFIX_DIR)
  562.  
  563.                 SELECTED_PREFIX=$(eval zenity --width="400" --height="500" --list --column="Prefix" $PREFIX --title="" --window-icon="info")
  564.                 echo "[INFO] Selected PREFIX: $SELECTED_PREFIX"
  565.  
  566.                 echo "[INFO] WINEBINARY=PATH: $WINE_DIR/$SELECTED_VER/wine"
  567.                 echo "[INFO] WINEPREFIX=PATH: $PREFIX_DIR/$SELECTED_PREFIX"
  568.  
  569.                 SELECTED_BAT=$(zenity --file-selection --title="Select a Windows Application" --window-icon="info")
  570.                 case $? in
  571.                          0)
  572.                                 echo "[INFO] $SELECTED_BAT selected to execute";;
  573.                          1)
  574.                                 echo "[INFO] No batch script selected" &&
  575.                                 exit ;;
  576.                         -1)
  577.                                 echo "[INFO] No batch script selected" &&
  578.                                 exit ;;
  579.                 esac
  580.  
  581.                 if [ -z "$1" ] ; then zenity --notification --window-icon="info" --text="Running $WINE_DIR/$SELECTED_VER/wine cmd /c $SELECTED_BAT";
  582.           fi
  583.  
  584.                         export WINEPREFIX="$PREFIX_DIR/$SELECTED_PREFIX"
  585.                         WINE=$WINE_DIR/$SELECTED_VER/wine cmd /c $SELECTED_BAT
  586.  
  587.                 clear
  588.           ;;
  589.  
  590.           "Run a steam game")
  591.  
  592.                 echo "[INFO] Run a Steam Game"
  593.  
  594.                 WINE_DIR=$(zenity --file-selection --directory --title="Select Wine Binary Directory"  --window-icon="info")
  595.                 case $? in
  596.                          0)
  597.                                 echo "[INFO] Selected BINARY directory: $WINE_DIR";;
  598.                          1)
  599.                                 echo "[INFO] No Binary Directory selected" &&
  600.                                 exit ;;
  601.                         -1)
  602.                                 echo "[INFO] No Binary Directory selected" &&
  603.                                 exit ;;
  604.                 esac
  605.  
  606.                 WINE_VER=$(ls -Q $WINE_DIR)
  607.  
  608.                 SELECTED_VER=$(eval zenity --width="400" --height="500" --list --column="Version" $WINE_VER --title="" --window-icon="info")
  609.                 echo "[INFO] Selected BINARY version: $SELECTED_VER"
  610.  
  611.                 PREFIX_DIR=$(zenity --file-selection --directory --title="Select Wine Prefix Directory" --window-icon="info")
  612.                 case $? in
  613.                          0)
  614.                                 echo "[INFO] Selected PREFIX directory: $PREFIX_DIR";;
  615.                          1)
  616.                                 echo "[INFO] No PREFIX Directory selected" &&
  617.                                 exit ;;
  618.                         -1)
  619.                                 echo "[INFO] No PREFIX Directory selected" &&
  620.                                 exit ;;
  621.                 esac
  622.  
  623.                 PREFIX=$(ls -Q $PREFIX_DIR)
  624.  
  625.                 SELECTED_PREFIX=$(eval zenity --width="400" --height="500" --list --column="Prefix" $PREFIX --title="" --window-icon="info")
  626.                 echo "[INFO] Selected PREFIX: $SELECTED_PREFIX"
  627.  
  628.                 echo "[INFO] WINEBINARY=PATH: $WINE_DIR/$SELECTED_VER/wine"
  629.                 echo "[INFO] WINEPREFIX=PATH: $PREFIX_DIR/$SELECTED_PREFIX"
  630.  
  631.                 STEAM_APPID=$(zenity --width="350" --height="100" --entry --title="Steam Application ID" --text="Enter a Steam _APPID:" --entry-text "")
  632.                 echo "[INFO] Steam Application ID: $STEAM_APPID"
  633.  
  634.                 ARGUMENTS=$(zenity --width="350" --height="100" --entry --title="Command-Line Arguments" --text="Enter Command-Line Arguments:" --entry-text "")
  635.                 echo "[INFO] Command-Line Arguments: $ARGUMENTS"
  636.  
  637.                 echo "[INFO] Executing steam.exe -applaunch $STEAM_APPID $ARGUMENTS"
  638.  
  639.                 if [ -z "$1" ] ; then zenity --notification --window-icon="info" --text="Running Steam.exe -applaunch $STEAM_APPID $ARGUMENTS";
  640.           fi
  641.  
  642.                         export WINEPREFIX="$PREFIX_DIR/$SELECTED_PREFIX"
  643.                         $WINE_DIR/$SELECTED_VER/wine C:/Program\ Files/Steam/Steam.exe -applaunch $STEAM_APPID $ARGUMENTS
  644.  
  645.                 clear
  646.           ;;
  647.  
  648.           "Run a debug trace")
  649.  
  650.                 echo "[NOT SUPPORTED YET] Run a debug trace."
  651.  
  652.           ;;
  653.  
  654.           *)
  655.             break
  656.           ;;
  657.         esac
  658.       done
  659.     ;;
  660.     *)
  661.       break
  662.     ;;
  663.   esac
  664. done