# SPDX-FileCopyrightText: 2020 Luke Granger-Brown <depot@lukegb.com>
#
# SPDX-License-Identifier: Apache-2.0

{ depot, pkgs, ... }@args: rec {
  bazel-run = import ./bazel-run.nix args;
  crane = import ./crane.nix args;
  javaws-env = import ./javaws-env.nix args;
  plex-pass = import ./plex-pass.nix args;
  secretsync = import ./secretsync args;
  copybara = pkgs.callPackage ./copybara.nix { };
  hg-git = import ./hg-git.nix args;
  erbium = import ./erbium args;
  sheepshaver = import ./sheepshaver.nix args;
  intermec-cups-driver = pkgs.callPackage ./intermec-cups-driver.nix {};
  deluge = import ./deluge args;
  grafana-plugins = import ./grafana-plugins args;
  unifiHacked = import ./unifi-hack args;
  tiny-remapper = import ./tiny-remapper.nix args;
  django-allauth = pkgs.python3Packages.callPackage ./django-allauth.nix {};
  django-tailwind = pkgs.python3Packages.callPackage ./django-tailwind.nix {};
  windows = import ./windows args;
  hp-rom = import ./hp-rom.nix args;
  enigma = import ./enigma.nix args;
  alertmanager-discord = pkgs.callPackage ./alertmanager-discord.nix {};
  prometheus-snmp-config = import ./prometheus-snmp-config args;
  flameshot = pkgs.libsForQt5.callPackage ./flameshot {};
  lukegb-wallpapers = pkgs.callPackage ./lukegb-wallpapers {};
  rundeck-bin = pkgs.callPackage ./rundeck-bin {};
  mercurial = pkgs.mercurialFull.withExtensions (pm: with pm; [
    hg-evolve
  ]);
  ubi_reader = pkgs.python3Packages.callPackage ./ubi_reader {};
  prometheus-bird-exporter-lfty = pkgs.callPackage ./prometheus-bird-exporter-lfty.nix {};
  eapol-test = pkgs.callPackage ./eapol-test.nix {};
  datez = pkgs.callPackage ./datez {};

  gimp-plugin-vtf = pkgs.callPackage ./gimp-plugin-vtf {};

  kitty-themes = pkgs.fetchFromGitHub {
    owner = "kovidgoyal";
    repo = "kitty-themes";
    rev = "702dbae791c9c0812c8fc4a7ee85c99dadc0dc3d";
    sha256 = "18miswrdy3j2y59alqcw44pc2iv3kmsx7qmvak81z5bkmj2hjrss";
  };

  baserow-oss = pkgs.callPackages ./baserow { ossOnly = true; inherit depot; };
  baserow = pkgs.callPackages ./baserow { ossOnly = false; inherit depot; };

  common-updater-scripts = pkgs.common-updater-scripts.override {
    nix = pkgs.nix_2_3;
  };
  lutris = pkgs.lutris.override {
    extraPkgs = pkgs: with pkgs; [ openssl gnome.zenity ];
  };
  vault-acme = pkgs.callPackage ./vault-acme { };
  nixos-size = pkgs.callPackage ./nixos-size { };

  authentik = import ./authentik args;
  flipperzero-firmware = import ./flipperzero-firmware args;
  jj = import ./jj.nix args;

  readsb = pkgs.callPackage ./readsb { };
  mlat-client = pkgs.python3.pkgs.callPackage ./mlat-client { };
  tcllauncher = pkgs.callPackage ./piaware/tcllauncher.nix { };
  piaware = pkgs.callPackage ./piaware/piaware.nix { inherit tcllauncher faup1090 mlat-client; };
  faup1090 = pkgs.callPackage ./piaware/faup1090.nix { };
  fr24feed = pkgs.callPackage ./fr24feed { };

  qrca = pkgs.libsForQt5.callPackage ./qrca { };

  terminfos = pkgs.callPackage ./terminfos { };

  factorio-mods = import ./factorio-mods args;
  libsolv-py = pkgs.callPackage ./libsolv-py.nix { };

  tailscale = import ./tailscale pkgs.tailscale;
  intel-oclcpuexp = pkgs.callPackage ./intel-oclcpuexp { };

  archipelago = let callPackage = pkgs.python310.pkgs.callPackage; in
    callPackage ./archipelago {
      factorio-rcon-py = callPackage ./archipelago/factorio-rcon-py.nix { };
    };

  freeswitch-sounds = pkgs.callPackage ./freeswitch-sounds.nix { };

  zcl-advanced-platform = pkgs.callPackage ./zcl-advanced-platform { };
  home-assistant-chip = pkgs.python3.pkgs.callPackage ./home-assistant-chip { inherit zcl-advanced-platform; gn = pkgs.gn1924; };

  lukegb-vscode = pkgs.vscode;
} // (import ./heptapod-runner args)