piston/runtimes/clojure.nix
Thomas Hobson 564da5a7eb
BREAKING: replace custom build scripts with nix
General:
- Switched to yarn to better work with nix-based tooling
- Switched package system to use nix. This stops double dependencies and slow cloud compile times, while providing more compile/runtime support to the Nix project
- Removed container builder in favor of internal container tooling
- Package versions no-longer need to be SemVer compliant
- Removed "piston package spec" files, replaced with nix-flake based runtimes
- Exported nosocket and piston-api as packages within the nix-flake
- Removed repo container
- Switched docker building to nix-based container outputting
- Removed docker compose as this is a single container
- Removed package commands from CLI

Packages:
- Move bash, clojure, cobol, node, python2, python3 to new format
- Remainder of packages still need to be moved

v2 API:
- Removed "version" specifier. To select specific versions, use the v3 api
- Removed "/package" endpoints as this doesn't work with the new nix-based system

v3 API:
- Duplicate of v2 API, except instead of passing in a language name an ID is used intead.
2022-01-31 14:42:12 +13:00

29 lines
No EOL
597 B
Nix

{pkgs, piston, ...}:
let
pkg = pkgs.clojure;
in piston.mkRuntime {
language = "clojure";
version = pkg.version + ""; #Clojure has X.X.X.X versioning, we want X.X.X
aliases = [
"clj"
];
run = ''
${pkg}/bin/clojure "$@"
'';
tests = [
(piston.mkTest {
files = {
"test.clj" = ''
(ns clojure.examples.main
(:gen-class))
(defn main []
(println "OK"))
(main)
'';
};
})
];
}