about summary refs log tree commit diff
diff options
context:
space:
mode:
authorWeijia Wang <9713184+wegank@users.noreply.github.com>2023-10-19 15:59:04 +0200
committerWeijia Wang <9713184+wegank@users.noreply.github.com>2023-10-19 15:59:04 +0200
commitef66682d72316335dba3bc8af1ec833c940df2fb (patch)
treeef0a10bd09f3e9a6b9bebfc3889ad51931fe42cf
parent7c9cc5a6e5d38010801741ac830a3f8fd667a7a0 (diff)
youtube-music: add darwin support
-rw-r--r--pkgs/applications/audio/youtube-music/default.nix23
1 files changed, 17 insertions, 6 deletions
diff --git a/pkgs/applications/audio/youtube-music/default.nix b/pkgs/applications/audio/youtube-music/default.nix
index 3ebcb823acba5..18e6ba9e5c12a 100644
--- a/pkgs/applications/audio/youtube-music/default.nix
+++ b/pkgs/applications/audio/youtube-music/default.nix
@@ -4,6 +4,7 @@
 , makeWrapper
 , electron_25
 , python3
+, stdenv
 , copyDesktopItems
 , makeDesktopItem
 }:
@@ -22,10 +23,11 @@ let
   electron = electron_25;
 
 in
-buildNpmPackage rec {
+buildNpmPackage {
   inherit pname version src;
 
-  nativeBuildInputs = [ makeWrapper python3 copyDesktopItems ];
+  nativeBuildInputs = [ makeWrapper python3 ]
+    ++ lib.optionals (!stdenv.isDarwin) [ copyDesktopItems ];
 
   npmDepsHash = "sha256-XGV0mTywYYxpMitojzIILB/Eu/8dfk/aCvUxIkx4SDQ=";
   makeCacheWritable = true;
@@ -34,16 +36,24 @@ buildNpmPackage rec {
     ELECTRON_SKIP_BINARY_DOWNLOAD = 1;
   };
 
-  postBuild = ''
+  postBuild = lib.optionalString stdenv.isDarwin ''
+    cp -R ${electron}/Applications/Electron.app Electron.app
+    chmod -R u+w Electron.app
+  '' + ''
     npm exec electron-builder -- \
       --dir \
-      -c.electronDist=${electron}/libexec/electron \
+      -c.electronDist=${if stdenv.isDarwin then "." else "${electron}/libexec/electron"} \
       -c.electronVersion=${electron.version}
   '';
 
   installPhase = ''
     runHook preInstall
 
+  '' + lib.optionalString stdenv.isDarwin ''
+    mkdir -p $out/{Applications,bin}
+    mv pack/mac*/YouTube\ Music.app $out/Applications
+    makeWrapper $out/Applications/YouTube\ Music.app/Contents/MacOS/YouTube\ Music $out/bin/youtube-music
+  '' + lib.optionalString (!stdenv.isDarwin) ''
     mkdir -p "$out/share/lib/youtube-music"
     cp -r pack/*-unpacked/{locales,resources{,.pak}} "$out/share/lib/youtube-music"
 
@@ -52,11 +62,12 @@ buildNpmPackage rec {
       install -Dm0644 $file $out/share/icons/hicolor/''${file//.png}/apps/youtube-music.png
     done
     popd
+  '' + ''
 
     runHook postInstall
   '';
 
-  postFixup = ''
+  postFixup = lib.optionalString (!stdenv.isDarwin) ''
     makeWrapper ${electron}/bin/electron $out/bin/youtube-music \
       --add-flags $out/share/lib/youtube-music/resources/app.asar \
       --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
@@ -80,8 +91,8 @@ buildNpmPackage rec {
     description = "Electron wrapper around YouTube Music";
     homepage = "https://th-ch.github.io/youtube-music/";
     license = licenses.mit;
-    inherit (electron.meta) platforms;
     maintainers = [ maintainers.aacebedo ];
     mainProgram = "youtube-music";
+    platforms = platforms.all;
   };
 }