about summary refs log tree commit diff
path: root/pkgs/by-name/he/hello-go/package.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/by-name/he/hello-go/package.nix')
-rw-r--r--pkgs/by-name/he/hello-go/package.nix44
1 files changed, 44 insertions, 0 deletions
diff --git a/pkgs/by-name/he/hello-go/package.nix b/pkgs/by-name/he/hello-go/package.nix
new file mode 100644
index 0000000000000..e68c0b8c98fe4
--- /dev/null
+++ b/pkgs/by-name/he/hello-go/package.nix
@@ -0,0 +1,44 @@
+{
+  lib,
+  buildGoModule,
+}:
+
+buildGoModule {
+  name = "hello-go";
+
+  src = ./src;
+
+  vendorHash = null;
+
+  CGO_ENABLED = 0;
+
+  # go installs binary into $out/bin/$GOOS_$GOARCH/hello-go in cross compilation
+  postInstall = ''
+    [[ -f "$out/bin/hello-go" ]] || ln -s ./''${GOOS}_''${GOARCH}/hello-go $out/bin/hello-go
+  '';
+
+  meta = {
+    description = "Simple program printing hello world in Go";
+    longDescription = ''
+      hello-go is a simple program printing "Hello, world!" written in Go,
+      aiming at testing programs that involves analyzing executables or
+      emulating foreign architectures, without pulling in a heavy cross
+      toolchain.
+
+      Specify target platform by setting GOOS and GOARCH:
+
+      ```nix
+      hello-go.overrideAttrs {
+        GOOS = "linux";
+        GOARCH = "arm64";
+      }
+      ```
+
+      See https://pkg.go.dev/internal/platform#pkg-variables for a list
+      of available platforms.
+    '';
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ aleksana ];
+    mainProgram = "hello-go";
+  };
+}