{
  writeShellApplication,
  coreutils,
  gnused,
  jq,
  yq,
  bat,

  nix-select ? "",
  nixpkgs-lib ? "",
  extraRuntimeDeps ? [ ],
}:
writeShellApplication {
  name = "nixq";

  text = builtins.readFile ./nixq.sh;
  extraShellCheckFlags = [ "--severity" "info" ];

  runtimeInputs = [
    coreutils
    gnused
    jq
    yq
    bat
  ] ++ extraRuntimeDeps;

  runtimeEnv = {
    NIXQ_NIX_SELECT_PATH = nix-select;
    NIXQ_NIXPKGS_LIB_PATH = nixpkgs-lib;
  };
}