summary refs log tree commit diff
path: root/pkgs/applications/version-management/github-desktop/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/version-management/github-desktop/default.nix')
-rw-r--r--pkgs/applications/version-management/github-desktop/default.nix73
1 files changed, 73 insertions, 0 deletions
diff --git a/pkgs/applications/version-management/github-desktop/default.nix b/pkgs/applications/version-management/github-desktop/default.nix
new file mode 100644
index 00000000000..650ec73619a
--- /dev/null
+++ b/pkgs/applications/version-management/github-desktop/default.nix
@@ -0,0 +1,73 @@
+{ stdenv
+, lib
+, fetchurl
+, autoPatchelfHook
+, wrapGAppsHook
+, gnome
+, libsecret
+, git
+, curl
+, nss
+, nspr
+, xorg
+, libdrm
+, alsa-lib
+, cups
+, mesa
+, systemd
+}:
+
+stdenv.mkDerivation rec {
+  pname = "github-desktop";
+  version = "2.9.0";
+
+  src = fetchurl {
+    url = "https://github.com/shiftkey/desktop/releases/download/release-${version}-linux4/GitHubDesktop-linux-${version}-linux4.deb";
+    sha256 = "sha256-kyzvvzSCfo6uaTA0Z1yqAUjr4A5p3OuIpaVQv64WW7M";
+  };
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gnome.gnome-keyring
+    xorg.libXdamage
+    xorg.libX11
+    libsecret
+    git
+    curl
+    nss
+    nspr
+    libdrm
+    alsa-lib
+    cups
+    mesa
+  ];
+
+  unpackPhase = ''
+    mkdir -p $TMP/${pname} $out/{opt,bin}
+    cp $src $TMP/${pname}.deb
+    ar vx ${pname}.deb
+    tar --no-overwrite-dir -xvf data.tar.xz -C $TMP/${pname}/
+  '';
+
+  installPhase = ''
+    cp -R $TMP/${pname}/usr/share $out/
+    cp -R $TMP/${pname}/usr/lib/${pname}/* $out/opt/
+    ln -sf $out/opt/${pname} $out/bin/${pname}
+  '';
+
+  runtimeDependencies = [
+    (lib.getLib systemd)
+  ];
+
+  meta = with lib; {
+    description = "GUI for managing Git and GitHub.";
+    homepage = "https://desktop.github.com/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ dan4ik605743 ];
+    platforms = platforms.linux;
+  };
+}