-
Notifications
You must be signed in to change notification settings - Fork 167
/
Copy pathopam-coq-install-remove
executable file
·91 lines (83 loc) · 2.52 KB
/
opam-coq-install-remove
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#!/bin/bash
# Usage:
# opam-coq-install-remove CACHE_FILE SKIP1 .. SKIPN -- FILE1 .. FILEN
set -e
#set -x
. scripts/opam-coq-setup-root
CACHE=$1
shift
declare -A SKIP
while [ $1 != "--" ]; do
SKIP[$1]=1
shift
done
shift # for --
RC=0
FAILURES=
SUCCESSES=
mkdir -p log
while [ ! -z "$1" ]; do
if [ -e "$1" ]; then
case "$1" in
*/opam)
echo "Failures so far:$FAILURES"
echo "Successes so far:$SUCCESSES"
LOG=log/`echo $1 | tr '/' '-'`
PKG_VERSION_DIR=`dirname "$1"`
PKG_NAME_VERSION=`basename "$PKG_VERSION_DIR"`
PKG_VERSION=`echo $PKG_NAME_VERSION | cut -d . -f 2-`
PKG_NAME=`echo $PKG_NAME_VERSION | cut -d . -f 1`
if [ ! -z "${SKIP[$PKG_NAME_VERSION]}" ]; then
echo Skip $1 due to user request
else
echo Testing $1
> $LOG
setup_root $CACHE $LOG
case "$PKG_VERSION_DIR" in
*core-dev*)
echo Add dev repos
opam repo add core-dev --all-switches file://$PWD/core-dev >> $LOG
opam update core-dev >> $LOG
;;
*extra-dev*)
echo Add dev repos
opam repo add core-dev --all-switches file://$PWD/core-dev >> $LOG
opam repo add extra-dev --all-switches file://$PWD/extra-dev >> $LOG
opam update core-dev extra-dev >> $LOG
;;
*)
echo No repo to add
;;
esac
echo Check if $PKG_NAME_VERSION is installable
if opam install "$PKG_NAME_VERSION" -y --show-action $EXTRA_OPAM_OPTION; then
set +e
echo Installing $PKG_NAME_VERSION
opam install "$PKG_NAME_VERSION" -y -v -v --with-test $EXTRA_OPAM_OPTION >> $LOG
if [ $? != 0 ]; then
RC=1;
FAILURES="$FAILURES $PKG_NAME_VERSION";
else
SUCCESSES="$SUCCESSES $PKG_NAME_VERSION";
fi
echo Removing $PKG_NAME
opam remove "$PKG_NAME" -y >> $LOG
set -e
else
echo Check if $PKG_NAME_VERSION is installable with another compiler
opam install "$PKG_NAME_VERSION" -y --show-action --unlock-base
echo Skipping $PKG_NAME_VERSION since not installable with the current compiler
fi
fi
;;
*)
echo Ignoring $1
echo
;;
esac
fi
shift
done
echo "Packages that failed to install:$FAILURES"
echo "Packages that succeeded to install:$SUCCESSES"
exit $RC