cbmbasic: init at unstable-2022-12-18

Signed-off-by: Christina Sørensen <christina@cafkafk.com>
This commit is contained in:
Christina Sørensen 2023-10-15 07:06:06 +02:00
parent 2b52388d19
commit 721c07b750
No known key found for this signature in database
GPG Key ID: 26C542FD97F965CE

View File

@ -0,0 +1,65 @@
{ lib
, stdenv
, fetchFromGitHub
, runCommand
}:
stdenv.mkDerivation (finalAttrs: {
pname = "cbmbasic";
version = "unstable-2022-12-18";
src = fetchFromGitHub {
owner = "mist64";
repo = "cbmbasic";
rev = "352a313313dd0a15a47288c8f8031b54ac8c92a2";
hash = "sha256-aA/ivRap+aDd2wi6KWXam9eP/21lOn6OWTeZ4i/S9Bs=";
};
installPhase = ''
runHook preInstall
mkdir -p $out/bin/
mv cbmbasic $out/bin/
runHook postInstall
'';
# NOTE: cbmbasic uses microsoft style linebreaks `\r\n`, and testing has to
# accommodate that, else you get very cryptic diffs
passthru = {
tests.run = runCommand "cbmbasic-test-run" {
nativeBuildInputs = [finalAttrs.finalPackage];
} ''
echo '#!${lib.getExe finalAttrs.finalPackage}' > helloI.bas;
echo 'PRINT"Hello, World!"' >> helloI.bas;
chmod +x helloI.bas
diff -U3 --color=auto <(./helloI.bas) <(echo -e "Hello, World!\r");
echo '#!/usr/bin/env cbmbasic' > hello.bas;
echo 'PRINT"Hello, World!"' >> hello.bas;
chmod +x hello.bas
diff -U3 --color=auto <(cbmbasic ./hello.bas) <(echo -e "Hello, World!\r");
touch $out;
'';
};
meta = with lib; {
description = "Portable version of Commodore's version of Microsoft BASIC 6502 as found on the Commodore 64";
longDescription = ''
"Commodore BASIC" (cbmbasic) is a 100% compatible version of Commodore's
version of Microsoft BASIC 6502 as found on the Commodore 64. You can use
it in interactive mode or pass a BASIC file as a command line parameter.
This source does not emulate 6502 code; all code is completely native. On
a 1 GHz CPU you get about 1000x speed compared to a 1 MHz 6502.
'';
homepage = "https://github.com/mist64/cbmbasic";
license = licenses.bsd2;
maintainers = [ maintainers.cafkafk ];
mainProgram = "cbmbasic";
platforms = platforms.all;
};
})