at 22.05-pre 94 lines 2.2 kB view raw
1{ stdenvNoCC 2, lib 3, fetchFromGitHub 4, ffmpeg 5, yt-dlp 6, electron 7, makeWrapper 8, makeDesktopItem 9, copyDesktopItems 10, yarn2nix-moretea 11, chromium 12}: 13 14stdenvNoCC.mkDerivation rec { 15 pname = "Sharedown"; 16 version = "2.0.0"; 17 18 src = fetchFromGitHub { 19 owner = "kylon"; 20 repo = pname; 21 rev = version; 22 sha256 = "sha256-Z6OsZvVzk//qEkl4ciNz4cQRqC2GFg0qYgmliAyz6fo="; 23 }; 24 25 nativeBuildInputs = [ 26 copyDesktopItems 27 makeWrapper 28 ]; 29 30 desktopItems = [ 31 (makeDesktopItem { 32 name = "Sharedown"; 33 exec = "Sharedown"; 34 icon = "Sharedown"; 35 comment = "An Application to save your Sharepoint videos for offline usage."; 36 desktopName = "Sharedown"; 37 categories = "Network;Archiving"; 38 }) 39 ]; 40 41 dontBuild = true; 42 43 installPhase = 44 let 45 binPath = lib.makeBinPath ([ 46 ffmpeg 47 yt-dlp 48 ]); 49 50 modules = yarn2nix-moretea.mkYarnModules { 51 name = "${pname}-modules-${version}"; 52 inherit pname version; 53 54 yarnFlags = yarn2nix-moretea.defaultYarnFlags ++ [ 55 "--production" 56 ]; 57 58 packageJSON = "${src}/package.json"; 59 yarnLock = ./yarn.lock; 60 yarnNix = ./yarndeps.nix; 61 }; 62 in 63 '' 64 runHook preInstall 65 66 mkdir -p "$out/bin" "$out/share/Sharedown" "$out/share/applications" "$out/share/icons/hicolor/512x512/apps" 67 68 # Electron app 69 cp -r *.js *.json sharedownlogo.png sharedown "${modules}/node_modules" "$out/share/Sharedown" 70 71 # Desktop Launcher 72 cp build/icon.png "$out/share/icons/hicolor/512x512/apps/Sharedown.png" 73 74 # Install electron wrapper script 75 makeWrapper "${electron}/bin/electron" "$out/bin/Sharedown" \ 76 --add-flags "$out/share/Sharedown" \ 77 --prefix PATH : "${binPath}" \ 78 --set PUPPETEER_EXECUTABLE_PATH "${chromium}/bin/chromium" 79 80 runHook postInstall 81 ''; 82 83 passthru.updateScript = ./update.sh; 84 85 meta = with lib; { 86 description = "Application to save your Sharepoint videos for offline usage"; 87 homepage = "https://github.com/kylon/Sharedown"; 88 license = licenses.gpl3Plus; 89 maintainers = with maintainers; [ 90 jtojnar 91 ]; 92 platforms = platforms.unix; 93 }; 94}