Fix script errors in easyinstall.sh (#297)

* Fix minor errors in easyinstall.sh and start.sh

* Make easyinstall directory portable

* Remove directory check from easyinstall.sh

* Revert to requiring the checkout dir to be /home/pi/RASCSI

Co-authored-by: Daniel Markstedt <markstedt@gmail.com>
This commit is contained in:
Jonathan Karras 2021-10-07 19:00:49 -06:00 committed by GitHub
parent f7cdc917ad
commit 5bd8807c9e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 33 additions and 29 deletions

View File

@ -1,4 +1,4 @@
#!/bin/bash #!/usr/bin/env bash
# BSD 3-Clause License # BSD 3-Clause License
# Author @sonique6784 # Author @sonique6784
@ -46,8 +46,9 @@ logo="""
echo -e $logo echo -e $logo
} }
VIRTUAL_DRIVER_PATH=/home/pi/images VIRTUAL_DRIVER_PATH="$HOME/images"
CFG_PATH="$HOME/.config/rascsi" CFG_PATH="$HOME/.config/rascsi"
BASE="$HOME/RASCSI"
HFS_FORMAT=/usr/bin/hformat HFS_FORMAT=/usr/bin/hformat
HFDISK_BIN=/usr/bin/hfdisk HFDISK_BIN=/usr/bin/hfdisk
LIDO_DRIVER=~/RASCSI/lido-driver.img LIDO_DRIVER=~/RASCSI/lido-driver.img
@ -63,8 +64,8 @@ function initialChecks() {
exit 1 exit 1
fi fi
if [ ! -d ~/RASCSI ]; then if [ ! -d "$BASE" ]; then
echo "You must checkout RASCSI repo into /home/pi/RASCSI" echo "You must checkout RASCSI repo into $BASE"
echo "$ git clone git@github.com:akuker/RASCSI.git" echo "$ git clone git@github.com:akuker/RASCSI.git"
exit 2 exit 2
fi fi
@ -87,14 +88,15 @@ function installRaScsi() {
SYSTEMD_BACKUP=false SYSTEMD_BACKUP=false
fi fi
cd ~/RASCSI/src/raspberrypi cd ~/RASCSI/src/raspberrypi || exit 1
make clean make clean
make all CONNECT_TYPE=${CONNECT_TYPE-FULLSPEC} make all CONNECT_TYPE="${CONNECT_TYPE-FULLSPEC}"
sudo make install CONNECT_TYPE=${CONNECT_TYPE-FULLSPEC} sudo make install CONNECT_TYPE="${CONNECT_TYPE-FULLSPEC}"
sudoIsReady=$(sudo grep -c "rascsi" /etc/sudoers) sudoIsReady=$(sudo grep -c "rascsi" /etc/sudoers)
if [ $sudoIsReady = "0" ]; then if [ "$sudoIsReady" = "0" ]; then
sudo bash -c 'echo " sudo bash -c 'echo "
# Allow the web server to restart the rascsi service # Allow the web server to restart the rascsi service
www-data ALL=NOPASSWD: /bin/systemctl restart rascsi.service www-data ALL=NOPASSWD: /bin/systemctl restart rascsi.service
@ -112,12 +114,14 @@ www-data ALL=NOPASSWD: /sbin/shutdown, /sbin/reboot
# install everything required to run an HTTP server (Nginx + Python Flask App) # install everything required to run an HTTP server (Nginx + Python Flask App)
function installRaScsiWebInterface() { function installRaScsiWebInterface() {
if [ -f ~/RASCSI/src/web/rascsi_interface_pb2.py ]; then if [ -f ~/RASCSI/src/web/rascsi_interface_pb2.py ]; then
rm ~/RASCSI/src/web/rascsi_interface_pb2.py rm ~/RASCSI/src/web/rascsi_interface_pb2.py
echo "Deleting old Python protobuf library rascsi_interface_pb2.py" echo "Deleting old Python protobuf library rascsi_interface_pb2.py"
fi fi
echo "Compiling the Python protobuf library rascsi_interface_pb2.py..." echo "Compiling the Python protobuf library rascsi_interface_pb2.py..."
protoc -I=/home/pi/RASCSI/src/raspberrypi/ --python_out=/home/pi/RASCSI/src/web/ rascsi_interface.proto protoc -I="$BASE/src/raspberrypi/" --python_out="$BASE/src/web/" rascsi_interface.proto
sudo cp -f ~/RASCSI/src/web/service-infra/nginx-default.conf /etc/nginx/sites-available/default sudo cp -f ~/RASCSI/src/web/service-infra/nginx-default.conf /etc/nginx/sites-available/default
sudo cp -f ~/RASCSI/src/web/service-infra/502.html /var/www/html/502.html sudo cp -f ~/RASCSI/src/web/service-infra/502.html /var/www/html/502.html
@ -135,20 +139,20 @@ function installRaScsiWebInterface() {
} }
function createImagesDir() { function createImagesDir() {
if [ -d $VIRTUAL_DRIVER_PATH ]; then if [ -d "$VIRTUAL_DRIVER_PATH" ]; then
echo "The $VIRTUAL_DRIVER_PATH directory already exists." echo "The $VIRTUAL_DRIVER_PATH directory already exists."
else else
echo "The $VIRTUAL_DRIVER_PATH directory does not exist; creating..." echo "The $VIRTUAL_DRIVER_PATH directory does not exist; creating..."
mkdir -p $VIRTUAL_DRIVER_PATH mkdir -p "$VIRTUAL_DRIVER_PATH"
chmod -R 775 $VIRTUAL_DRIVER_PATH chmod -R 775 "$VIRTUAL_DRIVER_PATH"
fi fi
if [ -d $CFG_PATH ]; then if [ -d "$CFG_PATH" ]; then
echo "The $CFG_PATH directory already exists." echo "The $CFG_PATH directory already exists."
else else
echo "The $CFG_PATH directory does not exist; creating..." echo "The $CFG_PATH directory does not exist; creating..."
mkdir -p $CFG_PATH mkdir -p "$CFG_PATH"
chmod -R 775 $CFG_PATH chmod -R 775 "$CFG_PATH"
fi fi
} }
@ -164,7 +168,7 @@ function stopOldWebInterface() {
function updateRaScsiGit() { function updateRaScsiGit() {
echo "Updating checked out branch $GIT_REMOTE/$GIT_BRANCH" echo "Updating checked out branch $GIT_REMOTE/$GIT_BRANCH"
cd ~/RASCSI cd ~/RASCSI || exit 1
stashed=0 stashed=0
if [[ $(git diff --stat) != '' ]]; then if [[ $(git diff --stat) != '' ]]; then
echo 'There are local changes, we will stash and reapply them.' echo 'There are local changes, we will stash and reapply them.'
@ -217,7 +221,7 @@ function formatDrive() {
if [ ! -x $HFDISK_BIN ]; then if [ ! -x $HFDISK_BIN ]; then
# Clone, compile and install 'hfdisk', partition tool # Clone, compile and install 'hfdisk', partition tool
git clone git://www.codesrc.com/git/hfdisk.git git clone git://www.codesrc.com/git/hfdisk.git
cd hfdisk cd hfdisk || exit 1
make make
sudo cp hfdisk /usr/bin/hfdisk sudo cp hfdisk /usr/bin/hfdisk
@ -283,12 +287,12 @@ function createDrive() {
driveSize=$1 driveSize=$1
driveName=$2 driveName=$2
mkdir -p $VIRTUAL_DRIVER_PATH mkdir -p "$VIRTUAL_DRIVER_PATH"
drivePath="${VIRTUAL_DRIVER_PATH}/${driveSize}MB.hds" drivePath="${VIRTUAL_DRIVER_PATH}/${driveSize}MB.hds"
if [ ! -f $drivePath ]; then if [ ! -f "$drivePath" ]; then
echo "Creating a ${driveSize}MB Drive" echo "Creating a ${driveSize}MB Drive"
truncate --size ${driveSize}m $drivePath truncate --size "${driveSize}m" "$drivePath"
echo "Formatting drive with HFS" echo "Formatting drive with HFS"
formatDrive "$drivePath" "$driveName" formatDrive "$drivePath" "$driveName"
@ -319,17 +323,17 @@ function setupWiredNetworking() {
LAN_INTERFACE=$SELECTED LAN_INTERFACE=$SELECTED
fi fi
if [ $(grep -c "^denyinterfaces" /etc/dhcpcd.conf) -ge 1 ]; then if [ "$(grep -c "^denyinterfaces" /etc/dhcpcd.conf)" -ge 1 ]; then
echo "WARNING: Network forwarding may already have been configured. Proceeding will overwrite the configuration." echo "WARNING: Network forwarding may already have been configured. Proceeding will overwrite the configuration."
echo "Press enter to continue or CTRL-C to exit" echo "Press enter to continue or CTRL-C to exit"
read REPLY read REPLY
sudo sed -i /^denyinterfaces/d /etc/dhcpcd.conf sudo sed -i /^denyinterfaces/d /etc/dhcpcd.conf
fi fi
sudo echo "denyinterfaces $LAN_INTERFACE" >> /etc/dhcpcd.conf sudo -c 'echo "denyinterfaces $LAN_INTERFACE" >> /etc/dhcpcd.conf'
echo "Modified /etc/dhcpcd.conf" echo "Modified /etc/dhcpcd.conf"
# default config file is made for eth0, this will set the right net interface # default config file is made for eth0, this will set the right net interface
sudo bash -c 'sed s/eth0/'"$LAN_INTERFACE"'/g /home/pi/RASCSI/src/raspberrypi/os_integration/rascsi_bridge > /etc/network/interfaces.d/rascsi_bridge' sudo bash -c 'sed s/eth0/'"$LAN_INTERFACE"'/g '"$BASE"'/src/raspberrypi/os_integration/rascsi_bridge > /etc/network/interfaces.d/rascsi_bridge'
echo "Modified /etc/network/interfaces.d/rascsi_bridge" echo "Modified /etc/network/interfaces.d/rascsi_bridge"
echo "Configuration completed!" echo "Configuration completed!"
@ -378,7 +382,7 @@ function setupWirelessNetworking() {
fi fi
if [ $(grep -c "^net.ipv4.ip_forward=1" /etc/sysctl.conf) -ge 1 ]; then if [ "$(grep -c "^net.ipv4.ip_forward=1" /etc/sysctl.conf)" -ge 1 ]; then
echo "WARNING: Network forwarding may already have been configured. Proceeding will overwrite the configuration." echo "WARNING: Network forwarding may already have been configured. Proceeding will overwrite the configuration."
echo "Press enter to continue or CTRL-C to exit" echo "Press enter to continue or CTRL-C to exit"
read REPLY read REPLY
@ -394,11 +398,11 @@ function setupWirelessNetworking() {
sudo iptables -P INPUT ACCEPT sudo iptables -P INPUT ACCEPT
sudo iptables -P OUTPUT ACCEPT sudo iptables -P OUTPUT ACCEPT
sudo iptables -P FORWARD ACCEPT sudo iptables -P FORWARD ACCEPT
sudo iptables -t nat -A POSTROUTING -o $WLAN_INTERFACE -s $ROUTING_ADDRESS -j MASQUERADE sudo iptables -t nat -A POSTROUTING -o "$WLAN_INTERFACE" -s "$ROUTING_ADDRESS" -j MASQUERADE
# Check if iptables-persistent is installed # Check if iptables-persistent is installed
IPTABLES_PERSISTENT=$(dpkg -s iptables-persistent | grep Status | grep -c "install ok") IPTABLES_PERSISTENT=$(dpkg -s iptables-persistent | grep Status | grep -c "install ok")
if [ $IPTABLES_PERSISTENT -eq 0 ]; then if [ "$IPTABLES_PERSISTENT" -eq 0 ]; then
sudo apt-get install iptables-persistent --assume-yes sudo apt-get install iptables-persistent --assume-yes
else else
sudo iptables-save --file /etc/iptables/rules.v4 sudo iptables-save --file /etc/iptables/rules.v4
@ -543,8 +547,8 @@ function showMenu() {
# parse arguments # parse arguments
while [ "$1" != "" ]; do while [ "$1" != "" ]; do
PARAM=`echo $1 | awk -F= '{print $1}'` PARAM=$(echo "$1" | awk -F= '{print $1}')
VALUE=`echo $1 | awk -F= '{print $2}'` VALUE=$(echo "$1" | awk -F= '{print $2}')
case $PARAM in case $PARAM in
-c | --connect_type) -c | --connect_type)
CONNECT_TYPE=$VALUE CONNECT_TYPE=$VALUE

View File

@ -2,7 +2,7 @@
set -e set -e
# set -x # Uncomment to Debug # set -x # Uncomment to Debug
cd $(dirname $0) cd "$(dirname "$0")"
# verify packages installed # verify packages installed
ERROR=0 ERROR=0
if ! command -v genisoimage &> /dev/null ; then if ! command -v genisoimage &> /dev/null ; then