#!/bin/bash # Script to install competitive programming languages in Piston # Run this script inside the Piston container: # docker cp scripts/install-piston-languages.sh sp-piston:/tmp/ # docker exec -it sp-piston bash /tmp/install-piston-languages.sh set -e echo "=== Installing Competitive Programming Languages in Piston ===" echo "" # Function to install a language with error handling install_lang() { local lang=$1 local version=$2 echo "Installing $lang $version..." if piston ppman install "$lang=$version"; then echo "✓ $lang $version installed successfully" else echo "✗ Failed to install $lang $version" fi echo "" } # Core competitive programming languages (latest versions from Piston repo) echo "=== Core Languages ===" install_lang "python" "3.12.0" install_lang "gcc" "10.2.0" # C/C++ (provides c and c++) install_lang "java" "15.0.2" install_lang "node" "20.11.1" # JavaScript # Systems programming languages echo "=== Systems Programming ===" install_lang "go" "1.16.2" install_lang "rust" "1.68.2" # JVM languages echo "=== JVM Languages ===" install_lang "kotlin" "1.8.20" install_lang "scala" "3.2.2" # .NET echo "=== .NET ===" install_lang "dotnet" "5.0.201" # C#/F# install_lang "mono" "6.12.0" # Mono C# # Scripting languages echo "=== Scripting Languages ===" install_lang "ruby" "3.0.1" install_lang "perl" "5.36.0" install_lang "php" "8.2.3" install_lang "lua" "5.4.4" # Functional programming languages echo "=== Functional Languages ===" install_lang "haskell" "9.0.1" install_lang "ocaml" "4.12.0" install_lang "elixir" "1.11.3" install_lang "clojure" "1.10.3" install_lang "erlang" "23.0.0" install_lang "racket" "8.3.0" install_lang "lisp" "2.1.2" # CLISP # Other competitive programming languages echo "=== Other Languages ===" install_lang "pascal" "3.2.2" # Free Pascal install_lang "fortran" "10.2.0" # GFortran install_lang "swift" "5.3.3" install_lang "typescript" "5.0.3" install_lang "nim" "1.6.2" install_lang "crystal" "1.9.2" install_lang "julia" "1.8.5" install_lang "zig" "0.10.1" install_lang "vlang" "0.3.3" install_lang "d" "10.2.0" # GDC install_lang "groovy" "3.0.7" install_lang "cobol" "3.1.2" install_lang "fsharp" "5.0.201" install_lang "prolog" "8.2.4" # SWI-Prolog install_lang "r" "4.1.1" # Low-level / Assembly echo "=== Low-level ===" install_lang "nasm" "2.15.5" # x86/x64 Assembly # Shell scripting echo "=== Shell ===" install_lang "bash" "5.1.0" echo "" echo "=== Installation Complete ===" echo "Installed languages:" piston ppman list