1{2 lib,3 inputs',4 pkgs,5 config,6 ...7}:8let9 inherit (lib.options) mkOption mkPackageOption;10 inherit (lib.types) listOf package functionTo;11in12{13 options = {14 tf.package = mkPackageOption pkgs "terraform" {15 extraDescription = "Terraform package to use";16 };17 tf.providers = mkOption {18 description = "List of used terraform providers";19 type = functionTo (listOf package);20 default = _: [ ];21 };22 tf.finalPackage = mkOption {23 description = "Terraform package with all providers";24 type = package;25 };26 };27 config = {28 tf.finalPackage = inputs'.fleet-tf.packages.terraform-locked.override {29 inherit (config.tf) providers;30 terraform = config.tf.package;31 };32 shelly.shells.default = {33 packages = [ config.tf.finalPackage ];34 };35 packages.terraform = config.tf.finalPackage;36 };37}