diff options
author | Profpatsch <mail@profpatsch.de> | 2022-01-09T00·20+0100 |
---|---|---|
committer | Profpatsch <mail@profpatsch.de> | 2022-01-09T09·32+0000 |
commit | fed41f49597d5f8e0501fa494b314e3fa04d0883 (patch) | |
tree | 409b57db65b4a1b16293b8cf5d0242df90b9fce1 /users/Profpatsch/execline/default.nix | |
parent | e1044c1559a01eee10bcd71122077dcdc2ea7e9a (diff) |
feat(users/Profpatsch): set up stow for nix-home r/3577
nix-home is (hopefully) gonna be a home-manager alternative for my home directory. Files are symlinked into the home directory via GNU stow (since that is a tried and tested tool), so first step is to set up the base code for that. Implements a small tool that reads a single environment variable and prints it to stdout. Change-Id: Ifa3fd9f9e1cedc52c3002196d3971b02cb840e80 Reviewed-on: https://cl.tvl.fyi/c/depot/+/4832 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de> Autosubmit: Profpatsch <mail@profpatsch.de>
Diffstat (limited to 'users/Profpatsch/execline/default.nix')
-rw-r--r-- | users/Profpatsch/execline/default.nix | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/users/Profpatsch/execline/default.nix b/users/Profpatsch/execline/default.nix index 1f75b97591fc..c6a8d284a634 100644 --- a/users/Profpatsch/execline/default.nix +++ b/users/Profpatsch/execline/default.nix @@ -5,8 +5,29 @@ let name = "exec-helpers"; } (builtins.readFile ./exec_helpers.rs); + print-one-env = depot.nix.writers.rustSimple { + name = "print-one-env"; + dependencies = [ + depot.users.Profpatsch.execline.exec-helpers + ]; + } '' + extern crate exec_helpers; + use std::os::unix::ffi::OsStrExt; + use std::io::Write; + + fn main() { + let args = exec_helpers::args("print-one-env", 1); + let valname = std::ffi::OsStr::from_bytes(&args[0]); + match std::env::var_os(&valname) { + None => exec_helpers::die_user_error("print-one-env", format!("Env variable `{:?}` is not set", valname)), + Some(val) => std::io::stdout().write_all(&val.as_bytes()).unwrap() + } + } + ''; + in depot.nix.readTree.drvTargets { inherit exec-helpers + print-one-env ; } |