mirror of
https://github.com/RasppleII/a2server.git
synced 2024-12-25 05:29:35 +00:00
06bc59ece7
As Debian has gone from large to huge, actions operating on the package database have gotten slower and slower, so it's best to do them as few times as possible. Here we've got the trivial optimization. A more complete optimization requires a refactoring of code, and we're kind of in a 1.3.0 "freeze", so let's not do that here and now.
161 lines
5.3 KiB
Bash
Executable File
161 lines
5.3 KiB
Bash
Executable File
#! /bin/bash
|
|
# vim: set tabstop=4 shiftwidth=4 expandtab filetype=sh:
|
|
|
|
# download and install a2server tools:
|
|
# mkatinit, mkvolinfo, afptype, afpsync, aliases, nulib2
|
|
|
|
# Ensure URL we'll use ends in a /
|
|
case "$A2SERVER_SCRIPT_URL" in
|
|
*/) scriptURL="$A2SERVER_SCRIPT_URL" ;;
|
|
*) scriptURL="${A2SERVER_SCRIPT_URL:-http://appleii.ivanx.com/a2server}/" ;;
|
|
esac
|
|
|
|
isRpi=
|
|
[[ -f /usr/bin/raspi-config ]] && isRpi=1
|
|
|
|
isDebian=
|
|
[[ ( -f /etc/debian_version ) && ( $(cut -c 1 < /etc/debian_version) -ge "7" ) && ( $(uname -m) == "i686" ) ]] && isDebian=1
|
|
|
|
isJessie=
|
|
[[ ( -f /etc/debian_version ) && ( $(cut -c 1-2 < /etc/debian_version) == "8." ) ]] && isJessie=1
|
|
|
|
echo "A2SERVER: Installing A2SERVER tools..."
|
|
|
|
if ! command -v nulib2 > /dev/null; then
|
|
|
|
echo "A2SERVER: Installing nulib2..."
|
|
|
|
cd /tmp
|
|
if [[ $isRpi ]]; then
|
|
wget -qO- "http://appleii.ivanx.com/a2server/files/nulib2-rpi.tgz" | sudo tar Pzx
|
|
elif [[ $isDebian ]]; then
|
|
wget -qO- "http://appleii.ivanx.com/a2server/files/nulib2-debian7_x86.tgz" | sudo tar Pzx
|
|
fi
|
|
|
|
if ! command -v nulib2 > /dev/null; then
|
|
|
|
if [[ ! -f /tmp/a2server-packageReposUpdated ]]; then
|
|
# prepare for installing packages
|
|
sudo apt-get -y update
|
|
touch /tmp/a2server-packageReposUpdated
|
|
fi
|
|
|
|
# Dependencies: build-dep for nulib
|
|
sudo apt-get -y install build-essential zlib1g-dev
|
|
sudo apt-get -y clean
|
|
|
|
cd /tmp
|
|
rm -rf /tmp/nulib &> /dev/null
|
|
mkdir /tmp/nulib
|
|
cd /tmp/nulib
|
|
wget -q -O nulib.tgz http://web.archive.org/web/20131031160750/http://www.nulib.com/downloads/nulibdist.tar.gz
|
|
tar zxf nulib.tgz
|
|
cd nufxlib*
|
|
./configure
|
|
make
|
|
sudo make install
|
|
cd ../nulib2*
|
|
./configure
|
|
make
|
|
sudo make install
|
|
cd
|
|
rm -rf /tmp/nulib
|
|
fi
|
|
|
|
else
|
|
echo "A2SERVER: Nulib2 has already been installed."
|
|
fi
|
|
|
|
# download and install The Unarchiver, for expanding Apple disk images
|
|
# http://wakaba.c3.cx/s/apps/unarchiver.html
|
|
|
|
if ! command -v unar > /dev/null; then
|
|
|
|
echo "A2SERVER: Installing The Unarchiver..."
|
|
|
|
if [[ ! -f /tmp/a2server-packageReposUpdated ]]; then
|
|
# prepare for installing packages
|
|
sudo apt-get -y update
|
|
touch /tmp/a2server-packageReposUpdated
|
|
fi
|
|
|
|
# jessie and later: Just use the unar package
|
|
if [[ $isJessie ]]; then
|
|
sudo apt-get install -y unar
|
|
sudo apt-get clean
|
|
fi
|
|
|
|
if ! command -v unar > /dev/null; then
|
|
if [[ $isRpi || $isDebian ]]; then
|
|
|
|
# Dependencies: for unar
|
|
sudo apt-get -y install libgnustep-base1.22
|
|
sudo apt-get clean
|
|
|
|
if [[ $isRpi ]]; then
|
|
wget -qO- "http://appleii.ivanx.com/a2server/files/unar-rpi_wheezy.tgz" | sudo tar Pzx
|
|
elif [[ $isDebian ]]; then
|
|
wget -qO- "http://appleii.ivanx.com/a2server/files/unar-debian7_x86.tgz" | sudo tar Pzx
|
|
fi
|
|
fi
|
|
|
|
# If all else fails, compile from source.
|
|
if ! command -v unar >/dev/null; then
|
|
|
|
# Dependencies: build-deps for unar
|
|
sudo apt-get -y install build-essential libgnustep-base-dev libz-dev libbz2-dev libssl-dev libicu-dev unzip
|
|
sudo apt-get clean
|
|
|
|
rm -rf /tmp/unar &> /dev/null
|
|
mkdir /tmp/unar
|
|
cd /tmp/unar
|
|
wget -qO unar1.7_src.zip http://theunarchiver.googlecode.com/files/unar1.7_src.zip
|
|
unzip -o unar1.7_src.zip
|
|
cd The\ Unarchiver/XADMaster
|
|
make -f Makefile.linux
|
|
sudo mv lsar unar /usr/local/bin
|
|
cd ../Extra
|
|
sudo mv lsar.1 unar.1 /usr/local/man/man1
|
|
cd
|
|
rm -rf /tmp/unar
|
|
fi
|
|
sudo mandb &> /dev/null
|
|
fi
|
|
else
|
|
echo "A2SERVER: The Unarchiver has already been installed."
|
|
fi
|
|
|
|
if ! command -v unzip >/dev/null; then
|
|
echo "A2SERVER: Installing unzip..."
|
|
|
|
# Dependencies: unzip
|
|
sudo apt-get -y install unzip
|
|
else
|
|
echo "A2SERVER: unzip has already been installed."
|
|
fi
|
|
|
|
sudo wget -q -O /usr/local/bin/afpsync "${scriptURL}scripts/tools/afpsync.txt"
|
|
sudo chmod ugo+x /usr/local/bin/afpsync
|
|
sudo wget -q -O /usr/local/bin/afptype "${scriptURL}scripts/tools/afptype.txt"
|
|
sudo chmod ugo+x /usr/local/bin/afptype
|
|
sudo wget -q -O /usr/local/bin/mkatinit "${scriptURL}scripts/tools/mkatinit.txt"
|
|
sudo chmod ugo+x /usr/local/bin/mkatinit
|
|
sudo wget -q -O /usr/local/bin/mkvolinfo "${scriptURL}scripts/tools/mkvolinfo.txt"
|
|
sudo chmod ugo+x /usr/local/bin/mkvolinfo
|
|
sudo wget -q -O /usr/local/bin/cppo "${scriptURL}scripts/tools/cppo.txt"
|
|
sudo chmod ugo+x /usr/local/bin/cppo
|
|
sudo wget -q -O /usr/local/etc/a2server-help.txt "${scriptURL}scripts/tools/a2server-help.txt"
|
|
sudo wget -q -O /usr/local/etc/a2server-aliases "${scriptURL}scripts/tools/a2server-aliases.txt"
|
|
|
|
grep a2server-aliases /etc/bash.bashrc > /dev/null || \
|
|
echo "source /usr/local/etc/a2server-aliases" | sudo tee -a /etc/bash.bashrc > /dev/null
|
|
|
|
motd="/etc/motd"
|
|
if [[ ! $(grep A2SERVER $motd) ]]; then
|
|
echo | sudo tee -a $motd > /dev/null
|
|
echo "Type 'system-shutdown' to turn off A2SERVER." | sudo tee -a $motd > /dev/null
|
|
echo "Type 'a2server-setup' to configure network boot." | sudo tee -a $motd > /dev/null
|
|
echo "Type 'a2server-help' for a list of other commands." | sudo tee -a $motd > /dev/null
|
|
echo | sudo tee -a $motd > /dev/null
|
|
fi
|