ff1a94e523
The nixpkgs-unstable channel's programs.sqlite was used to identify packages producing exactly one binary, and these automatically added to their package definitions wherever possible.
46 lines
1.3 KiB
Nix
46 lines
1.3 KiB
Nix
{ ballerina, lib, writeText, runCommand, makeWrapper, fetchzip, stdenv, openjdk }:
|
|
let
|
|
version = "2201.8.6";
|
|
codeName = "swan-lake";
|
|
in stdenv.mkDerivation {
|
|
pname = "ballerina";
|
|
inherit version;
|
|
|
|
src = fetchzip {
|
|
url = "https://dist.ballerina.io/downloads/${version}/ballerina-${version}-${codeName}.zip";
|
|
hash = "sha256-/oYyYziUTt4OqQfYJdDuRVy9xmMDfhpj24lbisQFfAU=";
|
|
};
|
|
|
|
nativeBuildInputs = [ makeWrapper ];
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
cp -rv distributions/ballerina-${version} $out
|
|
runHook postInstall
|
|
'';
|
|
preFixup = ''
|
|
wrapProgram $out/bin/bal --set JAVA_HOME ${openjdk}
|
|
'';
|
|
|
|
passthru.tests.smokeTest = let
|
|
helloWorld = writeText "hello-world.bal" ''
|
|
import ballerina/io;
|
|
public function main() {
|
|
io:println("Hello, World!");
|
|
}
|
|
'';
|
|
in runCommand "ballerina-${version}-smoketest" { } ''
|
|
${ballerina}/bin/bal run ${helloWorld} >$out
|
|
read result <$out
|
|
[[ $result = "Hello, World!" ]]
|
|
'';
|
|
|
|
meta = with lib; {
|
|
description = "An open-source programming language for the cloud";
|
|
mainProgram = "bal";
|
|
license = licenses.asl20;
|
|
platforms = openjdk.meta.platforms;
|
|
maintainers = with maintainers; [ eigengrau ];
|
|
sourceProvenance = with sourceTypes; [ binaryBytecode ];
|
|
};
|
|
}
|