Unverified Commit 17c9c6bb authored by Sefa Eyeoglu's avatar Sefa Eyeoglu
Browse files

discord: refactor to use callPackage

parent eda33573
Loading
Loading
Loading
Loading
+110 −84
Original line number Diff line number Diff line
{
  branch ? "stable",
  callPackage,
  fetchurl,
  lib,
  stdenv,
}:
let
  versions =
    if stdenv.hostPlatform.isLinux then
      {
        stable = "0.0.111";
        ptb = "0.0.161";
        canary = "0.0.761";
        development = "0.0.89";
      }
    else
      {
        stable = "0.0.362";
        ptb = "0.0.192";
        canary = "0.0.867";
        development = "0.0.100";
      };
  version = versions.${branch};
  srcs = rec {
  variants = rec {
    x86_64-linux = {
      stable = fetchurl {
      discord = rec {
        version = "0.0.111";

        src = fetchurl {
          url = "https://stable.dl2.discordapp.net/apps/linux/${version}/discord-${version}.tar.gz";
          hash = "sha256-o4U6i223Agtbt1N9v0GO/Ivx68OQcX/N3mHXUX2gruA=";
        };
      ptb = fetchurl {

        branch = "stable";
        binaryName = desktopName;
        desktopName = "Discord";
      };
      discord-ptb = rec {
        version = "0.0.161";

        src = fetchurl {
          url = "https://ptb.dl2.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz";
          hash = "sha256-pDWOnj8tQK9runi/QzcvEFbNGCwAb/gISM9LrLoTzxM=";
        };
      canary = fetchurl {

        branch = "ptb";
        binaryName = "DiscordPTB";
        desktopName = "Discord PTB";
      };
      discord-canary = rec {
        version = "0.0.761";

        src = fetchurl {
          url = "https://canary.dl2.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
          hash = "sha256-L3MIcrz/xj8zOb2QVXBrBCHGt4BdHhjwKpPZ4iClQYQ=";
        };
      development = fetchurl {

        branch = "canary";
        binaryName = "DiscordCanary";
        desktopName = "Discord Canary";
      };
      discord-development = rec {
        version = "0.0.89";

        src = fetchurl {
          url = "https://development.dl2.discordapp.net/apps/linux/${version}/discord-development-${version}.tar.gz";
          hash = "sha256-ZMsBR0LAISrM3dib8fehW/eZGkwSCinQF60jJG76O7M=";
        };

        branch = "development";
        binaryName = "DiscordDevelopment";
        desktopName = "Discord Development";
      };
    };
    x86_64-darwin = {
      stable = fetchurl {
      discord = rec {
        version = "0.0.362";

        src = fetchurl {
          url = "https://stable.dl2.discordapp.net/apps/osx/${version}/Discord.dmg";
          hash = "sha256-DHe0WwJOB3mm1HbQwEOJ9NWqxzhOBQynhjJXYSNvA/k=";
        };
      ptb = fetchurl {

        branch = "stable";
        binaryName = desktopName;
        desktopName = "Discord";
      };
      discord-ptb = rec {
        version = "0.0.192";

        src = fetchurl {
          url = "https://ptb.dl2.discordapp.net/apps/osx/${version}/DiscordPTB.dmg";
          hash = "sha256-AZ9enKJf6WZLELFLKrzeyAR/Q/pzD8SGvCPcInS8vsk=";
        };
      canary = fetchurl {

        branch = "ptb";
        binaryName = desktopName;
        desktopName = "Discord PTB";
      };
      discord-canary = rec {
        version = "0.0.867";

        src = fetchurl {
          url = "https://canary.dl2.discordapp.net/apps/osx/${version}/DiscordCanary.dmg";
          hash = "sha256-67B2wZRZEOKutMPsrRlc96UZWShYLAgwOoF2/QzBgzE=";
        };
      development = fetchurl {

        branch = "canary";
        binaryName = desktopName;
        desktopName = "Discord Canary";
      };
      discord-development = rec {
        version = "0.0.100";

        src = fetchurl {
          url = "https://development.dl2.discordapp.net/apps/osx/${version}/DiscordDevelopment.dmg";
          hash = "sha256-PknNHr9txxp3+nO7FgHH7n04qx6p6Jzbs92/Hcfh13Y=";
        };

        branch = "development";
        binaryName = desktopName;
        desktopName = "Discord Development";
      };
    };

    aarch64-darwin = x86_64-darwin;
    default = x86_64-linux; # Used for unsupported platforms, so we can return *something* there.
  };
  src =
    srcs.${stdenv.hostPlatform.system}.${branch}
      or (throw "${stdenv.hostPlatform.system} not supported on ${branch}");

  meta = {
    description = "All-in-one cross-platform voice and text chat for gamers";
@@ -86,43 +132,23 @@ let
    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
  };
  package = if stdenv.hostPlatform.isLinux then ./linux.nix else ./darwin.nix;

  packages = (
    builtins.mapAttrs
      (
        _: value:
in
lib.genAttrs [ "discord" "discord-ptb" "discord-canary" "discord-development" ] (
  pname:
  let
    args = (variants.${stdenv.hostPlatform.system} or variants.default).${pname};
  in
  callPackage package (
          value
    args
    // {
            inherit src version branch;
      inherit pname;

      meta = meta // {
              mainProgram = value.binaryName;
        mainProgram = args.binaryName;
      };
    }
  )
)
      {
        stable = {
          pname = "discord";
          binaryName = "Discord";
          desktopName = "Discord";
        };
        ptb = rec {
          pname = "discord-ptb";
          binaryName = if stdenv.hostPlatform.isLinux then "DiscordPTB" else desktopName;
          desktopName = "Discord PTB";
        };
        canary = rec {
          pname = "discord-canary";
          binaryName = if stdenv.hostPlatform.isLinux then "DiscordCanary" else desktopName;
          desktopName = "Discord Canary";
        };
        development = rec {
          pname = "discord-development";
          binaryName = if stdenv.hostPlatform.isLinux then "DiscordDevelopment" else desktopName;
          desktopName = "Discord Development";
        };
// {
  supportedSystems = builtins.attrNames variants;
}
  );
in
packages.${branch}
+6 −24
Original line number Diff line number Diff line
@@ -15046,30 +15046,12 @@ with pkgs;

  httraqt = libsForQt5.callPackage ../tools/backup/httrack/qt.nix { };

  # Overriding does not work when using callPackage on discord using import instead. (https://github.com/NixOS/nixpkgs/pull/179906)
  discord = import ../applications/networking/instant-messengers/discord {
    inherit lib stdenv;
    inherit (pkgs) callPackage fetchurl;
    branch = "stable";
  };

  discord-ptb = import ../applications/networking/instant-messengers/discord {
    inherit lib stdenv;
    inherit (pkgs) callPackage fetchurl;
    branch = "ptb";
  };

  discord-canary = import ../applications/networking/instant-messengers/discord {
    inherit lib stdenv;
    inherit (pkgs) callPackage fetchurl;
    branch = "canary";
  };

  discord-development = import ../applications/networking/instant-messengers/discord {
    inherit lib stdenv;
    inherit (pkgs) callPackage fetchurl;
    branch = "development";
  };
  inherit (callPackage ../applications/networking/instant-messengers/discord { })
    discord
    discord-ptb
    discord-canary
    discord-development
    ;

  discord-screenaudio =
    qt6Packages.callPackage ../applications/networking/instant-messengers/discord-screenaudio