Started over on the installer.
This commit is contained in:
parent
780a045672
commit
090af4bbba
2 changed files with 313 additions and 171 deletions
|
@ -92,7 +92,7 @@ function doBuild() {
|
||||||
--disable-music-opus \
|
--disable-music-opus \
|
||||||
--disable-music-mp3 \
|
--disable-music-mp3 \
|
||||||
--disable-music-mp3-mpg123
|
--disable-music-mp3-mpg123
|
||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
cd ..
|
cd ..
|
||||||
}
|
}
|
||||||
|
@ -141,7 +141,7 @@ if [ "${ARCH}x" == "allx" ] || [ "${ARCH}x" == "windows64x" ]; then
|
||||||
CROSS=x86_64-w64-mingw32
|
CROSS=x86_64-w64-mingw32
|
||||||
export CC="${CROSS}-gcc -static-libgcc"
|
export CC="${CROSS}-gcc -static-libgcc"
|
||||||
export CXX="${CROSS}-g++ -static-libstdc++"
|
export CXX="${CROSS}-g++ -static-libstdc++"
|
||||||
doBuild
|
doBuild
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "${ARCH}x" == "allx" ] || [ "${ARCH}x" == "windows32x" ]; then
|
if [ "${ARCH}x" == "allx" ] || [ "${ARCH}x" == "windows32x" ]; then
|
||||||
|
@ -182,4 +182,3 @@ export CC=""
|
||||||
rm -rf build
|
rm -rf build
|
||||||
popd
|
popd
|
||||||
set +x
|
set +x
|
||||||
|
|
||||||
|
|
|
@ -1,188 +1,331 @@
|
||||||
#!/bin/bash -e
|
#!/bin/bash -e
|
||||||
|
|
||||||
|
#
|
||||||
# --- COLLECT AND CHECK COMMAND LINE ARGUMENTS
|
# JoeyLib
|
||||||
|
# Copyright (C) 2018-2019 Scott Duensing <scott@kangaroopunch.com>
|
||||||
usage() {
|
#
|
||||||
echo "Usage: $0 [-o PathToORCA.iso] [-i PathForInstall]"
|
# This software is provided 'as-is', without any express or implied
|
||||||
exit 1
|
# warranty. In no event will the authors be held liable for any damages
|
||||||
}
|
# arising from the use of this software.
|
||||||
|
#
|
||||||
while getopts ":o:i:" OPT; do
|
# Permission is granted to anyone to use this software for any purpose,
|
||||||
case ${OPT} in
|
# including commercial applications, and to alter it and redistribute it
|
||||||
o )
|
# freely, subject to the following restrictions:
|
||||||
ORCA=${OPTARG}
|
#
|
||||||
;;
|
# 1. The origin of this software must not be misrepresented; you must not
|
||||||
i )
|
# claim that you wrote the original software. If you use this software
|
||||||
INSTALL=${OPTARG}
|
# in a product, an acknowledgment in the product documentation would be
|
||||||
;;
|
# appreciated but is not required.
|
||||||
\? )
|
# 2. Altered source versions must be plainly marked as such, and must not be
|
||||||
echo "Invalid option: ${OPTARG}"
|
# misrepresented as being the original software.
|
||||||
usage
|
# 3. This notice may not be removed or altered from any source distribution.
|
||||||
;;
|
#
|
||||||
: )
|
|
||||||
echo "Invalid option: ${OPTARG} requires an argument"
|
|
||||||
usage
|
|
||||||
;;
|
|
||||||
* )
|
|
||||||
usage
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
shift $((OPTIND -1))
|
|
||||||
|
|
||||||
if [ -z "${ORCA}" ] || [ -z "${INSTALL}" ]; then
|
|
||||||
usage
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "${ORCA}" ]; then
|
|
||||||
echo "Must specify the location of the ORCA ISO."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -e "${ORCA}" ]; then
|
|
||||||
echo "Unable to locate the ORCA ISO at \"${ORCA}\"."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
ORCA=`realpath "${ORCA}"`
|
|
||||||
|
|
||||||
if [ -z "${INSTALL}" ]; then
|
|
||||||
echo "Must specify the location to install the JoeyLib SDK."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
INSTALL=`realpath "${INSTALL}"`
|
|
||||||
|
|
||||||
if [ -e "${INSTALL}" ]; then
|
|
||||||
echo "The specified installation path, \"${INSTALL}\" already exists."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# --- INSTALL NEEDED PACKAGES
|
#
|
||||||
|
# Global variables
|
||||||
getPackages() {
|
#
|
||||||
sudo dpkg --add-architecture i386
|
G_TITLE="JoeyLib Installer"
|
||||||
sudo apt-get update
|
G_PARENT=
|
||||||
sudo apt-get -y install cmake ragel hfsplus hfsutils hfsprogs libreadline-dev libedit-dev
|
|
||||||
sudo apt-get -y install build-essential git mercurial texinfo libtool autoconf automake
|
|
||||||
sudo apt-get -y install gcc-multilib g++-multilib mingw-w64 gdb-mingw-w64 clang llvm-dev libxml2-dev
|
|
||||||
sudo apt-get -y install uuid-dev libssl-dev bash patch make tar xz-utils bzip2 gzip sed cpio
|
|
||||||
sudo apt-get -y install libpulse-dev{,:i386} libasound-dev{,:i386}
|
|
||||||
sudo apt-get -y install libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libfreetype6-dev libpcap0.8-dev
|
|
||||||
sudo apt-get -y install php-cli
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
# --- INSTALL GOLDENGATE
|
function buildPCDeps() {
|
||||||
|
local DIST=$1
|
||||||
|
local PREFIX=$2
|
||||||
|
local CROSS=$3
|
||||||
|
local CC_EXPORT=$4
|
||||||
|
local CXX_EXPORT=$5
|
||||||
|
local CC_OLD=$CC
|
||||||
|
local CXX_OLD=$CXX
|
||||||
|
local SRC="${G_PARENT}/joeylib/joeylib/src"
|
||||||
|
local G_CFLAGS="-Wall -D_REENTRANT_ -I${SRC} -c"
|
||||||
|
|
||||||
installGoldenGate() {
|
echo ""
|
||||||
#git clone git@gitlab.com:GoldenGate/GoldenGate.git
|
tBoldBox tCYAN "NOTE: If an error is encountered, installer will exit!"
|
||||||
if [ ! -d GoldenGate ]; then
|
|
||||||
echo "Unable to clone the GoldenGate repository!"
|
# Clear any existing built libraries
|
||||||
echo "Must be a paying member of the GoldenGate project!"
|
if [[ -d ${PREFIX} ]]; then
|
||||||
echo "See: https://goldengate.gitlab.io/about/"
|
rm -rf ${PREFIX}
|
||||||
exit 1
|
|
||||||
fi
|
fi
|
||||||
pushd GoldenGate
|
mkdir -p ${PREFIX}
|
||||||
git submodule init
|
|
||||||
git submodule update
|
pushd deps >& /dev/null
|
||||||
PREFIX=`pwd`/installed
|
|
||||||
mkdir -p build
|
export CC="${CC_EXPORT}"
|
||||||
cd build
|
export CXX="${CXX_EXPORT}"
|
||||||
#cmake -DCMAKE_INSTALL_PREFIX=${PREFIX} .. | tee make.out
|
|
||||||
#make | tee -a make.out
|
# SDL2
|
||||||
if [ ! -e bin/iix ]; then
|
if [[ ! -d SDL ]]; then
|
||||||
echo "Failed to build GoldenGate."
|
echo ""
|
||||||
exit 1
|
tBoldBox tPURPLE "Building SDL2"
|
||||||
|
echo ""
|
||||||
|
hg clone http://hg.libsdl.org/SDL
|
||||||
|
clearPCDepsBuild
|
||||||
|
pushd build >& /dev/null
|
||||||
|
../SDL/configure \
|
||||||
|
--target="${CROSS}" \
|
||||||
|
--host="${CROSS}" \
|
||||||
|
--build=x86_64-linux \
|
||||||
|
--enable-static \
|
||||||
|
--disable-shared \
|
||||||
|
--prefix=${PREFIX}
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
popd >& /dev/null
|
||||||
fi
|
fi
|
||||||
cp -f bin/{iix,dumpobj,opus-extractor} "${IIGS}/."
|
|
||||||
popd
|
|
||||||
}
|
|
||||||
|
|
||||||
|
# libModPlug
|
||||||
# --- INSTALL ORCA SUITE ON HFS VOLUME
|
if [[ ! -d libmodplug ]]; then
|
||||||
|
echo ""
|
||||||
updateOrca() {
|
tBoldBox tPURPLE "Building libModPlug"
|
||||||
COMPONENT=$1
|
echo ""
|
||||||
URL=`curl -s https://api.github.com/repos/byteworksinc/${COMPONENT}/releases \
|
git clone https://github.com/Konstanty/libmodplug.git
|
||||||
| grep "browser_download_url.*2mg" \
|
pushd libmodplug >& /dev/null
|
||||||
| cut -d : -f 2,3 \
|
libtoolize --force
|
||||||
| tr -d \" \
|
aclocal
|
||||||
| head -n 1`
|
autoheader
|
||||||
FILE=${URL##*/}
|
automake --force-missing --add-missing
|
||||||
#wget ${URL}
|
autoconf
|
||||||
${IIGS}/opus-extractor -v -s / ${FILE} ${IIGS}/ORCA
|
popd >& /dev/null
|
||||||
}
|
clearPCDepsBuild
|
||||||
|
pushd build >& /dev/null
|
||||||
installOrca() {
|
../libmodplug/configure \
|
||||||
O=${IIGS}/mountORCA.sh
|
--target="${CROSS}" \
|
||||||
echo "#!/bin/bash" > "${O}"
|
--host="${CROSS}" \
|
||||||
echo "IIX=${IIGS}" >> "${O}"
|
--build=x86_64-linux \
|
||||||
echo "fsck.hfsplus \${IIX}/hfsDrive.img" >> "${O}"
|
--enable-static \
|
||||||
echo "IIGSDISK=\$(sudo losetup --partscan --find --show \${IIX}/hfsDrive.img)" >> "${O}"
|
--disable-shared \
|
||||||
echo "sudo mount \${IIGSDISK} \${IIX}/ORCA" >> "${O}"
|
--prefix=${PREFIX}
|
||||||
echo "echo LOOP=\${IIGSDISK} > \${IIX}/lastMount.cfg" >> "${O}"
|
make
|
||||||
echo "echo MOUNT=\${IIX}/ORCA >> \${IIX}/lastMount.cfg" >> "${O}"
|
make install
|
||||||
chmod +x ${O}
|
popd >& /dev/null
|
||||||
O=${IIGS}/unmountORCA.sh
|
|
||||||
echo "#!/bin/bash" > "${O}"
|
|
||||||
echo "IIX=${IIGS}" >> "${O}"
|
|
||||||
echo "source \${IIX}/lastMount.cfg" >> "${O}"
|
|
||||||
echo "sudo umount \${MOUNT}" >> "${O}"
|
|
||||||
echo "sudo losetup -d \${LOOP}" >> "${O}"
|
|
||||||
echo "sudo rm \${IIX}/lastMount.cfg" >> "${O}"
|
|
||||||
chmod +x ${O}
|
|
||||||
fallocate -l 32M "${IIGS}/hfsDrive.img"
|
|
||||||
mkfs.hfs -v IIgs "${IIGS}/hfsDrive.img"
|
|
||||||
mkdir -p "${IIGS}/ORCA"
|
|
||||||
${IIGS}/mountORCA.sh
|
|
||||||
sudo chown -R `id -ru`:`id -rg` "${IIGS}/ORCA"
|
|
||||||
isoinfo -i "${ORCA}" -x /FOR_EMUL/BYTEWORK.S\;1 > BYTEWORKS
|
|
||||||
${IIGS}/opus-extractor -v BYTEWORKS ${IIGS}/ORCA
|
|
||||||
updateOrca ORCA-C
|
|
||||||
${IIGS}/unmountORCA.sh
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
# --- INSTALL GSPLUS
|
|
||||||
|
|
||||||
installGsPlus() {
|
|
||||||
#git clone https://github.com/digarok/gsplus.git
|
|
||||||
pushd gsplus/src
|
|
||||||
ln -sf vars_x86linux_sdl2 vars
|
|
||||||
#make
|
|
||||||
if [ ! -e gsplus ]; then
|
|
||||||
echo "Failed to build GSplus."
|
|
||||||
exit 1
|
|
||||||
fi
|
fi
|
||||||
mkdir -p "${IIGS}/gsplus"
|
|
||||||
cp -f gsplus "${IIGS}/gsplus/."
|
# SDL_mixer
|
||||||
popd
|
if [[ ! -d SDL_mixer ]]; then
|
||||||
#wget http://www.whatisthe2gs.apple2.org.za/files/rom3.zip
|
echo ""
|
||||||
unzip rom3.zip
|
tBoldBox tPURPLE "Building SDL_mixer"
|
||||||
mv -f APPLE2GS.ROM2 "${IIGS}/gsplus/ROM.03"
|
echo ""
|
||||||
#wget http://www.whatisthe2gs.apple2.org.za/files/harddrive_image.zip
|
hg clone http://hg.libsdl.org/SDL_mixer
|
||||||
unzip harddrive_image.zip
|
clearPCDepsBuild
|
||||||
mv -f "System 6 and Free Games.hdv" "${IIGS}/gsplus/System601.po"
|
pushd build >& /dev/null
|
||||||
echo "s7d1 = System601.po\n\ng_limit_speed = 0\n" > "${IIGS}/gsplus/config.txt"
|
MODPLUG_CFLAGS="-I${PREFIX}/include -DMODPLUG_STATIC" \
|
||||||
echo "s7d1 = System601.po\ns7d2 = /tmp/IIgs/import.po\n" > "${IIGS}/gsplus/IIgsTest.cfg"
|
MODPLUG_LIBS="-L${PREFIX}/lib -lmodplug -lstdc++ -lm" \
|
||||||
|
../SDL_mixer/configure \
|
||||||
|
--target="${CROSS}" \
|
||||||
|
--host="${CROSS}" \
|
||||||
|
--build=x86_64-linux \
|
||||||
|
--enable-static \
|
||||||
|
--disable-shared \
|
||||||
|
--prefix=${PREFIX} \
|
||||||
|
--with-sdl-prefix=${PREFIX} \
|
||||||
|
--disable-music-cmd \
|
||||||
|
--disable-music-wave \
|
||||||
|
--enable-music-mod-modplug \
|
||||||
|
--disable-music-mod-modplug-shared \
|
||||||
|
--disable-music-mod-mikmod \
|
||||||
|
--disable-music-midi \
|
||||||
|
--disable-music-ogg \
|
||||||
|
--disable-music-flac \
|
||||||
|
--disable-music-opus \
|
||||||
|
--disable-music-mp3 \
|
||||||
|
--disable-music-mp3-mpg123
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
popd >& /dev/null
|
||||||
|
fi
|
||||||
|
|
||||||
|
export CC="${CC_OLD}"
|
||||||
|
export CXX="${CXX_OLD}"
|
||||||
|
|
||||||
|
# JoeyLib
|
||||||
|
echo ""
|
||||||
|
tBoldBox tPURPLE "Building JoeyLib"
|
||||||
|
echo ""
|
||||||
|
if [[ -d "${DIST}" ]]; then
|
||||||
|
rm -rf "${DIST}"
|
||||||
|
fi
|
||||||
|
mkdir -p "${DIST}"
|
||||||
|
clearPCDepsBuild
|
||||||
|
pushd build >& /dev/null
|
||||||
|
${CC_EXPORT} ${G_CFLAGS} -o jPC.o ${SRC}/jPC.c
|
||||||
|
${CC_EXPORT} ${G_CFLAGS} -o joey.o ${SRC}/joey.c
|
||||||
|
ar x ${PREFIX}/lib/libSDL2.a
|
||||||
|
ar x ${PREFIX}/lib/libSDL2_mixer.a
|
||||||
|
ar x ${PREFIX}/lib/libmodplug.a
|
||||||
|
ar rcs ${DIST}/libjoeylib.a *.o
|
||||||
|
cp -f ${SRC}/joey.h ${DIST}/../..
|
||||||
|
cp -f ${SRC}/../joey.pri ${DIST}/../..
|
||||||
|
popd >& /dev/null
|
||||||
|
|
||||||
|
popd >& /dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# --- MAIN
|
function clearPCDepsBuild() {
|
||||||
|
if [[ -d $(pwd)/build ]]; then
|
||||||
|
rm -rf $(pwd)/build
|
||||||
|
fi
|
||||||
|
mkdir -p $(pwd)/build
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function installLinux32() {
|
||||||
|
buildPCDeps \
|
||||||
|
"$(pwd)/../dist/linux/i386" \
|
||||||
|
"$(pwd)/deps/installed/linux/i386" \
|
||||||
|
"x86_64-linux-gnu" \
|
||||||
|
"x86_64-linux-gnu-gcc -m32" \
|
||||||
|
"x86_64-linux-gnu-g++ -m32"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function installLinux64() {
|
||||||
|
buildPCDeps \
|
||||||
|
"$(pwd)/../dist/linux/x64" \
|
||||||
|
"$(pwd)/deps/installed/linux/x64" \
|
||||||
|
"x86_64-linux-gnu" \
|
||||||
|
"x86_64-linux-gnu-gcc" \
|
||||||
|
"x86_64-linux-gnu-g++"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function installWin32() {
|
||||||
|
buildPCDeps \
|
||||||
|
"$(pwd)/../dist/windows/i386" \
|
||||||
|
"$(pwd)/deps/installed/windows/i386" \
|
||||||
|
"i686-w64-mingw32" \
|
||||||
|
"i686-w64-mingw32-gcc -static-libgcc" \
|
||||||
|
""
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function installWin64() {
|
||||||
|
buildPCDeps \
|
||||||
|
"$(pwd)/../dist/windows/x64" \
|
||||||
|
"$(pwd)/deps/installed/windows/x64" \
|
||||||
|
"x86_64-w64-mingw32" \
|
||||||
|
"x86_64-w64-mingw32-gcc -static-libgcc" \
|
||||||
|
"x86_64-w64-mingw32-g++ -static-libstdc++"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function mainMenu() {
|
||||||
|
local ITEMS=(
|
||||||
|
# "IIgs" "Amiga" "ST"
|
||||||
|
"Linux32" "Linux64"
|
||||||
|
"Win32" "Win64"
|
||||||
|
# "macOS32" "macOS64"
|
||||||
|
# "Android" "iOS"
|
||||||
|
)
|
||||||
|
local DESC=(
|
||||||
|
# "Apple IIgs 16" "Commodore Amiga 16" "Atari ST 16"
|
||||||
|
"Linux 32" "Linux 64"
|
||||||
|
"Windows 32" "Windows 64"
|
||||||
|
# "macOS 32" "macOS 64"
|
||||||
|
# "Android 32" "iOS 64"
|
||||||
|
)
|
||||||
|
local TOTAL=${#ITEMS[*]}
|
||||||
|
local MENU=()
|
||||||
|
local X=
|
||||||
|
local CHOICE="x"
|
||||||
|
|
||||||
|
while [[ "${CHOICE}" != "" ]]; do
|
||||||
|
MENU=()
|
||||||
|
for (( X=0; X<=$(( ${TOTAL}-1 )); X++ )); do
|
||||||
|
MENU+=( "${ITEMS[$X]}" )
|
||||||
|
MENU+=( "Install ${DESC[$X]} Bit JoeyLib Library" )
|
||||||
|
done
|
||||||
|
CHOICE=$(
|
||||||
|
set e+
|
||||||
|
whiptail --title "${G_TITLE}" --cancel-button "Exit" --menu "" $(( ${TOTAL}+7 )) 65 ${TOTAL} "${MENU[@]}" 3>&2 2>&1 1>&3
|
||||||
|
set e-
|
||||||
|
)
|
||||||
|
if [[ "${CHOICE}" != "" ]]; then
|
||||||
|
CHOICE="install${CHOICE}"
|
||||||
|
${CHOICE}
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# --- START
|
||||||
|
|
||||||
|
if [[ $EUID -ne 0 ]]; then
|
||||||
|
echo "The installer must be run as root."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
mkdir -p installerWork
|
mkdir -p installerWork
|
||||||
pushd installerWork
|
|
||||||
|
|
||||||
IIGS=${INSTALL}/sdks/IIgs
|
# Do we have Towel yet?
|
||||||
|
if [[ ! -f installerWork/towel/towel.sh ]]; then
|
||||||
|
# Do we have GIT?
|
||||||
|
if [[ "$(which git || true)" == "" ]]; then
|
||||||
|
echo "Installing git..."
|
||||||
|
apt-get -y install git >& /dev/null
|
||||||
|
fi
|
||||||
|
echo "Downloading towel.sh support library..."
|
||||||
|
git clone https://skunkworks.kangaroopunch.com/skunkworks/towel.git installerWork/towel >& /dev/null
|
||||||
|
fi
|
||||||
|
|
||||||
mkdir -p "${IIGS}"
|
# Load Towel
|
||||||
|
source installerWork/towel/towel.sh
|
||||||
|
|
||||||
#getPackages
|
# Remember where we live.
|
||||||
installGoldenGate
|
G_PARENT=$(pwd)
|
||||||
installOrca
|
|
||||||
installGsPlus
|
|
||||||
|
|
||||||
popd
|
# Don't change directories until Towel is loaded.
|
||||||
|
pushd installerWork >& /dev/null
|
||||||
|
|
||||||
|
:<<'SKIP'
|
||||||
|
# See if all the packages we need are installed
|
||||||
|
echo ""
|
||||||
|
tBoldBox tBLUE "Examining system..."
|
||||||
|
tCheckPackages MISSING cmake ragel hfsplus hfsutils hfsprogs libreadline-dev libedit-dev \
|
||||||
|
build-essential git mercurial texinfo libtool autoconf automake \
|
||||||
|
gcc-multilib g++-multilib mingw-w64 gdb-mingw-w64 clang llvm-dev libxml2-dev \
|
||||||
|
uuid-dev libssl-dev bash patch make tar xz-utils bzip2 gzip sed cpio \
|
||||||
|
libpulse-dev{,:i386} libasound-dev{,:i386} \
|
||||||
|
libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libfreetype6-dev libpcap0.8-dev \
|
||||||
|
php-cli
|
||||||
|
|
||||||
|
if [[ "${MISSING}" != "" ]]; then
|
||||||
|
if (whiptail --title "${G_TITLE}" --yesno "Some required packages are missing.\n\nInstall them now?" 9 40); then
|
||||||
|
TEMP=" ${MISSING//[^ ]}"
|
||||||
|
TOTAL=${#TEMP}
|
||||||
|
COUNT=0
|
||||||
|
{
|
||||||
|
for PACKAGE in ${MISSING}; do
|
||||||
|
PERCENT=$(( 100*(++COUNT)/TOTAL ))
|
||||||
|
echo ${PERCENT}
|
||||||
|
apt-get -y install ${PACAKGE} >& /dev/null
|
||||||
|
done
|
||||||
|
} | whiptail --title "${G_TITLE}" --gauge "\nInstalling packages..." 7 50 0
|
||||||
|
else
|
||||||
|
tBoldBox tRED "Canceled!"
|
||||||
|
echo ""
|
||||||
|
echo "Installation cannot continue without the following pacakges:"
|
||||||
|
echo ""
|
||||||
|
echo ${MISSING}
|
||||||
|
echo ""
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
SKIP
|
||||||
|
|
||||||
|
# Do we have JoeyLib yet?
|
||||||
|
if [[ ! -f ${G_PARENT}/joeylib/LICENSE ]]; then
|
||||||
|
echo ""
|
||||||
|
tBoldBox tBLUE "Downloading JoeyLib source..."
|
||||||
|
git clone https://skunkworks.kangaroopunch.com/skunkworks/joeylib.git ${G_PARENT}/joeylib >& /dev/null
|
||||||
|
fi
|
||||||
|
|
||||||
|
mainMenu
|
||||||
|
|
||||||
|
clear
|
||||||
|
tBoldBox tBLUE "Goodbye!"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# --- EXIT
|
||||||
|
popd >& /dev/null
|
||||||
|
|
Loading…
Add table
Reference in a new issue