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
# Author @sonique6784
@ -46,8 +46,9 @@ logo="""
echo -e $logo
}
VIRTUAL_DRIVER_PATH=/home/pi/images
VIRTUAL_DRIVER_PATH="$HOME/images"
CFG_PATH="$HOME/.config/rascsi"
BASE="$HOME/RASCSI"
HFS_FORMAT=/usr/bin/hformat
HFDISK_BIN=/usr/bin/hfdisk
LIDO_DRIVER=~/RASCSI/lido-driver.img
@ -63,8 +64,8 @@ function initialChecks() {
exit 1
fi
if [ ! -d ~/RASCSI ]; then
echo "You must checkout RASCSI repo into /home/pi/RASCSI"
if [ ! -d "$BASE" ]; then
echo "You must checkout RASCSI repo into $BASE"
echo "$ git clone git@github.com:akuker/RASCSI.git"
exit 2
fi
@ -87,14 +88,15 @@ function installRaScsi() {
SYSTEMD_BACKUP=false
fi
cd ~/RASCSI/src/raspberrypi
cd ~/RASCSI/src/raspberrypi || exit 1
make clean
make all CONNECT_TYPE=${CONNECT_TYPE-FULLSPEC}
sudo make install CONNECT_TYPE=${CONNECT_TYPE-FULLSPEC}
make all CONNECT_TYPE="${CONNECT_TYPE-FULLSPEC}"
sudo make install CONNECT_TYPE="${CONNECT_TYPE-FULLSPEC}"
sudoIsReady=$(sudo grep -c "rascsi" /etc/sudoers)
if [ $sudoIsReady = "0" ]; then
if [ "$sudoIsReady" = "0" ]; then
sudo bash -c 'echo "
# Allow the web server to restart the 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)
function installRaScsiWebInterface() {
if [ -f ~/RASCSI/src/web/rascsi_interface_pb2.py ]; then
rm ~/RASCSI/src/web/rascsi_interface_pb2.py
echo "Deleting old Python protobuf library rascsi_interface_pb2.py"
fi
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/502.html /var/www/html/502.html
@ -135,20 +139,20 @@ function installRaScsiWebInterface() {
}
function createImagesDir() {
if [ -d $VIRTUAL_DRIVER_PATH ]; then
if [ -d "$VIRTUAL_DRIVER_PATH" ]; then
echo "The $VIRTUAL_DRIVER_PATH directory already exists."
else
echo "The $VIRTUAL_DRIVER_PATH directory does not exist; creating..."
mkdir -p $VIRTUAL_DRIVER_PATH
chmod -R 775 $VIRTUAL_DRIVER_PATH
mkdir -p "$VIRTUAL_DRIVER_PATH"
chmod -R 775 "$VIRTUAL_DRIVER_PATH"
fi
if [ -d $CFG_PATH ]; then
if [ -d "$CFG_PATH" ]; then
echo "The $CFG_PATH directory already exists."
else
echo "The $CFG_PATH directory does not exist; creating..."
mkdir -p $CFG_PATH
chmod -R 775 $CFG_PATH
mkdir -p "$CFG_PATH"
chmod -R 775 "$CFG_PATH"
fi
}
@ -164,7 +168,7 @@ function stopOldWebInterface() {
function updateRaScsiGit() {
echo "Updating checked out branch $GIT_REMOTE/$GIT_BRANCH"
cd ~/RASCSI
cd ~/RASCSI || exit 1
stashed=0
if [[ $(git diff --stat) != '' ]]; then
echo 'There are local changes, we will stash and reapply them.'
@ -217,7 +221,7 @@ function formatDrive() {
if [ ! -x $HFDISK_BIN ]; then
# Clone, compile and install 'hfdisk', partition tool
git clone git://www.codesrc.com/git/hfdisk.git
cd hfdisk
cd hfdisk || exit 1
make
sudo cp hfdisk /usr/bin/hfdisk
@ -283,12 +287,12 @@ function createDrive() {
driveSize=$1
driveName=$2
mkdir -p $VIRTUAL_DRIVER_PATH
mkdir -p "$VIRTUAL_DRIVER_PATH"
drivePath="${VIRTUAL_DRIVER_PATH}/${driveSize}MB.hds"
if [ ! -f $drivePath ]; then
if [ ! -f "$drivePath" ]; then
echo "Creating a ${driveSize}MB Drive"
truncate --size ${driveSize}m $drivePath
truncate --size "${driveSize}m" "$drivePath"
echo "Formatting drive with HFS"
formatDrive "$drivePath" "$driveName"
@ -319,17 +323,17 @@ function setupWiredNetworking() {
LAN_INTERFACE=$SELECTED
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 "Press enter to continue or CTRL-C to exit"
read REPLY
sudo sed -i /^denyinterfaces/d /etc/dhcpcd.conf
fi
sudo echo "denyinterfaces $LAN_INTERFACE" >> /etc/dhcpcd.conf
sudo -c 'echo "denyinterfaces $LAN_INTERFACE" >> /etc/dhcpcd.conf'
echo "Modified /etc/dhcpcd.conf"
# 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 "Configuration completed!"
@ -378,7 +382,7 @@ function setupWirelessNetworking() {
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 "Press enter to continue or CTRL-C to exit"
read REPLY
@ -394,11 +398,11 @@ function setupWirelessNetworking() {
sudo iptables -P INPUT ACCEPT
sudo iptables -P OUTPUT 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
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
else
sudo iptables-save --file /etc/iptables/rules.v4
@ -543,8 +547,8 @@ function showMenu() {
# parse arguments
while [ "$1" != "" ]; do
PARAM=`echo $1 | awk -F= '{print $1}'`
VALUE=`echo $1 | awk -F= '{print $2}'`
PARAM=$(echo "$1" | awk -F= '{print $1}')
VALUE=$(echo "$1" | awk -F= '{print $2}')
case $PARAM in
-c | --connect_type)
CONNECT_TYPE=$VALUE

View File

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