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

{ system ? builtins.currentSystem, ... }:

let
  fix = f: let x = f x; in x;
  config = depot: {
    inherit depot system;
    pkgs = depot.third_party.nixpkgs;
    depotRoot = toString ./.;
  };
in fix (self:
  let ch = (self.config // { inherit (self) lib; });
  in {
    config = config self;

    third_party = import ./third_party ch;
    ops = import ./ops ch;
    nix = import ./nix ch;
    web = import ./web ch;
    go = import ./go ch;
    py = import ./py ch;
    rust = import ./rust ch;

    version = import ./version.nix ch;

    lib = self.third_party.nixpkgs.lib;

    pkgs = self.third_party.nixpkgs // self.nix.pkgs;
  })