97 lines
2.8 KiB
Bash
Executable File
97 lines
2.8 KiB
Bash
Executable File
#!/bin/sh
|
|
set -e
|
|
|
|
# This script installs opam for the user. It should NOT be included in any makefiles/etc.
|
|
|
|
if [ -n "`which opam`" ]
|
|
then
|
|
if [ -n "`opam --version | grep -P "2\..\.."`" ]
|
|
then
|
|
echo "Opam 2.x seems to already exist, exiting..."
|
|
exit 1
|
|
else
|
|
read -p "This script will upgrade opam to the 2.x series, are you okay with that? (y/n)" choice1
|
|
case "$choice1" in
|
|
y|Y ) : ;;
|
|
n|N ) exit ;;
|
|
esac
|
|
fi
|
|
fi
|
|
|
|
echo "Installing dependencies.."
|
|
if [ -n "`uname -a | grep -i arch`" ]
|
|
then
|
|
sudo pacman -Sy --noconfirm \
|
|
rakudo \
|
|
make \
|
|
m4 \
|
|
gcc \
|
|
patch \
|
|
bubblewrap \
|
|
rsync \
|
|
curl
|
|
fi
|
|
|
|
if [ -n "`uname -a | grep -i ubuntu`" ]
|
|
then
|
|
sudo apt-get install -y make \
|
|
perl6 \
|
|
make \
|
|
m4 \
|
|
gcc \
|
|
patch \
|
|
bubblewrap \
|
|
rsync \
|
|
curl
|
|
fi
|
|
|
|
if [ -n "`uname -a | grep -i ubuntu`" ]
|
|
then
|
|
echo "ubuntu"
|
|
sudo add-apt-repository -y ppa:avsm/ppa
|
|
sudo apt-get update
|
|
sudo apt-get install opam
|
|
else
|
|
if [ -n "`uname -a | grep -i arch`" ]
|
|
then
|
|
echo "arch"
|
|
sudo pacman -Sy --noconfirm opam
|
|
else
|
|
echo "unknown distro"
|
|
#I'm going to assume here that we're on x86_64, 32-bit users should be basically
|
|
#extinct at this point right?
|
|
curl -L https://github.com/ocaml/opam/releases/download/2.0.4/opam-2.0.4-x86_64-linux \
|
|
--output opam_temp_version_2_0_4.bin
|
|
if [ "`openssl sha256 -r opam_temp_version_2_0_4.bin`" = "373e34f92f282273d482537f8103caad0d17b6f2699ff504bed77f474cb0c951 *opam_temp_version_2_0_4.bin" ]
|
|
then
|
|
# Stay paranoid, in case other checks fail don't want to overrwrite
|
|
# user's opam on accident
|
|
chmod +x opam_temp_version_2_0_4.bin # Set execute so we can get version
|
|
if [ -e /usr/local/bin/opam ]
|
|
then
|
|
opam_old_v=`/usr/local/bin/opam --version`
|
|
opam_new_v=`opam_temp_version_2_0_4.bin --version`
|
|
read -p "This will overrwrite the opam you have in /usr/local/bin (version $opam_old_v) with version $opam_new_v, do you actually want to do that? Type yes. (yes/n)" choice2
|
|
else
|
|
choice2="yes"
|
|
fi
|
|
if [ $choice2 = "yes" ]
|
|
then
|
|
sudo mv opam_temp_version_2_0_4.bin /usr/local/bin/opam
|
|
else
|
|
rm opam_temp_version_2_0_4.bin
|
|
exit
|
|
fi
|
|
else
|
|
echo "opam file hash doesn't match what was recorded at time of signature verification!"
|
|
echo "(If you actually get this message, you should probably file an issue)"
|
|
echo "https://gitlab.com/ligolang/ligo/issues"
|
|
exit 1
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
opam init -a --bare
|
|
|
|
|