diff --git a/languages/eiffel.toml b/languages/eiffel.toml new file mode 100644 index 00000000..776b561c --- /dev/null +++ b/languages/eiffel.toml @@ -0,0 +1,73 @@ +name = "eiffel" +entrypoint = "application.e" +extensions = [ + "e" + ] + + +setup = [ + ''' + apt-get update && apt-get install -y --no-install-recommends \ + ca-certificates curl \ + bzip2 \ + gcc make \ + libxtst-dev \ + libgtk2.0-dev \ + libssl-dev \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + cd /usr/local && curl -sSL https://www.eiffel.org/setup/install.sh | bash -s -- --channel latest --install-dir /usr/local/eiffel + ''' +] + + +runtimeSetup = [ + '''echo '' > /home/runner/application.ecf ''' + +] + +versionCommand = [ + "ISE_EIFFEL=/usr/local/eiffel", + "ISE_PLATFORM=linux-x86-64", + "ISE_LIBRARY=$ISE_EIFFEL", + "PATH=$PATH:$ISE_EIFFEL/studio/spec/$ISE_PLATFORM/bin:$ISE_EIFFEL/tools/spec/$ISE_PLATFORM/bin:$ISE_EIFFEL/library/gobo/spec/$ISE_PLATFORM/bin:$ISE_EIFFEL/esbuilder/spec/$ISE_PLATFORM/bin", + "ecb", + "-version" +] + +[compile] +command = [ + "ISE_EIFFEL=/usr/local/eiffel", + "ISE_PLATFORM=linux-x86-64", + "ISE_LIBRARY=$ISE_EIFFEL", + "PATH=$PATH:$ISE_EIFFEL/studio/spec/$ISE_PLATFORM/bin:$ISE_EIFFEL/tools/spec/$ISE_PLATFORM/bin:$ISE_EIFFEL/library/gobo/spec/$ISE_PLATFORM/bin:$ISE_EIFFEL/esbuilder/spec/$ISE_PLATFORM/bin", + "ecb", + "application.e", + "-clean", + "-finalize" +] + +[run] +command = [ + "./EIFGENs/application/F_code/application" +] + +[tests] + + [tests.hello] + code = """ + class APPLICATION + + create + make + + feature {NONE} -- Initialization + + make + do + print ("Hello World") + end + end + """ + output = "Hello World" +