From 5d8490d2fc7a735f747704792d4fc7d779d6e471 Mon Sep 17 00:00:00 2001 From: sterni Date: Mon, 15 Mar 2021 22:32:16 +0100 Subject: feat(users/Profpatsch): build attrset members on CI Setting meta.targets to include all derivations in the different package sets in Profpatsch's user folder makes them checked by CI until they do the readTree refactor as promised. To reduce code duplication we handle this in a simple function which is exposed from nix.utils which may be a good place for depot specific bits and bops we accumulate over time. To get around the issue of too nested sets we perform the following renames: * users.Profpatsch.tests gets moved into its own directory * users.Profpatsch.arglib.netencode now lives in its own file instead of the default.nix * users.Profpatsch.netstring.tests gets moved into its own directory Change-Id: Icd039c29d7760a711c1c53554504d6b0cd19e120 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2603 Tested-by: BuildkiteCI Reviewed-by: Profpatsch --- users/Profpatsch/arglib/default.nix | 44 ----------------------------------- users/Profpatsch/arglib/netencode.nix | 40 +++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 44 deletions(-) delete mode 100644 users/Profpatsch/arglib/default.nix create mode 100644 users/Profpatsch/arglib/netencode.nix (limited to 'users/Profpatsch/arglib') diff --git a/users/Profpatsch/arglib/default.nix b/users/Profpatsch/arglib/default.nix deleted file mode 100644 index b263654ac3e0..000000000000 --- a/users/Profpatsch/arglib/default.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ depot, pkgs, lib, ... }: - -let - netencode = { - rust = depot.users.Profpatsch.writers.rustSimpleLib { - name = "arglib-netencode"; - dependencies = [ - depot.users.Profpatsch.execline.exec-helpers - depot.users.Profpatsch.netencode.netencode-rs - ]; - } '' - extern crate netencode; - extern crate exec_helpers; - - use netencode::{T}; - use std::os::unix::ffi::OsStrExt; - - pub fn arglib_netencode(prog_name: &str, env: Option<&std::ffi::OsStr>) -> T { - let env = match env { - None => std::ffi::OsStr::from_bytes("ARGLIB_NETENCODE".as_bytes()), - Some(a) => a - }; - let t = match std::env::var_os(env) { - None => exec_helpers::die_user_error(prog_name, format!("could not read args, envvar {} not set", env.to_string_lossy())), - // TODO: good error handling for the different parser errors - Some(soup) => match netencode::parse::t_t(soup.as_bytes()) { - Ok((remainder, t)) => match remainder.is_empty() { - true => t, - false => exec_helpers::die_environment_problem(prog_name, format!("arglib: there was some unparsed bytes remaining: {:?}", remainder)) - }, - Err(err) => exec_helpers::die_environment_problem(prog_name, format!("arglib parsing error: {:?}", err)) - } - }; - std::env::remove_var(env); - t - } - ''; - }; - -in { - inherit - netencode - ; -} diff --git a/users/Profpatsch/arglib/netencode.nix b/users/Profpatsch/arglib/netencode.nix new file mode 100644 index 000000000000..6b568ab80d6e --- /dev/null +++ b/users/Profpatsch/arglib/netencode.nix @@ -0,0 +1,40 @@ +{ depot, pkgs, lib, ... }: + +let + netencode = { + rust = depot.users.Profpatsch.writers.rustSimpleLib { + name = "arglib-netencode"; + dependencies = [ + depot.users.Profpatsch.execline.exec-helpers + depot.users.Profpatsch.netencode.netencode-rs + ]; + } '' + extern crate netencode; + extern crate exec_helpers; + + use netencode::{T}; + use std::os::unix::ffi::OsStrExt; + + pub fn arglib_netencode(prog_name: &str, env: Option<&std::ffi::OsStr>) -> T { + let env = match env { + None => std::ffi::OsStr::from_bytes("ARGLIB_NETENCODE".as_bytes()), + Some(a) => a + }; + let t = match std::env::var_os(env) { + None => exec_helpers::die_user_error(prog_name, format!("could not read args, envvar {} not set", env.to_string_lossy())), + // TODO: good error handling for the different parser errors + Some(soup) => match netencode::parse::t_t(soup.as_bytes()) { + Ok((remainder, t)) => match remainder.is_empty() { + true => t, + false => exec_helpers::die_environment_problem(prog_name, format!("arglib: there was some unparsed bytes remaining: {:?}", remainder)) + }, + Err(err) => exec_helpers::die_environment_problem(prog_name, format!("arglib parsing error: {:?}", err)) + } + }; + std::env::remove_var(env); + t + } + ''; + }; + +in depot.nix.utils.drvTargets netencode -- cgit 1.4.1