kopia lustrzana https://github.com/jprochazka/adsb-receiver
135 wiersze
4.4 KiB
Bash
Executable File
135 wiersze
4.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
### VARIABLES
|
|
|
|
RECIEVER_ROOT_DIRECTORY="${PWD}"
|
|
RECEIVER_BASH_DIRECTORY="${RECIEVER_ROOT_DIRECTORY}/bash"
|
|
RECEIVER_BUILD_DIRECTORY="${RECIEVER_ROOT_DIRECTORY}/build"
|
|
|
|
# DECODER SPECIFIC VARIABLES
|
|
|
|
BETA_NAME="Kalibrate"
|
|
BETA_GITHUB_URL="https://github.com/steve-m/kalibrate-rtl.git"
|
|
|
|
## INCLUDE EXTERNAL SCRIPTS
|
|
|
|
source ${RECEIVER_BASH_DIRECTORY}/variables.sh
|
|
source ${RECEIVER_BASH_DIRECTORY}/functions.sh
|
|
|
|
# Should be moved to functions.sh.
|
|
function CheckReturnCode {
|
|
LINE=$((`stty size | awk '{print $1}'` - 1))
|
|
COL=$((`stty size | awk '{print $2}'` - 8))
|
|
tput cup "${LINE}" "${COL}"
|
|
if [[ $? -eq 0 ]] ; then
|
|
echo -e "\e[97m[\e[32mDone\e[97m]\e[39m\n"
|
|
else
|
|
echo -e "\e[97m[\e[31mError\e[97m]\e[39m\n"
|
|
echo -e "\e[39m ${ACTION}\n"
|
|
fi
|
|
}
|
|
|
|
# Source the automated install configuration file if this is an automated installation.
|
|
if [[ ${RECEIVER_AUTOMATED_INSTALL} = "true" ]] ; then
|
|
source ${RECEIVER_CONFIGURATION_FILE}
|
|
fi
|
|
|
|
## BEGIN SETUP
|
|
|
|
if [[ ${RECEIVER_AUTOMATED_INSTALL} = "false" ]] ; then
|
|
clear
|
|
echo -e "\n\e[91m ${RECEIVER_PROJECT_TITLE}"
|
|
fi
|
|
echo -e ""
|
|
echo -e "\e[92m Setting up ${BETA_NAME}...\e[97m"
|
|
echo -e ""
|
|
echo -e "\e[93m ------------------------------------------------------------------------------\e[96m"
|
|
echo -e ""
|
|
#
|
|
|
|
## CHECK FOR PREREQUISITE PACKAGES
|
|
|
|
echo -e "\e[95m Installing packages needed to fulfill dependencies for ${BETA_NAME}...\e[97m"
|
|
echo -e ""
|
|
# Required by install script.
|
|
CheckPackage git
|
|
CheckPackage curl
|
|
# Required for USB SDR devices.
|
|
CheckPackage librtlsdr-dev
|
|
CheckPackage libusb-1.0-0-dev
|
|
CheckPackage rtl-sdr
|
|
# Required for Kalibrate.
|
|
CheckPackage autoconf
|
|
CheckPackage automake
|
|
CheckPackage libfftw3-3
|
|
CheckPackage libfftw3-dev
|
|
CheckPackage libtool
|
|
echo -e ""
|
|
echo -e "\e[95m Configuring this device to run the ${BETA_NAME} binaries...\e[97m"
|
|
echo -e ""
|
|
|
|
# Download and compile Kalibrate.
|
|
if [[ true ]] ; then
|
|
BETA_GITHUB_URL_SHORT=`echo ${BETA_GITHUB_URL} | sed -e 's/http:\/\///g' -e 's/https:\/\///g' | tr '[A-Z]' '[a-z]'`
|
|
BETA_GITHUB_PROJECT=`echo ${BETA_GITHUB_URL} | awk -F "/" '{print $NF}' | sed -e 's/\.git$//g'`
|
|
BETA_BUILD_DIRECTORY="${RECEIVER_BUILD_DIRECTORY}/${BETA_GITHUB_PROJECT}"
|
|
|
|
# Check if Kalibrate is already present and located where we would expect it to be.
|
|
if [[ -x `which kal` ]] && [[ -d "${BETA_BUILD_DIRECTORY}" ]] ; then
|
|
# Then perhaps we can update from github.
|
|
echo -en "\e[33m Updating ${BETA_GITHUB_PROJECT} from \"\e[37m${BETA_GITHUB_URL_SHORT}\e[33m\"...\e[97m"
|
|
cd ${BETA_BUILD_DIRECTORY}
|
|
ACTION=$(git remote update 2>&1)
|
|
if [[ `git status -uno | grep -c "is behind"` -gt 0 ]] ; then
|
|
# Local branch is behind remote so update.
|
|
ACTION=$(git pull 2>&1)
|
|
DO_INSTALL_FROM_GIT="true"
|
|
fi
|
|
else
|
|
# Otherwise clone from github.
|
|
echo -en "\e[33m Building ${BETA_GITHUB_PROJECT} from \"\e[37m${BETA_GITHUB_URL_SHORT}\e[33m\"...\e[97m"
|
|
ACTION=$(git clone https://${BETA_GITHUB_URL_SHORT} ${BETA_BUILD_DIRECTORY} 2>&1)
|
|
DO_INSTALL_FROM_GIT="true"
|
|
fi
|
|
if [[ ${DO_INSTALL_FROM_GIT} = "true" ]] ; then
|
|
# Prepare to build from source.
|
|
cd ${BETA_BUILD_DIRECTORY}
|
|
# And remove previous binaries.
|
|
if [[ `ls -l *.h 2>/dev/null | grep -c "\.h"` -gt 0 ]] ; then
|
|
ACTION=$(sudo make -C ${BETA_BUILD_DIRECTORY} clean 2>&1)
|
|
fi
|
|
if [[ -x "bootstrap" ]] ; then
|
|
ACTION=$(./bootstrap 2>&1)
|
|
fi
|
|
if [[ -x "configure" ]] ; then
|
|
ACTION=$(./configure ${BETA_CFLAGS} 2>&1)
|
|
fi
|
|
if [[ -f "Makefile" ]] ; then
|
|
ACTION=$(make -C ${BETA_BUILD_DIRECTORY} 2>&1)
|
|
fi
|
|
if [[ `grep -c "^install:" Makefile` -gt 0 ]] ; then
|
|
ACTION=$(sudo make -C ${BETA_BUILD_DIRECTORY} install 2>&1)
|
|
fi
|
|
fi
|
|
CheckReturnCode
|
|
unset DO_INSTALL_FROM_GIT
|
|
cd ${BETA_BUILD_DIRECTORY}
|
|
fi
|
|
|
|
## SETUP COMPLETE
|
|
|
|
# Return to the project root directory.
|
|
echo -en "\e[94m Returning to ${RECEIVER_PROJECT_TITLE} root directory...\e[97m"
|
|
cd ${RECIEVER_ROOT_DIRECTORY}
|
|
ACTION=${PWD}
|
|
CheckReturnCode
|
|
|
|
echo -e "\e[93m ------------------------------------------------------------------------------\n"
|
|
echo -e "\e[92m ${BETA_NAME} setup is complete.\e[39m"
|
|
echo -e ""
|
|
if [[ ${RECEIVER_AUTOMATED_INSTALL} = "false" ]] ; then
|
|
read -p "Press enter to continue..." CONTINUE
|
|
fi
|
|
|
|
exit 0
|