forked from opencobra/memote-docker
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathentrypoint.sh
More file actions
37 lines (33 loc) · 1.08 KB
/
entrypoint.sh
File metadata and controls
37 lines (33 loc) · 1.08 KB
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
#!/usr/bin/env sh
set -eu
LICENSE_DIR="${HOME}/.gurobi"
LICENSE_FILE="${LICENSE_DIR}/gurobi.lic"
# Accept a base64-encoded license (preferred) or raw text as fallback.
USER_LICENSE=""
if [ -n "${GUROBI_LICENSE_B64:-}" ]; then
mkdir -p "${LICENSE_DIR}"
python - "$GUROBI_LICENSE_B64" "$LICENSE_FILE" <<'PY'
import base64, binascii, sys
data, dest = sys.argv[1], sys.argv[2]
# Add padding if omitted (len must be a multiple of 4).
pad = (-len(data)) % 4
if pad:
data += "=" * pad
with open(dest, "wb") as fh:
fh.write(base64.b64decode(data))
PY
export GRB_LICENSE_FILE="${LICENSE_FILE}"
USER_LICENSE=1
elif [ -n "${GUROBI_LICENSE:-}" ]; then
mkdir -p "${LICENSE_DIR}"
printf "%s" "${GUROBI_LICENSE}" > "${LICENSE_FILE}"
export GRB_LICENSE_FILE="${LICENSE_FILE}"
USER_LICENSE=1
fi
# Pick solver based on whether a license is available; default to GLPK.
if [ -n "${USER_LICENSE}" ] && [ -n "${GRB_LICENSE_FILE:-}" ] && [ -r "${GRB_LICENSE_FILE}" ]; then
export COBRA_SOLVER="${COBRA_SOLVER:-gurobi}"
else
export COBRA_SOLVER="${COBRA_SOLVER:-glpk}"
fi
exec "$@"