34 lines
1.1 KiB
Bash
Executable File
34 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
WORKSPACE=$(cd "$(dirname "$0")"/.. && pwd)
|
|
. "$WORKSPACE"/scripts/common.sh
|
|
. "$WORKSPACE"/scripts/docker_run.sh
|
|
|
|
if [ "$1" == "" ] || [ ! -d "$WORKSPACE/problem/$1" ]; then
|
|
log_warn "Usage: $0 <problem> <timeout>"
|
|
exit 1
|
|
fi
|
|
|
|
if [ -f "$WORKSPACE/problem/$1/.mark.prebuild" ]; then
|
|
log_warn "Problem $1 already prebuilt"
|
|
log_warn "If you want to re-prebuild the problem, please remove the file $WORKSPACE/problem/$1/.mark.prebuild"
|
|
exit 0
|
|
fi
|
|
|
|
if [ ! -f "$WORKSPACE/problem/$1/judge/prebuild.Makefile" ]; then
|
|
log_warn "Problem $1 does not have prebuild scripts"
|
|
log_warn "$WORKSPACE/problem/$1/.mark.prebuild"
|
|
exit 0
|
|
fi
|
|
|
|
export TIMEOUT=${2:-300}
|
|
export MEMORY="1g"
|
|
docker_run \
|
|
-v "$WORKSPACE/problem/$1/data":/woj/problem/data \
|
|
-v "$WORKSPACE/problem/$1/judge":/woj/problem/judge \
|
|
-e PREFIX=/woj/problem \
|
|
git.0x7f.app/woj/ubuntu-full \
|
|
sh -c "cd /woj/problem/judge && make -f prebuild.Makefile prebuild && touch .mark.prebuild"
|
|
|
|
mv "$WORKSPACE/problem/$1/judge/.mark.prebuild" "$WORKSPACE/problem/$1/.mark.prebuild" || exit 1
|