summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/misc/emulators/commander-x16/run.nix39
-rw-r--r--pkgs/top-level/all-packages.nix4
2 files changed, 43 insertions, 0 deletions
diff --git a/pkgs/misc/emulators/commander-x16/run.nix b/pkgs/misc/emulators/commander-x16/run.nix
new file mode 100644
index 00000000000..cf14252b487
--- /dev/null
+++ b/pkgs/misc/emulators/commander-x16/run.nix
@@ -0,0 +1,39 @@
+{ lib
+, stdenv
+, runtimeShell
+, symlinkJoin
+, writeTextFile
+}:
+
+{ emulator, rom }:
+
+assert emulator.version == rom.version;
+
+let
+  runScript = writeTextFile {
+    name = "run-x16";
+    text = ''
+      #!${runtimeShell}
+
+      defaultRom="${rom}/share/x16-rom/rom.bin"
+
+      exec "${emulator}/bin/x16emu" -rom $defaultRom "$@"
+    '';
+    executable = true;
+    destination = "/bin/run-x16";
+  };
+in
+symlinkJoin {
+  name = "run-x16-${emulator.version}";
+
+  paths = [
+    emulator
+    rom
+    runScript
+  ];
+}
+# TODO [ AndersonTorres ]:
+
+# 1. Parse the command line in order to allow the user to set an optional
+# rom-file
+# 2. generate runScript based on symlinkJoin (maybe a postBuild?)
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 2cb0404e139..07ec28f70e8 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -31617,6 +31617,10 @@ in
 
   x16-emulator = callPackage ../misc/emulators/commander-x16/emulator.nix { };
   x16-rom = callPackage ../misc/emulators/commander-x16/rom.nix { };
+  x16-run = (callPackage ../misc/emulators/commander-x16/run.nix { }) {
+    emulator = x16-emulator;
+    rom = x16-rom;
+  };
 
   bullet = callPackage ../development/libraries/bullet {
     inherit (darwin.apple_sdk.frameworks) Cocoa OpenGL;