94 lines
2.6 KiB
Bash
Executable File
94 lines
2.6 KiB
Bash
Executable File
#!/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
|