mirror of
https://github.com/RasppleII/a2cloud.git
synced 2025-02-20 03:29:03 +00:00
Plan to be able to use /usr/local/lib/raspple2 for other things, so moved the nulib2-version file to a pkginfo subdir. This gave me an excuse to create something I've wanted for awhile: A place to stick legacy code that fixes our mistakes that probably doesn't need to exist forever. I can count the number of people who downloaded 1f8afb6 on a few fingers of one hand most likely, but the change still got published and I can silently fix my mistake without having to stick mostly useless code in install_archive_tools someone's gonna look at three years from now and ask, "does that still need to be there?" No, no it doesn't. And fixup describes succinctly how long that code needs to remain there. And the fix is encapsulated into a nice little blob that's easily removed when the time comes.
138 lines
4.0 KiB
Bash
Executable File
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
|