this repo has no description
at develop 1.7 kB view raw
1{ ... }: 2 3let 4 nameTable = { 5 discord = "Discord"; 6 discord-ptb = "DiscordPTB"; 7 discord-canary = "DiscordCanary"; 8 discord-development = "DiscordDevelopment"; 9 }; 10 11 darwinNameTable = { 12 discord = "Discord"; 13 discord-ptb = "Discord PTB"; 14 discord-canary = "Discord Canary"; 15 discord-development = "Discord Development"; 16 }; 17 18 mkOverride = prev: moonlight: name: 19 let discord = prev.${name}; 20 in discord.overrideAttrs (old: { 21 installPhase = let 22 folderName = nameTable.${name}; 23 darwinFolderName = darwinNameTable.${name}; 24 25 injected = '' 26 require("${moonlight}/injector").inject( 27 require("path").join(__dirname, "../_app.asar") 28 ); 29 ''; 30 31 packageJson = '' 32 {"name":"${name}","main":"./injector.js","private":true} 33 ''; 34 35 in old.installPhase + "\n" + '' 36 resources="$out/opt/${folderName}/resources" 37 if [ ! -d "$resources" ]; then 38 resources="$out/Applications/${darwinFolderName}.app/Contents/Resources" 39 fi 40 41 mv "$resources/app.asar" "$resources/_app.asar" 42 mkdir -p "$resources/app" 43 44 cat > "$resources/app/injector.js" <<EOF 45 ${injected} 46 EOF 47 48 echo '${packageJson}' > "$resources/app/package.json" 49 ''; 50 }); 51in final: prev: rec { 52 moonlight-mod = final.callPackage ./default.nix { }; 53 discord = mkOverride prev moonlight-mod "discord"; 54 discord-ptb = mkOverride prev moonlight-mod "discord-ptb"; 55 discord-canary = mkOverride prev moonlight-mod "discord-canary"; 56 discord-development = mkOverride prev moonlight-mod "discord-development"; 57}