From 1512058054bfb701c015a95274fb2bc977620991 Mon Sep 17 00:00:00 2001 From: Andrey Balandin Date: Tue, 22 Jun 2021 22:54:11 +0300 Subject: [PATCH] Add epicbox-scala/3 image --- epicbox-scala/{ => 2}/Dockerfile | 0 epicbox-scala/{ => 2}/java_lookup_main.sh | 0 epicbox-scala/3/Dockerfile | 16 ++++++++++++++++ epicbox-scala/3/java_lookup_main.sh | 15 +++++++++++++++ 4 files changed, 31 insertions(+) rename epicbox-scala/{ => 2}/Dockerfile (100%) rename epicbox-scala/{ => 2}/java_lookup_main.sh (100%) create mode 100644 epicbox-scala/3/Dockerfile create mode 100644 epicbox-scala/3/java_lookup_main.sh diff --git a/epicbox-scala/Dockerfile b/epicbox-scala/2/Dockerfile similarity index 100% rename from epicbox-scala/Dockerfile rename to epicbox-scala/2/Dockerfile diff --git a/epicbox-scala/java_lookup_main.sh b/epicbox-scala/2/java_lookup_main.sh similarity index 100% rename from epicbox-scala/java_lookup_main.sh rename to epicbox-scala/2/java_lookup_main.sh diff --git a/epicbox-scala/3/Dockerfile b/epicbox-scala/3/Dockerfile new file mode 100644 index 0000000..405aca9 --- /dev/null +++ b/epicbox-scala/3/Dockerfile @@ -0,0 +1,16 @@ +FROM openjdk:11.0.11-slim +MAINTAINER Stepik Team + +ENV SCALA_VERSION 3.0.0 +ENV PATH /opt/scala/bin:$PATH + +RUN apt-get update && \ + apt-get install -y --no-install-recommends wget && \ + rm -rf /var/lib/apt/lists/* && \ + wget -O - https://github.com/lampepfl/dotty/releases/download/$SCALA_VERSION/scala3-$SCALA_VERSION.tar.gz | tar xfz - -C /opt && \ + mv /opt/scala3-$SCALA_VERSION /opt/scala + +COPY java_lookup_main.sh /usr/local/bin/java_lookup_main.sh +RUN chmod +x /usr/local/bin/java_lookup_main.sh + +RUN useradd -M -d /sandbox sandbox diff --git a/epicbox-scala/3/java_lookup_main.sh b/epicbox-scala/3/java_lookup_main.sh new file mode 100644 index 0000000..b411051 --- /dev/null +++ b/epicbox-scala/3/java_lookup_main.sh @@ -0,0 +1,15 @@ +#!/bin/bash +# Grep *.class files in the given directory to find one with psvm method defined +# Usage: java_lookup_main.sh DIRECTORY_PATH + +PSVM_REGEX="public static( final)? void main\(java\.lang\.String(\[\]|\.\.\.)\)" + +shopt -s nullglob +for f in "$1"/*.class; do + if javap -p "$f" 2> /dev/null | grep -Pq "$PSVM_REGEX"; then + filename=$(basename "$f") + echo -n "${filename%.*}" + exit 0 + fi +done +exit 1