d2708740c8
Installation: `./scripts/opam-pin.sh && opam install tezos-node tezos-client` Upgrade installed packages after a `git pull` (opam2 only): `./scripts/opam-upgrade.sh` Remove and cleanup every from the opam repo: `./scripts/opam-unpin.sh`
75 lines
1.2 KiB
Bash
Executable File
75 lines
1.2 KiB
Bash
Executable File
#! /bin/sh
|
|
|
|
set -e
|
|
|
|
script_dir="$(cd "$(dirname "$0")" && echo "$(pwd -P)/")"
|
|
src_dir="$(dirname "$script_dir")"
|
|
cd "$src_dir"
|
|
|
|
cleanup () {
|
|
set +e
|
|
if [ -f LOG ]; then
|
|
echo "failed."
|
|
echo
|
|
cat LOG
|
|
rm LOG
|
|
echo
|
|
exit 1
|
|
fi
|
|
}
|
|
trap cleanup EXIT INT
|
|
|
|
silent () {
|
|
"$@" > LOG 2>&1
|
|
rm LOG
|
|
}
|
|
|
|
requested_packages="$@"
|
|
|
|
export OPAMYES=yes
|
|
|
|
echo -n "Cleanup state and pin packages..."
|
|
silent ./scripts/opam-unpin.sh
|
|
silent . ./scripts/opam-pin.sh
|
|
echo " OK."
|
|
|
|
if ! [ -z "$requested_packages" ]; then
|
|
packages="$requested_packages"
|
|
fi
|
|
|
|
okfile="$0.DONE"
|
|
touch $okfile
|
|
ok=$(cat "$okfile")
|
|
|
|
ignore() {
|
|
for i in $ok; do
|
|
if [ $i = $1 ]; then return 0; fi
|
|
done
|
|
return 1
|
|
}
|
|
|
|
for package in $packages; do
|
|
|
|
if ignore $package; then
|
|
echo "Ignoring: $package."
|
|
continue
|
|
fi
|
|
|
|
echo -n "Installing: $package..."
|
|
silent opam install $package
|
|
echo " OK."
|
|
|
|
echo -n "Removing: $package..."
|
|
silent opam remove -a $package
|
|
echo " OK."
|
|
|
|
echo $package >> "$okfile"
|
|
|
|
done
|
|
|
|
echo
|
|
echo "Successfully installed the following packages: "
|
|
echo
|
|
cat $okfile | sed 's/^/- /'
|
|
rm $okfile
|