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>
		
			
				
	
	
		
			82 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{ depot, pkgs, lib, ... }:
 | 
						|
 | 
						|
let
 | 
						|
 | 
						|
  scripts = [
 | 
						|
    ./hello.nix
 | 
						|
    ./derivation-svg.nix
 | 
						|
    (substituteAll {
 | 
						|
      src = ./blog.nix;
 | 
						|
      # by making this a plain string this
 | 
						|
      # can be something outside the nix store!
 | 
						|
      blogdir = ./posts;
 | 
						|
    })
 | 
						|
  ];
 | 
						|
 | 
						|
  inherit (depot.nix)
 | 
						|
    writeExecline
 | 
						|
    runExecline
 | 
						|
    getBins
 | 
						|
    ;
 | 
						|
 | 
						|
  inherit (depot.web.bubblegum)
 | 
						|
    writeCGI
 | 
						|
    ;
 | 
						|
 | 
						|
  inherit (pkgs)
 | 
						|
    runCommandLocal
 | 
						|
    substituteAll
 | 
						|
    ;
 | 
						|
 | 
						|
  bins = (getBins pkgs.thttpd [ "thttpd" ])
 | 
						|
    // (getBins pkgs.coreutils [ "printf" "cp" "mkdir" ]);
 | 
						|
 | 
						|
  webRoot =
 | 
						|
    let
 | 
						|
      copyScripts = lib.concatMap
 | 
						|
        (path:
 | 
						|
          let
 | 
						|
            cgi = writeCGI
 | 
						|
              {
 | 
						|
                # assume we are on NixOS since thttpd doesn't set PATH.
 | 
						|
                # using third_party.nix is tricky because not everyone
 | 
						|
                # has a tvix daemon running.
 | 
						|
                binPath = "/run/current-system/sw/bin";
 | 
						|
              }
 | 
						|
              path;
 | 
						|
          in
 | 
						|
          [
 | 
						|
            "if"
 | 
						|
            [ bins.cp cgi "\${out}/${cgi.name}" ]
 | 
						|
          ])
 | 
						|
        scripts;
 | 
						|
    in
 | 
						|
    runExecline.local "webroot" { } ([
 | 
						|
      "importas"
 | 
						|
      "out"
 | 
						|
      "out"
 | 
						|
      "if"
 | 
						|
      [ bins.mkdir "-p" "$out" ]
 | 
						|
    ] ++ copyScripts);
 | 
						|
 | 
						|
  port = 9000;
 | 
						|
 | 
						|
in
 | 
						|
writeExecline "serve-examples" { } [
 | 
						|
  "foreground"
 | 
						|
  [
 | 
						|
    bins.printf
 | 
						|
    "%s\n"
 | 
						|
    "Running on http://localhost:${toString port}"
 | 
						|
  ]
 | 
						|
  "${bins.thttpd}"
 | 
						|
  "-D"
 | 
						|
  "-p"
 | 
						|
  (toString port)
 | 
						|
  "-l"
 | 
						|
  "/dev/stderr"
 | 
						|
  "-c"
 | 
						|
  "*.nix"
 | 
						|
  "-d"
 | 
						|
  webRoot
 | 
						|
]
 |