Change-Id: I6c6847fac56f0a9a1a2209792e00a3aec5e672b9 Reviewed-on: https://cl.tvl.fyi/c/depot/+/10809 Autosubmit: aspen <root@gws.fyi> Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI Reviewed-by: lukegb <lukegb@tvl.fyi>
		
			
				
	
	
		
			62 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
args@{ pkgs, depot, ... }:
 | 
						|
with pkgs;
 | 
						|
let
 | 
						|
  site = import ./site.nix args;
 | 
						|
  resume = import ../resume args;
 | 
						|
  bucket = "s3://gws.fyi";
 | 
						|
  distributionID = "E2ST43JNBH8C64";
 | 
						|
 | 
						|
  css = runCommand "main.css"
 | 
						|
    {
 | 
						|
      buildInputs = [ pkgs.minify ];
 | 
						|
    } ''
 | 
						|
    minify --type css < ${./main.css} > $out
 | 
						|
  '';
 | 
						|
 | 
						|
  keys = runCommand "ssh-keys" { } ''
 | 
						|
    touch $out
 | 
						|
    echo "${depot.users.aspen.keys.main}" >> $out
 | 
						|
  '';
 | 
						|
 | 
						|
  website =
 | 
						|
    runCommand "gws.fyi" { } ''
 | 
						|
      mkdir -p $out
 | 
						|
      cp ${css} $out/main.css
 | 
						|
      cp ${site.index} $out/index.html
 | 
						|
      cp -r ${site.recipes} $out/recipes
 | 
						|
      cp ${resume} $out/resume.pdf
 | 
						|
      cp ${keys} $out/keys
 | 
						|
      cp ${./pubkey.gpg} $out/pubkey.gpg
 | 
						|
    '';
 | 
						|
 | 
						|
  purge-cf = writeShellApplication {
 | 
						|
    name = "purge-cf.sh";
 | 
						|
    runtimeInputs = [ httpie jq pass ];
 | 
						|
    text = ''
 | 
						|
      cfapi() {
 | 
						|
        http \
 | 
						|
          "https://api.cloudflare.com/client/v4/$1" \
 | 
						|
          X-Auth-Email:root@gws.fyi \
 | 
						|
          "X-Auth-Key: $(pass cloudflare-api-key)" \
 | 
						|
          "''${@:2}"
 | 
						|
      }
 | 
						|
 | 
						|
      zone_id=$(
 | 
						|
        cfapi zones \
 | 
						|
          | jq -r '.result[] | select(.name == "gws.fyi") | .id'
 | 
						|
      )
 | 
						|
 | 
						|
      cfapi "zones/$zone_id/purge_cache" purge_everything:=true
 | 
						|
    '';
 | 
						|
  };
 | 
						|
in
 | 
						|
(writeShellApplication {
 | 
						|
  name = "deploy.sh";
 | 
						|
  runtimeInputs = [ awscli2 ];
 | 
						|
  text = ''
 | 
						|
    aws --profile personal s3 sync ${website}/ ${bucket}
 | 
						|
    echo "Deployed to http://gws.fyi"
 | 
						|
  '';
 | 
						|
}).overrideAttrs {
 | 
						|
  passthru = { inherit website site purge-cf; };
 | 
						|
}
 |