difftreelog
fix do not require wildcard with callPackage
in: trunk
6 files changed
cmds/fleet/src/cmds/secrets/mod.rsdiffbeforeafterboth265 let generator = nix_go!(secret.generator);265 let generator = nix_go!(secret.generator);266 let on: Option<String> = nix_go_json!(default_generator.impureOn);266 let on: Option<String> = nix_go_json!(default_generator.impureOn);267268 let nixpkgs = &config.nixpkgs;267269268 let host = if let Some(on) = &on {270 let host = if let Some(on) = &on {269 config.host(on).await?271 config.host(on).await?270 } else {272 } else {271 config.local_host()273 config.local_host()272 };274 };273 let on_pkgs = host.pkgs().await?;275 let on_pkgs = host.pkgs().await?;274 let call_package = nix_go!(on_pkgs.callPackage);275 let mk_secret_generators = nix_go!(on_pkgs.mkSecretGenerators);276 let mk_secret_generators = nix_go!(on_pkgs.mkSecretGenerators);276277277 let mut recipients = Vec::new();278 let mut recipients = Vec::new();280 recipients.push(key);281 recipients.push(key);281 }282 }282 let generators = nix_go!(mk_secret_generators(Obj { recipients }));283 let generators = nix_go!(mk_secret_generators(Obj { recipients }));284 let pkgs_and_generators = nix_go!(on_pkgs + generators);285286 let call_package = nix_go!(nixpkgs.lib.callPackageWith(pkgs_and_generators));283287284 let generator = nix_go!(call_package(generator)(generators));288 let generator = nix_go!(call_package(generator)(Obj {}));285289286 let generator = generator.build_maybe_batch(batch).await?;290 let generator = generator.build_maybe_batch(batch).await?;287 let generator = generator291 let generator = generator353 bail!("generator should be lambda, got {gen_ty}");357 bail!("generator should be lambda, got {gen_ty}");354 }358 }355 }359 }360 let nixpkgs = &config.nixpkgs;356 let default_pkgs = &config.default_pkgs;361 let default_pkgs = &config.default_pkgs;357 let default_call_package = nix_go!(default_pkgs.callPackage);358 let default_mk_secret_generators = nix_go!(default_pkgs.mkSecretGenerators);362 let default_mk_secret_generators = nix_go!(default_pkgs.mkSecretGenerators);359 // Generators provide additional information in passthru, to access363 // Generators provide additional information in passthru, to access360 // passthru we should call generator, but information about where this generator is supposed to build364 // passthru we should call generator, but information about where this generator is supposed to build367 let generators = nix_go!(default_mk_secret_generators(Obj {371 let generators = nix_go!(default_mk_secret_generators(Obj {368 recipients: <Vec<String>>::new(),372 recipients: <Vec<String>>::new(),369 }));373 }));374 let pkgs_and_generators = nix_go!(default_pkgs + generators);375376 let call_package = nix_go!(nixpkgs.lib.callPackageWith(pkgs_and_generators));370 let default_generator = nix_go!(default_call_package(generator)(generators));377 let default_generator = nix_go!(call_package(generator)(Obj {}));371378372 let kind: GeneratorKind = nix_go_json!(default_generator.generatorKind);379 let kind: GeneratorKind = nix_go_json!(default_generator.generatorKind);373380crates/fleet-base/src/host.rsdiffbeforeafterboth343435 /// import nixpkgs {system = local};35 /// import nixpkgs {system = local};36 pub default_pkgs: Value,36 pub default_pkgs: Value,37 pub nixpkgs: Value,373838 pub nix_session: NixSession,39 pub nix_session: NixSession,39}40}crates/fleet-base/src/opts.rsdiffbeforeafterboth225 nix_args,225 nix_args,226 config_field,226 config_field,227 default_pkgs,227 default_pkgs,228 nixpkgs,228 localhost: self.localhost.to_owned(),229 localhost: self.localhost.to_owned(),229 })))230 })))230 }231 }crates/nix-eval/src/macros.rsdiffbeforeafterboth231 (@o($o:ident) | $($var:tt)*) => {231 (@o($o:ident) | $($var:tt)*) => {232 $o.push(Index::Pipe($crate::nix_expr_inner!($($var)+)));232 $o.push(Index::Pipe($crate::nix_expr_inner!($($var)+)));233 };233 };234 (@o($o:ident) + $($var:tt)*) => {235 $o.push(Index::Merge($crate::nix_expr_inner!($($var)+)));236 };234 (@o($o:ident)) => {};237 (@o($o:ident)) => {};235 ($field:ident $($tt:tt)+) => {{238 ($field:ident $($tt:tt)+) => {{236 use $crate::{nix_go, Index};239 use $crate::{nix_go, Index};crates/nix-eval/src/value.rsdiffbeforeafterboth15 Expr(NixExprBuilder),15 Expr(NixExprBuilder),16 ExprApply(NixExprBuilder),16 ExprApply(NixExprBuilder),17 Pipe(NixExprBuilder),17 Pipe(NixExprBuilder),18 Merge(NixExprBuilder),18}19}19impl Index {20impl Index {20 pub fn var(v: impl AsRef<str>) -> Self {21 pub fn var(v: impl AsRef<str>) -> Self {56 Index::Pipe(e) => {57 Index::Pipe(e) => {57 write!(f, "<map>({})", e.out)58 write!(f, "<map>({})", e.out)58 }59 }60 Index::Merge(e) => {61 write!(f, "//({})", e.out)62 }59 }63 }60 }64 }61}65}157 let index = format!("sess_field_{}", index.0.value.expect("value"));161 let index = format!("sess_field_{}", index.0.value.expect("value"));158 query = format!("({index} {query})");162 query = format!("({index} {query})");159 }163 }164 Index::Merge(v) => {165 let index = Value::new(self.0.session.clone(), &v.out).await?;166 used_fields.push(index.clone());167 let index = format!("sess_field_{}", index.0.value.expect("value"));168 query = format!("({query} // {index})");169 }160 }170 }161 }171 }162172lib/default.nixdiffbeforeafterboth46 mkPassword = {size ? 32}: {46 mkPassword = {size ? 32}: {47 coreutils,47 coreutils,48 mkSecretGenerator,48 mkSecretGenerator,49 ...50 }:49 }:51 mkSecretGenerator {50 mkSecretGenerator {52 script = ''51 script = ''58 mkEd25519 = {57 mkEd25519 = {59 noEmbedPublic ? false,58 noEmbedPublic ? false,60 encoding ? null,59 encoding ? null,61 }: {mkSecretGenerator, ...}:60 }: {mkSecretGenerator}:62 mkSecretGenerator {61 mkSecretGenerator {63 script = ''62 script = ''64 mkdir $out63 mkdir $out68 '';67 '';69 };68 };706971 mkX25519 = {encoding ? null}: {mkSecretGenerator, ...}:70 mkX25519 = {encoding ? null}: {mkSecretGenerator}:72 mkSecretGenerator {71 mkSecretGenerator {73 script = ''72 script = ''74 mkdir $out73 mkdir $out80 mkRsa = {size ? 4096}: {79 mkRsa = {size ? 4096}: {81 openssl,80 openssl,82 mkSecretGenerator,81 mkSecretGenerator,83 ...84 }:82 }:85 mkSecretGenerator {83 mkSecretGenerator {86 script = ''84 script = ''98 count ? 32,96 count ? 32,99 encoding,97 encoding,100 noNuls ? false,98 noNuls ? false,101 }: {mkSecretGenerator, ...}:99 }: {mkSecretGenerator}:102 mkSecretGenerator {100 mkSecretGenerator {103 script = ''101 script = ''104 mkdir $out102 mkdir $out