mirror of
https://github.com/akuker/RASCSI.git
synced 2024-11-29 16:49:55 +00:00
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:
parent
f7cdc917ad
commit
5bd8807c9e
@ -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
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user