summaryrefslogtreecommitdiffstats
path: root/local/.bin/smt
diff options
context:
space:
mode:
Diffstat (limited to 'local/.bin/smt')
-rwxr-xr-xlocal/.bin/smt23
1 files changed, 18 insertions, 5 deletions
diff --git a/local/.bin/smt b/local/.bin/smt
index ad3f459..446197d 100755
--- a/local/.bin/smt
+++ b/local/.bin/smt
@@ -1,9 +1,22 @@
#!/bin/sh
set -eu
-podman images | grep -q localhost/smt || cat <<EOF | podman build -t smt -f -
-FROM docker.io/alpine:latest
-RUN apk add perl make
-RUN env PERL_MM_USE_DEFAULT=1 perl -MCPAN -e'install Games::SMTNocturne::Demons'
+DOCKERFILE="$(cat <<EOF
+FROM docker.io/debian:stable-slim
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ cpanminus \
+ make \
+ gcc \
+ libreadline-dev
+RUN cpanm -n Games::SMTNocturne::Demons
EOF
-podman run --rm smt smt "$@"
+)"
+IMAGE="$(basename "$0"):$(echo "$DOCKERFILE" | sha256sum | cut -d' ' -f1)"
+
+if [ -z "$(podman images -q "$IMAGE")" ]; then
+ echo "$DOCKERFILE" | podman build -t "$IMAGE" -f - .
+fi
+
+podman run --rm -it \
+ "$IMAGE" \
+ smt "$@"