{
  fetchurl,
  lib,
  pkgs,
  stdenv,
  ...
} @ args: let
  buildFirefoxXpiAddon = lib.makeOverridable ({
    stdenv ? args.stdenv,
    fetchurl ? args.fetchurl,
    pname,
    version,
    addonId,
    url,
    sha256,
    meta,
    ...
  }:
    stdenv.mkDerivation {
      name = "${pname}-${version}";

      inherit meta;

      src = fetchurl {inherit url sha256;};

      preferLocalBuild = true;
      allowSubstitutes = true;

      buildCommand =
        # bash
        ''
          dst="$out/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
          mkdir -p "$dst"
          install -v -m644 "$src" "$dst/${addonId}.xpi"
        '';
    });

  packages = import ./generated-firefox-addons.nix {
    inherit buildFirefoxXpiAddon fetchurl lib stdenv;
  };
in
  lib.makeScope pkgs.newScope (
    _:
      packages
      // {
        inherit buildFirefoxXpiAddon;

        seventv = buildFirefoxXpiAddon {
          pname = "frankerfacez";
          version = "4.0";
          addonId = "frankerfacez@frankerfacez.com";
          url = "https://cdn.frankerfacez.com/script/frankerfacez-4.0-an+fx.xpi";
          sha256 = "sha256-U/yAra2c+RlGSaQtHfBz9XYsoDaJ67gmPJBsFrpqoE8=";
          meta = with lib; {
            homepage = "https://www.frankerfacez.com/";
            description = "The Twitch Enhancement Suite. Get custom emotes and tons of new features you'll never want to go without.";
            license = licenses.asl20;
            platforms = platforms.all;
          };
        };
      }
  )