about summary refs log tree commit diff
path: root/users/grfn/web/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'users/grfn/web/default.nix')
-rw-r--r--users/grfn/web/default.nix34
1 files changed, 29 insertions, 5 deletions
diff --git a/users/grfn/web/default.nix b/users/grfn/web/default.nix
index 5ab3614d7902..580e1c8cd1cd 100644
--- a/users/grfn/web/default.nix
+++ b/users/grfn/web/default.nix
@@ -28,10 +28,34 @@ let
       cp ${keys} $out/keys
     '';
 
+  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
-(writeShellScript "deploy.sh" ''
-  ${awscli2}/bin/aws --profile personal s3 sync ${website}/ ${bucket}
-  echo "Deployed to http://gws.fyi"
-'') // {
-  inherit website site;
+(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; };
 }