From ad82a933bd364925f76e558a257ab9988f85ee27 Mon Sep 17 00:00:00 2001 From: jkva Date: Sun, 27 Aug 2017 23:52:30 +0200 Subject: [PATCH 1/2] FreePascal raffler --- jkva-freepascal/Dockerfile | 20 +++++++++++++ jkva-freepascal/raffler.pas | 57 +++++++++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 jkva-freepascal/Dockerfile create mode 100644 jkva-freepascal/raffler.pas diff --git a/jkva-freepascal/Dockerfile b/jkva-freepascal/Dockerfile new file mode 100644 index 0000000..bbd0486 --- /dev/null +++ b/jkva-freepascal/Dockerfile @@ -0,0 +1,20 @@ +FROM debian:stable + +MAINTAINER job@jobva.nl + +ENV LANG C.UTF-8 + +# Update deps +RUN apt-get update + +RUN DEBIAN_FRONTEND=noninteractive apt-get install -y fp-compiler-3.0.0 + +# Create working dir +RUN mkdir -p /var/app +COPY . /var/app +WORKDIR /var/app + +# Run raffler +ADD raffler.pas /var/app/ +CMD ["fpc", "/var/app/raffler.pas"] +CMD ["./raffler", "/var/names.txt"] diff --git a/jkva-freepascal/raffler.pas b/jkva-freepascal/raffler.pas new file mode 100644 index 0000000..7b61049 --- /dev/null +++ b/jkva-freepascal/raffler.pas @@ -0,0 +1,57 @@ +program Raffler; + +{$IFDEF FPC} + {$MODE OBJFPC} + {$I+} +{$ENDIF} + +uses + SysUtils; + +var + names : TextFile; + winner: String; + count : Integer = 0; + i : Integer = 0; + rnd : Integer = 0; + +begin + if (ParamCount = 0) then begin + writeln('ERROR: No filename supplied.'); + halt; + end; + + Assign(names, ParamStr(1)); + + try + reset(names); + while not eof(names) do begin + readln(names, winner); + inc(count); + end; + except + on E: EInOutError do begin + writeln('ERROR: handling input: ', E.Message); + halt; + end; + end; + + if (count = 0) then begin + writeln('ERROR: No names in file.'); + halt; + end; + + Randomize; + rnd := Random(count); + + reset(names); + + while i <= rnd do begin + readln(names, winner); + inc(i); + end; + + CloseFile(names); + + writeln('We have a winner: ', winner); +end. From 54c21be946273d29fd5a9a0147316ba582a25657 Mon Sep 17 00:00:00 2001 From: jkva Date: Mon, 28 Aug 2017 00:44:31 +0200 Subject: [PATCH 2/2] Something weird between RUN and CMD caused raffler to fail. Fixed. --- jkva-freepascal/Dockerfile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/jkva-freepascal/Dockerfile b/jkva-freepascal/Dockerfile index bbd0486..61db66f 100644 --- a/jkva-freepascal/Dockerfile +++ b/jkva-freepascal/Dockerfile @@ -15,6 +15,5 @@ COPY . /var/app WORKDIR /var/app # Run raffler -ADD raffler.pas /var/app/ -CMD ["fpc", "/var/app/raffler.pas"] -CMD ["./raffler", "/var/names.txt"] +RUN fpc /var/app/raffler.pas +CMD ["/var/app/raffler", "/var/names.txt"]