From e3218aa8f3d18d1f56f32e9d901085323aa67653 Mon Sep 17 00:00:00 2001
From: "T. Joseph Carter" <iKarith@users.noreply.github.com>
Date: Fri, 30 Oct 2015 04:58:34 -0700
Subject: [PATCH] Add GSPort scripts to source tree

---
 setup/gsport-setup-shell.txt |   6 ++
 setup/gsport.txt             | 122 +++++++++++++++++++++++++++++++++++
 2 files changed, 128 insertions(+)
 create mode 100644 setup/gsport-setup-shell.txt
 create mode 100644 setup/gsport.txt

diff --git a/setup/gsport-setup-shell.txt b/setup/gsport-setup-shell.txt
new file mode 100644
index 0000000..ae6625e
--- /dev/null
+++ b/setup/gsport-setup-shell.txt
@@ -0,0 +1,6 @@
+wget -qO /tmp/gsport-setup appleii.ivanx.com/a2cloud/setup/gsport-setup.txt
+if [[ $(wc -c /tmp/gsport-setup | grep '^0 ') ]]; then
+    echo "Please connect to the internet to set up GSport."
+else
+    source /tmp/gsport-setup "$@"
+fi
diff --git a/setup/gsport.txt b/setup/gsport.txt
new file mode 100644
index 0000000..dfbd040
--- /dev/null
+++ b/setup/gsport.txt
@@ -0,0 +1,122 @@
+#!/bin/bash
+
+if [[ ( $(grep USB <<< $myTTY) || $(grep AMA <<< $myTTY) || $SSH_CLIENT || $REMOTEHOST ) && ! $DISPLAY ]]; then
+    echo "Please run GSport on the console, or in an X Window."
+else
+
+    if [[ -f /usr/local/lib/ROM ]]; then
+        if [[ ! $(grep snd-pcm-oss /etc/modules) ]]; then
+            echo "Configuring GSport sound..."
+            echo "snd-pcm-oss" | sudo tee -a /etc/modules > /dev/null
+            [[ ! $(lsmod | grep snd_pcm_oss) ]] && sudo modprobe snd-pcm-oss
+        fi
+        
+        if [[ ! $(dpkg -l xfonts-base 2> /dev/null | grep '^ii') ]]; then
+            echo "Configuring GSport fonts..."
+            sudo apt-get -y update
+            touch /tmp/updated
+            sudo apt-get -y install xfonts-base &> /dev/null
+            sudo apt-get -y clean
+        fi        
+
+        if [[ ! $(dpkg -l libpcap0.8-dev 2> /dev/null | grep '^ii') ]]; then
+            echo "Configuring GSport networking..."
+            [[ ! -f /tmp/updated ]] && sudo apt-get -y update
+            sudo apt-get -y install libpcap0.8-dev &> /dev/null
+            sudo apt-get -y clean
+        fi
+        
+        rm /tmp/updated &> /dev/null
+    else
+        gsport-setup
+        [[ $? -ne 0 ]] && exit 1
+    fi
+    
+    displayOK=
+    if [[ $DISPLAY ]]; then # X Window
+        displayOK=1
+    else # console/framebuffer
+        if [[ ! -f /usr/local/etc/gsportconsolewarningoff ]] && { dpkg -l | grep -q -i virtualbox; }; then
+            echo
+            echo "If you have difficulties moving the mouse in GS/OS, choose"
+            echo "'Disable Mouse Integration' from the Machine menu. To free the mouse"
+            echo "from the virtual machine, press the Host key (shown in the lower right"
+            echo "corner of the virtual machine window)."
+            echo
+            echo "Press alt-F4 to exit GSport."
+            echo
+            echo "Press return to continue,"
+            echo -n "  or type 'OK' if you want to stop seeing this message: "
+            read
+            if [[ $REPLY == "ok" || $REPLY == "ok" || $REPLY == "Ok" ]]; then
+                sudo touch /usr/local/etc/gsportconsolewarningoff
+            fi
+#             echo "If you wish to run GSport in the console window, the mouse will not work"
+#             echo "unless you uninstall VirtualBox Guest Additions. If you don't want to do"
+#             echo "this, you can instead run GSport in an X window (e.g. by typing 'startx')."
+#             echo "If you're not sure, just uninstall it now. Nothing terrible will happen."
+#             echo
+#             echo -n "Do you want to uninstall VirtualBox Guest Additions now? "
+#             read
+#             if [[ ${REPLY:0:1} == "Y" || ${REPLY:0:1} == "y" ]]; then
+#                 echo "Ok, on the case..."
+#                 sudo /etc/init.d/vboxadd-service stop 2> /dev/null
+#                 sudo /etc/init.d/virtualbox-guest-utils stop &> /dev/null
+#                 sudo rmmod vboxvideo 2> /dev/null
+#                 sudo rmmod vboxsf 2> /dev/null
+#                 sudo rmmod vboxguest 2> /dev/null
+#                 while { lsmod | grep -q vbox; }; do
+#                     sleep 1
+#                     sudo rmmod vboxvideo 2> /dev/null
+#                     sudo rmmod vboxsf 2> /dev/null
+#                     sudo rmmod vboxguest 2> /dev/null
+#                 done
+#                 if [ -f /opt/VBoxGuestAdditions*/uninstall.sh ]; then
+#                     sudo /opt/VBoxGuestAdditions*/uninstall.sh &> /dev/null
+#                     sudo rmdir /opt/VBoxGuestAdditions* 2> /dev/null
+#                 fi
+#                 if { dpkg -l 2> /dev/null | grep -q -i virtualbox; }; then
+#                     sudo apt-get -y purge $(dpkg -l 2> /dev/null | grep -i virtualbox | cut -f 3 -d ' ' | tr '\n' ' ') &> /dev/null
+#                 fi
+#                 touch /tmp/gsport-consolesetup
+#             fi
+        fi
+        
+        if [[ ! $(grep 'input' <<< $(groups) ) ]]; then
+            sudo groupadd input &> /dev/null
+            sudo usermod -a -G input $USER
+            echo 'SUBSYSTEM=="input", GROUP="input", MODE="0660"' | sudo tee /etc/udev/rules.d/99-input.rules > /dev/null
+            touch /tmp/gsport-consolesetup
+        fi
+
+        if [[ -c /dev/fb0 ]]; then
+            [[ ! -f /tmp/gsport-consolesetup ]] && displayOK=1
+        else
+            if [[ -f /etc/default/grub ]]; then
+                if [[ ! $(grep 'GRUB_GFXPAYLOAD_LINUX' /etc/default/grub) ]]; then
+                    echo "Preparing GSport for console use..."
+                    sudo sed -i 's/^\(GRUB_CMDLINE_LINUX=.*\)$/\1\nGRUB_GFXPAYLOAD_LINUX=640x480/' /etc/default/grub
+                    sudo update-grub &> /dev/null
+                    touch /tmp/gsport-consolesetup
+                fi
+            else
+                echo "No framebuffer available. Please run GSport in an X window."
+            fi
+        fi
+    fi
+    
+    if [[ ! $DISPLAY && -f /tmp/gsport-consolesetup ]]; then
+        echo "GSport will be ready for console use after you restart your system."
+        echo "You can restart now by typing 'system-restart'."
+    elif [[ $displayOK ]]; then
+        if [[ $(xdpyinfo 2> /dev/null) ]]; then
+            exec gsportx
+        else
+            exec gsportfb
+        fi
+    else
+        echo "GSport has a problem. Please try updating A2CLOUD by"
+        echo "typing 'a2cloud-setup'."
+    fi
+
+fi