diff options
Diffstat (limited to 'default.nix')
| -rw-r--r-- | default.nix | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/default.nix b/default.nix index fa9d521..4ae9a74 100644 --- a/default.nix +++ b/default.nix @@ -28,6 +28,23 @@ rustPlatform.buildRustPackage (finalAttrs: { pam ]; + # Support reading config from a file path instead of only inline JSON, + # since NixOS appends comments to PAM rule lines which breaks JSON parsing. + postPatch = '' + substituteInPlace src/lib.rs \ + --replace-fail \ + 'let arg_string = args.iter().map(|s| s.to_str().unwrap()).collect::<Vec<_>>().join(" ");' \ + 'let arg_string = { + let joined = args.iter().map(|s| s.to_str().unwrap()).collect::<Vec<_>>().join(" "); + if joined.starts_with("/") { + std::fs::read_to_string(joined.split_whitespace().next().unwrap()) + .unwrap_or(joined) + } else { + joined + } + };' + ''; + # cdylib produces no binaries, only libpam_any.so installPhase = '' runHook preInstall |
