a2cloud/scripts/install_archive_tools

138 lines
4.0 KiB
Bash
Executable File

#! /bin/bash
# vim: set tabstop=4 shiftwidth=4 noexpandtab filetype=sh:
# install_archive_tools - temporary script for archive tools from ivan.sh
#
# To the extent possible under law, T. Joseph Carter and Ivan Drucker have
# waived all copyright and related or neighboring rights to the a2cloud
# scripts themselves. Software used or installed by these scripts is subject
# to other licenses. This work is published from the United States.
nulib2Version="3.1.0"
a2cBinaryURL="http://blocksfree.com/downloads"
ras2_pkginfo="/usr/local/lib/raspple2/pkginfo"
# Find the path of our source directory
a2cSource="$( dirname "${BASH_SOURCE[0]}" )/.."
pushd $a2cSource >/dev/null
a2cSource="$PWD"
popd >/dev/null
if [[ ! -f "$a2cSource/.a2cloud_source" ]]; then
printf "\na2cloud: cannot find a2cloud source directory in $a2cSource.\n\n"
exit 1
fi
# Make sure ras2_{os,arch} get set
. "$a2cSource/scripts/system_ident" -q
install_nulib2() {
nulib2installed=
if [[ -f ${ras2_pkginfo}/nulib2-version ]]; then
read nulib2Installed < ${ras2_pkginfo}/nulib2-version
fi
if [[ $nulib2Installed != $nulib2Version ]]; then
printf "a2cloud: Installing nulib2 %s...\n" "${nulib2Version}"
local nulibWork="$(mktemp -d /tmp/nulib.XXXXXXXXXXXX)"
pushd "$nulibWork" >/dev/null
if [[ ! $noPicoPkg ]]; then
### ArchiveTools: Install nulib2 binaries
wget -q "${a2cBinaryURL}/picopkg/nulib2-${nulib2Version}_${ras2_os}_${ras2_arch}.tgz"
if [[ -f "nulib2-${nulib2Version}_${ras2_os}_${ras2_arch}.tgz" ]]; then
sudo tar Pzxf "nulib2-${nulib2Version}_${ras2_os}_${ras2_arch}.tgz"
fi
fi
if [[ -f ${ras2_pkginfo}/nulib2-version ]]; then
read nulib2Installed < ${ras2_pkginfo}/nulib2-version
fi
if [[ $nulib2Installed != $nulib2Version ]]; then
### ArchiveTools: Install nulib2 from source
sudo apt-get -y install build-essential
sudo apt-get -y install zlib1g-dev
sudo apt-get -y clean
# install nulib2
wget -O nulib-${nulib2Version}.tar.gz "https://github.com/fadden/nulib2/archive/v${nulib2Version}.tar.gz"
tar zxf nulib-${nulib2Version}.tar.gz
cd nulib2-${nulib2Version}/nufxlib
./configure
make
sudo make install
cd ../nulib2
./configure
make
sudo make install
sudo install -d -m 755 -o root -g root "${ras2_pkginfo}"
echo ${nulib2Version} | sudo tee "${ras2_pkginfo}/nulib2-version" >/dev/null
fi
popd >/dev/null
rm -rf "$nulibWork"
else
printf "a2cloud: nulib2 %s already installed.\n" "${nulib2Version}"
fi
}
install_sciibin() {
if ! hash sciibin 2> /dev/null; then
### ArchiveTools: Install undoit (sciibin, etc.)
echo "A2CLOUD: Installing sciibin, unblu, unbit, unexec, usq..."
sudo apt-get -y install build-essential unzip
sudo apt-get -y clean
local undoitWork="$(mktemp -d /tmp/undoit.XXXXXXXXXXXX)"
pushd "$undoitWork" >/dev/null
wget -q http://web.archive.org/web/20110619163030/http://fadden.com/dl-apple2/undoit.zip
unzip undoit.zip
make
sudo mv sciibin unbit unblu unexec usq /usr/local/bin
popd >/dev/null
rm -rf "$undoitWork"
else
echo "A2CLOUD: sciibin, unblu, unbit, unexec, usq are already installed."
fi
}
install_shk2image() {
echo "A2CLOUD: Setting up shk2image command..."
### ArchiveTools: Install shk2image command
sudo install -o root -g root -m 755 "$a2cSource/setup/shk2image" /usr/local/bin/shk2image
}
install_unar() {
# Remove locally installed unar if found
if [[ -f /usr/local/bin/unar ]]; then
echo "Removing local unar in favor of the system package"
sudo rm -f /usr/local/bin/lsar
sudo rm -f /usr/local/bin/unar
sudo rm -f /usr/local/man/man1/lsar.1
sudo rm -f /usr/local/man/man1/unar.1
fi
# http://wakaba.c3.cx/s/apps/unarchiver.html
if ! hash unar 2> /dev/null; then
echo "a2cloud: Installing unar (The Unarchiver)..."
sudo apt-get -y install unar
sudo apt-get clean
else
echo "a2cloud: unar has already been installed."
fi
}
noPicoPkg=
while [[ $1 ]]; do
if [[ $1 == -c ]]; then
noPicoPkg=1
fi
shift
done
install_nulib2
install_sciibin
install_shk2image
install_unar