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; };
 | |
| }
 |