This CL can be used to compare the style of nixpkgs-fmt against other formatters (nixpkgs, alejandra). Change-Id: I87c6abff6bcb546b02ead15ad0405f81e01b6d9e Reviewed-on: https://cl.tvl.fyi/c/depot/+/4397 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org> Reviewed-by: lukegb <lukegb@tvl.fyi> Reviewed-by: wpcarro <wpcarro@gmail.com> Reviewed-by: Profpatsch <mail@profpatsch.de> Reviewed-by: kanepyork <rikingcoding@gmail.com> Reviewed-by: tazjin <tazjin@tvl.su> Reviewed-by: cynthia <cynthia@tvl.fyi> Reviewed-by: edef <edef@edef.eu> Reviewed-by: eta <tvl@eta.st> Reviewed-by: grfn <grfn@gws.fyi>
		
			
				
	
	
		
			33 lines
		
	
	
	
		
			952 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
	
		
			952 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
{ depot, lib, ... }:
 | 
						|
 | 
						|
# Convert an attrset of strings to a list of key/value netstring pairs.
 | 
						|
# A good minimally viable json replacement if all you need is to iterate.
 | 
						|
# You can use e.g. `forstdin -Ed '' item` in execline to split the items
 | 
						|
# and then get the key and value via `multidefine -d '' $item { key value }`
 | 
						|
#
 | 
						|
# Example:
 | 
						|
#   { foo = "bar"; x = "abc"; }
 | 
						|
#   => "12:3:foo,3:bar,,10:1:x,3:abc,,"
 | 
						|
#
 | 
						|
# Example with runExecline:
 | 
						|
#   nix.runExecline "test" {
 | 
						|
#     stdin = nix.netstring.attrsToKeyValList {
 | 
						|
#       foo = "bar";
 | 
						|
#       x = "abc";
 | 
						|
#     };
 | 
						|
#   } [
 | 
						|
#     "forstdin" "-Ed" "" "item"
 | 
						|
#     "multidefine" "-d" "" "$item" [ "key" "value" ]
 | 
						|
#     "${pkgs.coreutils}/bin/echo" "\${key} -> \${value}"
 | 
						|
#   ]
 | 
						|
 | 
						|
#   will print:
 | 
						|
#     foo -> bar
 | 
						|
#     x -> abc
 | 
						|
attrs:
 | 
						|
lib.concatStrings
 | 
						|
  (lib.mapAttrsToList
 | 
						|
    (k: v: depot.nix.netstring.fromString
 | 
						|
      (depot.nix.netstring.fromString k
 | 
						|
        + depot.nix.netstring.fromString v))
 | 
						|
    attrs)
 |