installer: Added supporting Ubuntu and Raspbian
This commit is contained in:
113
installer/src/install.sh
Executable file
113
installer/src/install.sh
Executable file
@ -0,0 +1,113 @@
|
||||
#!/bin/bash
|
||||
|
||||
source install.common
|
||||
|
||||
function get_distro_info {
|
||||
debug "Checking running distribution..."
|
||||
if [ -f /etc/lsb-release ]; then
|
||||
debug "Reading /etc/lsb-release..."
|
||||
source /etc/lsb-release
|
||||
echo "$DISTRIB_ID|$DISTRIB_RELEASE|$DISTRIB_CODENAME"
|
||||
elif [ -f /etc/os-release ]; then
|
||||
debug "Reading /etc/os-release..."
|
||||
source /etc/os-release
|
||||
echo "$ID|$VERSION_ID|$VERSION_CODENAME"
|
||||
else
|
||||
error "Unable to detect distribution, dependencies can not be installed."
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
function get_distro_deps_script {
|
||||
DISTRO="$(get_distro_info)"
|
||||
ID="$(echo $DISTRO | cut -d'|' -f1)"
|
||||
case "$ID" in
|
||||
"Ubuntu")
|
||||
echo "deps/ubuntu.sh"
|
||||
;;
|
||||
"Raspbian"|"raspbian")
|
||||
echo "deps/raspbian.sh"
|
||||
;;
|
||||
*)
|
||||
error "Unsupported distribution ID: '$ID'"
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
function do_configure {
|
||||
|
||||
DEPS_SCRIPT="$(get_distro_deps_script)"
|
||||
if [ ! -z "$DEPS_SCRIPT" ]; then
|
||||
info "Installing dependencies..."
|
||||
source $DEPS_SCRIPT
|
||||
else
|
||||
error "Unable to configure dependencies"
|
||||
if [ -z "$(which php)" ]; then
|
||||
error "PHP not installed, the installer can not continue."
|
||||
fi
|
||||
fi
|
||||
|
||||
info "Configuring PHP..."
|
||||
source deps/php.sh
|
||||
|
||||
}
|
||||
|
||||
function do_install {
|
||||
|
||||
if [ -f $1/hotfix ]; then
|
||||
debug "Hotfix already installed, or at least something was found matching $1/hotfix"
|
||||
debug "Nothing will be copied."
|
||||
else
|
||||
debug "Installing into $1"
|
||||
cp hotfix $1/hotfix
|
||||
fi
|
||||
chmod +x $1/hotfix
|
||||
|
||||
debug "Verifying that hotfix is callable..."
|
||||
source ~/.profile &>/dev/null
|
||||
source ~/.bashrc &>/dev/null
|
||||
bash -c hotfix &>/dev/null
|
||||
if [ $? == 0 ]; then
|
||||
info "Hotfix successfully installed!"
|
||||
else
|
||||
echo 'test -d "$1" && export PATH="$1:$PATH"' >> ~/.bashrc
|
||||
info "Your .bashrc file has been updated to include $1 on the PATH."
|
||||
fi
|
||||
info "Please re-open your terminal if the hotfix command doesn't work immediately."
|
||||
|
||||
}
|
||||
|
||||
info "Welcome to the automagic Hotfix installer."
|
||||
debug "For security reasons, this installer will not install any signing keys. See the README.md for more information."
|
||||
|
||||
question "Where would you like to install Hotfix?"
|
||||
hint "You probably want to leave this as it is and just press enter, unless you know what you are doing."
|
||||
hint "If you wish to abort the installation, ress Ctrl-C now."
|
||||
echo -n " Install directory [$HOME/bin]: "
|
||||
read INSTALL_PATH
|
||||
if [ -z $INSTALL_PATH ]; then
|
||||
INSTALL_PATH="$HOME/bin"
|
||||
fi
|
||||
if [ ! -d $INSTALL_PATH ]; then
|
||||
question "The directory $INSTALL_PATH does not exist. Do you want to create it?"
|
||||
echo -n " Create directory? [Y/n]: "
|
||||
read $CONFIRMATION
|
||||
case "$CONFIRMATION" in
|
||||
"n|N|no")
|
||||
error "Directory not created. Aborting."
|
||||
exit
|
||||
;;
|
||||
*)
|
||||
mkdir $INSTALL_PATH
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
info "Configuring system..."
|
||||
do_configure
|
||||
|
||||
info "Installing hotfix..."
|
||||
do_install "$INSTALL_PATH"
|
Reference in New Issue
Block a user