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>
		
			
				
	
	
		
			70 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{ depot, lib, ... }:
 | 
						|
 | 
						|
let
 | 
						|
  # TODO(sterni): find a better place for this: is dot time //fun?
 | 
						|
 | 
						|
  # get the email address of a depot user from //ops/users
 | 
						|
  findEmail = user:
 | 
						|
    let
 | 
						|
      res = builtins.filter ({ username, ... }: username == user) depot.ops.users;
 | 
						|
      len = builtins.length res;
 | 
						|
    in
 | 
						|
    if len == 1
 | 
						|
    then (builtins.head res).email
 | 
						|
    else builtins.throw "findEmail: got ${toString len} results instead of 1";
 | 
						|
 | 
						|
  # dot-time(7) man page, ported from dotti.me
 | 
						|
  dot-time = rec {
 | 
						|
    name = "dot-time";
 | 
						|
    section = 7;
 | 
						|
    content = ''
 | 
						|
      .Dd $Mdocdate$
 | 
						|
      .Dt ${lib.toUpper name} ${toString section}
 | 
						|
      .Os
 | 
						|
      .Sh NAME
 | 
						|
      .Nm ${name}
 | 
						|
      .Nd a universal convention for conveying time
 | 
						|
      .Sh DESCRIPTION
 | 
						|
      For those of us who travel often or coordinate across many timezones,
 | 
						|
      working with local time is frequently impractical.
 | 
						|
      ISO8601, in all its wisdom, allows for time zone designators,
 | 
						|
      but still represents the hours and minutes as local time,
 | 
						|
      thus making it inconvenient for quickly comparing timestamps from
 | 
						|
      different locations.
 | 
						|
      .Pp
 | 
						|
      Dot time instead uses UTC for all date, hour, and minute indications,
 | 
						|
      and while it allows for time zone designators, they are optional
 | 
						|
      information that can be dropped without changing the indicated time.
 | 
						|
      It uses an alternate hour separator to make it easy to distinguish from
 | 
						|
      regular ISO8601.
 | 
						|
      When a time zone designator is provided, one can easily obtain
 | 
						|
      the matching local time by adding the UTC offset to the UTC time.
 | 
						|
      .Sh EXAMPLES
 | 
						|
      These timestamps all represent the same point in time.
 | 
						|
      .TS
 | 
						|
      allbox tab(|);
 | 
						|
      lb | lb | lb
 | 
						|
      l  | l  | l.
 | 
						|
      dot time|ISO8601|RFC3339
 | 
						|
      2019-06-19T22·13-04|2019-06-19T18:13-04|2019-06-19T18:13:00-04:00
 | 
						|
      2019-06-19T22·13+00|2019-06-19T22:13+00|2019-06-19T22:13:00Z
 | 
						|
      2019-06-19T22·13+02|2019-06-20T00:13+02|2019-06-20T00:13:00+02:00
 | 
						|
      .TE
 | 
						|
      .Sh SEE ALSO
 | 
						|
      .Lk https://dotti.me dotti.me
 | 
						|
      .Sh AUTHORS
 | 
						|
      .An -nosplit
 | 
						|
      .Sy dot time
 | 
						|
      has been proposed and documented by
 | 
						|
      .An edef Aq Mt ${findEmail "edef"}
 | 
						|
      and ported to
 | 
						|
      .Xr mdoc 7
 | 
						|
      by
 | 
						|
      .An sterni Aq Mt ${findEmail "sterni"} .
 | 
						|
    '';
 | 
						|
  };
 | 
						|
 | 
						|
in
 | 
						|
depot.nix.buildManPages "dot-time" { } [
 | 
						|
  dot-time
 | 
						|
]
 |