From 45ee6253386a96049845b80d2b44f2e716e051b9 Mon Sep 17 00:00:00 2001 From: Omar Brikaa Date: Fri, 25 Feb 2022 14:41:16 +0200 Subject: [PATCH] Add dotnet visual-basic --- packages/dotnet/5.0.201/build.sh | 16 ------ packages/dotnet/5.0.201/compile | 36 ------------ packages/dotnet/5.0.201/environment | 6 -- packages/dotnet/5.0.201/metadata.json | 66 --------------------- packages/dotnet/5.0.201/run | 25 -------- packages/dotnet/5.0.201/test.cs | 9 --- packages/dotnet/5.0.201/test.fs | 6 -- packages/dotnet/5.0.201/test.fsx | 1 - packages/dotnet/5.0.201/test.vb | 9 --- runtimes/default.nix | 1 + runtimes/dotnet-sdk-visual-basic.nix | 82 +++++++++++++++++++++++++++ 11 files changed, 83 insertions(+), 174 deletions(-) delete mode 100755 packages/dotnet/5.0.201/build.sh delete mode 100644 packages/dotnet/5.0.201/compile delete mode 100644 packages/dotnet/5.0.201/environment delete mode 100644 packages/dotnet/5.0.201/metadata.json delete mode 100644 packages/dotnet/5.0.201/run delete mode 100644 packages/dotnet/5.0.201/test.cs delete mode 100644 packages/dotnet/5.0.201/test.fs delete mode 100644 packages/dotnet/5.0.201/test.fsx delete mode 100644 packages/dotnet/5.0.201/test.vb create mode 100644 runtimes/dotnet-sdk-visual-basic.nix diff --git a/packages/dotnet/5.0.201/build.sh b/packages/dotnet/5.0.201/build.sh deleted file mode 100755 index 6318b07..0000000 --- a/packages/dotnet/5.0.201/build.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env bash - -curl "https://download.visualstudio.microsoft.com/download/pr/73a9cb2a-1acd-4d20-b864-d12797ca3d40/075dbe1dc3bba4aa85ca420167b861b6/dotnet-sdk-5.0.201-linux-x64.tar.gz" -Lo dotnet.tar.gz -tar xzf dotnet.tar.gz --strip-components=1 -rm dotnet.tar.gz - -# Cache nuget packages -export DOTNET_CLI_HOME=$PWD -./dotnet new console -o cache_application -./dotnet new console -lang F# -o fs_cache_application -./dotnet new console -lang VB -o vb_cache_application -# This calls a restore on the global-packages index ($DOTNET_CLI_HOME/.nuget/packages) -# If we want to allow more packages, we could add them to this cache_application - -rm -rf cache_application fs_cache_application vb_cache_application -# Get rid of it, we don't actually need the application - just the restore diff --git a/packages/dotnet/5.0.201/compile b/packages/dotnet/5.0.201/compile deleted file mode 100644 index 1c34213..0000000 --- a/packages/dotnet/5.0.201/compile +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/env bash - -[ "${PISTON_LANGUAGE}" == "fsi" ] && exit 0 - -export DOTNET_CLI_HOME=$PWD -export HOME=$PWD - -dotnet build --help > /dev/null # Shut the thing up - -case "${PISTON_LANGUAGE}" in - basic.net) - rename 's/$/\.vb/' "$@" # Add .vb extension - dotnet new console -lang VB -o . --no-restore - rm Program.vb - ;; - fsharp.net) - first_file=$1 - shift - rename 's/$/\.fs/' "$@" # Add .fs extension - dotnet new console -lang F# -o . --no-restore - mv $first_file Program.fs # For some reason F#.net doesn't work unless the file name is Program.fs - ;; - csharp.net) - rename 's/$/\.cs/' "$@" # Add .cs extension - dotnet new console -o . --no-restore - rm Program.cs - ;; - *) - echo "How did you get here? (${PISTON_LANGUAGE})" - exit 1 - ;; - -esac - -dotnet restore --source $DOTNET_ROOT/.nuget/packages -dotnet build --no-restore diff --git a/packages/dotnet/5.0.201/environment b/packages/dotnet/5.0.201/environment deleted file mode 100644 index 468463d..0000000 --- a/packages/dotnet/5.0.201/environment +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env bash - -# Put 'export' statements here for environment variables -export DOTNET_ROOT=$PWD -export PATH=$DOTNET_ROOT:$PATH -export FSI_PATH=$(find $(pwd) -name fsi.dll) diff --git a/packages/dotnet/5.0.201/metadata.json b/packages/dotnet/5.0.201/metadata.json deleted file mode 100644 index 7c73c58..0000000 --- a/packages/dotnet/5.0.201/metadata.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "language": "dotnet", - "version": "5.0.201", - "provides": [ - { - "language": "basic.net", - "aliases": [ - "basic", - "visual-basic", - "visual-basic.net", - "vb", - "vb.net", - "vb-dotnet", - "dotnet-vb", - "basic-dotnet", - "dotnet-basic" - ], - "limit_overrides": { "max_process_count": 128 } - }, - { - "language": "fsharp.net", - "aliases": [ - "fsharp", - "fs", - "f#", - "fs.net", - "f#.net", - "fsharp-dotnet", - "fs-dotnet", - "f#-dotnet", - "dotnet-fsharp", - "dotnet-fs", - "dotnet-fs" - ], - "limit_overrides": { "max_process_count": 128 } - }, - { - "language": "csharp.net", - "aliases": [ - "csharp", - "c#", - "cs", - "c#.net", - "cs.net", - "c#-dotnet", - "cs-dotnet", - "csharp-dotnet", - "dotnet-c#", - "dotnet-cs", - "dotnet-csharp" - ], - "limit_overrides": { "max_process_count": 128 } - }, - { - "language": "fsi", - "aliases": [ - "fsx", - "fsharp-interactive", - "f#-interactive", - "dotnet-fsi", - "fsi-dotnet", - "fsi.net" - ] - } - ] -} diff --git a/packages/dotnet/5.0.201/run b/packages/dotnet/5.0.201/run deleted file mode 100644 index 6b5c995..0000000 --- a/packages/dotnet/5.0.201/run +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env bash - -# Put instructions to run the runtime -export DOTNET_CLI_HOME=$PWD - -case "${PISTON_LANGUAGE}" in - basic.net) - ;& - fsharp.net) - ;& - csharp.net) - shift - dotnet bin/Debug/net5.0/$(basename $(realpath .)).dll "$@" - ;; - fsi) - FILENAME=$1 - rename 's/$/\.fsx/' $FILENAME # Add .fsx extension - shift - dotnet $FSI_PATH $FILENAME.fsx "$@" - ;; - *) - echo "How did you get here? (${PISTON_LANGUAGE})" - exit 1 - ;; -esac diff --git a/packages/dotnet/5.0.201/test.cs b/packages/dotnet/5.0.201/test.cs deleted file mode 100644 index e91a2a2..0000000 --- a/packages/dotnet/5.0.201/test.cs +++ /dev/null @@ -1,9 +0,0 @@ -using System; - -public class Test -{ - public static void Main(string[] args) - { - Console.WriteLine("OK"); - } -} \ No newline at end of file diff --git a/packages/dotnet/5.0.201/test.fs b/packages/dotnet/5.0.201/test.fs deleted file mode 100644 index 006ac10..0000000 --- a/packages/dotnet/5.0.201/test.fs +++ /dev/null @@ -1,6 +0,0 @@ -open System - -[] -let main argv = - printfn "OK" - 0 diff --git a/packages/dotnet/5.0.201/test.fsx b/packages/dotnet/5.0.201/test.fsx deleted file mode 100644 index 33d166f..0000000 --- a/packages/dotnet/5.0.201/test.fsx +++ /dev/null @@ -1 +0,0 @@ -printfn "OK" diff --git a/packages/dotnet/5.0.201/test.vb b/packages/dotnet/5.0.201/test.vb deleted file mode 100644 index 291042e..0000000 --- a/packages/dotnet/5.0.201/test.vb +++ /dev/null @@ -1,9 +0,0 @@ -Imports System - -Module Module1 - - Sub Main() - Console.WriteLine("OK") - End Sub - -End Module diff --git a/runtimes/default.nix b/runtimes/default.nix index 27466cb..286c4e1 100644 --- a/runtimes/default.nix +++ b/runtimes/default.nix @@ -56,4 +56,5 @@ args: { "dotnet-sdk-csharp" = import ./dotnet-sdk-csharp.nix args; "dotnet-sdk-fsharp" = import ./dotnet-sdk-fsharp.nix args; "dotnet-sdk-fsharp-interactive" = import ./dotnet-sdk-fsharp-interactive.nix args; + "dotnet-sdk-visual-basic" = import ./dotnet-sdk-visual-basic.nix args; } diff --git a/runtimes/dotnet-sdk-visual-basic.nix b/runtimes/dotnet-sdk-visual-basic.nix new file mode 100644 index 0000000..9953109 --- /dev/null +++ b/runtimes/dotnet-sdk-visual-basic.nix @@ -0,0 +1,82 @@ +{pkgs, piston, ...}: +let + pkg = pkgs.dotnet-sdk; + nugetPkg = pkgs.stdenv.mkDerivation { + pname = "visual-basic-nuget-packages"; + version = pkgs.dotnet-sdk.version; + + dontUnpack = true; + dontBuild = true; + dontConfigure = true; + dontFixup = true; + dontPatch = true; + + buildInputs = [ + pkgs.dotnet-sdk + ]; + installPhase = '' + mkdir $out + cd $out + export HOME=$PWD + dotnet new console -lang VB -o cache_application + rm -rf cache_application + ''; +}; + +in piston.mkRuntime { + language = "visual-basic"; + version = pkg.version; + runtime = "dotnet-sdk"; + + aliases = [ + "visual-basic.net" + "visual-basic-dotnet" + "dotnet-visual-basic" + "vb" + "vb.net" + "vb-dotnet" + "dotnet-vh" + "basic" + "basic.net" + "basic-dotnet" + "dotnet-basic" + ]; + + compile = '' + export HOME=${nugetPkg} + ${pkg}/dotnet build --help > /dev/null # Supress welcome message + rename 's/$/\.vb/' "$@" # Add .vb extension + ${pkg}/dotnet new console -lang VB -o . --no-restore + rm Program.vb + ${pkg}/dotnet restore --source ${nugetPkg}/.nuget/packages + ${pkg}/dotnet build --no-restore + ''; + + run = '' + export HOME=$PWD + shift + ${pkg}/dotnet bin/Debug/net6.0/$(basename $(realpath .)).dll "$@" + ''; + + tests = [ + (piston.mkTest { + files = { + "test.vb" = '' + Imports System + + Module Module1 + + Sub Main(args As String()) + Console.WriteLine(args(0)) + End Sub + + End Module + ''; + }; + args = ["OK"]; + stdin = ""; + packages = []; + main = "test.vb"; + }) + ]; +}