diff options
Diffstat (limited to 'users/glittershark/gws.fyi')
-rw-r--r-- | users/glittershark/gws.fyi/.envrc | 1 | ||||
-rw-r--r-- | users/glittershark/gws.fyi/.gitignore | 2 | ||||
-rw-r--r-- | users/glittershark/gws.fyi/Makefile | 30 | ||||
-rw-r--r-- | users/glittershark/gws.fyi/config.el | 6 | ||||
-rw-r--r-- | users/glittershark/gws.fyi/default.nix | 21 | ||||
-rw-r--r-- | users/glittershark/gws.fyi/index.org | 22 | ||||
-rw-r--r-- | users/glittershark/gws.fyi/orgExportHTML.nix | 54 | ||||
-rw-r--r-- | users/glittershark/gws.fyi/shell.nix | 9 | ||||
-rw-r--r-- | users/glittershark/gws.fyi/site.nix | 11 |
9 files changed, 156 insertions, 0 deletions
diff --git a/users/glittershark/gws.fyi/.envrc b/users/glittershark/gws.fyi/.envrc new file mode 100644 index 000000000000..be81feddb1a5 --- /dev/null +++ b/users/glittershark/gws.fyi/.envrc @@ -0,0 +1 @@ +eval "$(lorri direnv)" \ No newline at end of file diff --git a/users/glittershark/gws.fyi/.gitignore b/users/glittershark/gws.fyi/.gitignore new file mode 100644 index 000000000000..7783c2834f92 --- /dev/null +++ b/users/glittershark/gws.fyi/.gitignore @@ -0,0 +1,2 @@ +result +letsencrypt diff --git a/users/glittershark/gws.fyi/Makefile b/users/glittershark/gws.fyi/Makefile new file mode 100644 index 000000000000..83b60ef9bb52 --- /dev/null +++ b/users/glittershark/gws.fyi/Makefile @@ -0,0 +1,30 @@ +.PHONY: deploy + +deploy: + @$(shell nix-build `git rev-parse --show-toplevel` -A 'users.glittershark."gws.fyi"') + +renew: + @echo Renewing... + @certbot certonly \ + --manual \ + --domain www.gws.fyi \ + --preferred-challenges dns \ + --server https://acme-v02.api.letsencrypt.org/directory \ + --agree-tos \ + --work-dir $(shell pwd)/letsencrypt/work \ + --logs-dir $(shell pwd)/letsencrypt/logs \ + --config-dir $(shell pwd)/letsencrypt/config + @echo "Reimporting certificate" + @aws acm import-certificate \ + --certificate file://letsencrypt/config/live/www.gws.fyi/cert.pem \ + --certificate-chain file://letsencrypt/config/live/www.gws.fyi/fullchain.pem \ + --private-key file://letsencrypt/config/live/www.gws.fyi/privkey.pem \ + --certificate-arn arn:aws:acm:us-east-1:797089351721:certificate/628e54f3-55f9-49c0-811a-eba516b68e30 \ + --region us-east-1 + +backup: + @tarsnap -cf $(shell uname -n)-letsencrypt-$(shell date +%Y-%m-%d_%H-%M-%S) \ + letsencrypt/ + +open: + $$BROWSER "https://www.gws.fyi" diff --git a/users/glittershark/gws.fyi/config.el b/users/glittershark/gws.fyi/config.el new file mode 100644 index 000000000000..b05d897d3ddb --- /dev/null +++ b/users/glittershark/gws.fyi/config.el @@ -0,0 +1,6 @@ +(require 'org) + +(setq org-html-postamble nil) + +(defadvice org-export-grab-title-from-buffer + (around org-export-grab-title-from-buffer-disable activate)) diff --git a/users/glittershark/gws.fyi/default.nix b/users/glittershark/gws.fyi/default.nix new file mode 100644 index 000000000000..6ec1262f67be --- /dev/null +++ b/users/glittershark/gws.fyi/default.nix @@ -0,0 +1,21 @@ +args@{ pkgs, ... }: +with pkgs; +let + site = import ./site.nix args; + resume = import ../resume args; + bucket = "s3://gws.fyi"; + distributionID = "E2ST43JNBH8C64"; + website = + runCommand "gws.fyi" { } '' + mkdir -p $out + cp ${site.index} $out/index.html + cp ${resume} $out/resume.pdf + ''; + +in writeShellScript "deploy.sh" '' + ${awscli}/bin/aws s3 sync ${website}/ ${bucket} + ${awscli}/bin/aws cloudfront create-invalidation \ + --distribution-id "${distributionID}" \ + --paths "/*" + echo "Deployed to http://gws.fyi" +'' diff --git a/users/glittershark/gws.fyi/index.org b/users/glittershark/gws.fyi/index.org new file mode 100644 index 000000000000..a9413a69ba70 --- /dev/null +++ b/users/glittershark/gws.fyi/index.org @@ -0,0 +1,22 @@ +#+OPTIONS: title:nil +#+HTML_HEAD: <title>griffin smith</title> + +my name is griffin ward smith (aka grfn, glittershark, gws) and i'm a software +engineer and musician + +code +- [[https://github.com/glittershark/][github]] +- [[https://cs.tvl.fyi/depot/-/tree/users/glittershark][my directory in the tvl monorepo]] + +music +- https://sacrosanct.bandcamp.com/, a post-rock project with a [[https://bandcamp.com/h34rken][friend of mine]] +- [[https://soundcloud.com/missingggg][my current soundcloud]], releasing instrumental hip-hop under the name *missing* +- you can also find a log of all the music I listen to [[https://www.last.fm/user/wildgriffin45][on last.fm]] + +contact + +- [[mailto:web@gws.fyi][web@gws.fyi]] +- [[https://twitter.com/glittershark1][twitter]] +- https://keybase.io/glittershark +- grfn on freenode +- [[http://keys.gnupg.net/pks/lookup?op=get&search=0x44EF5B5E861C09A7][gpg key: 0F11A989879E8BBBFDC1E23644EF5B5E861C09A7]] diff --git a/users/glittershark/gws.fyi/orgExportHTML.nix b/users/glittershark/gws.fyi/orgExportHTML.nix new file mode 100644 index 000000000000..ad5a24795826 --- /dev/null +++ b/users/glittershark/gws.fyi/orgExportHTML.nix @@ -0,0 +1,54 @@ +{ pkgs, ... }: + +with pkgs; +with lib; + +let + + emacsWithPackages = (pkgs.emacsPackagesGen pkgs.emacs27).emacsWithPackages; + + emacs = emacsWithPackages (p: with p; [ + org + ]); + +in + +opts: + +let + src = if isAttrs opts then opts.src else opts; + headline = if isAttrs opts then opts.headline else null; + + bn = builtins.baseNameOf src; + filename = elemAt (splitString "." bn) 0; + + outName = + if isNull headline + then + let bn = builtins.baseNameOf src; + filename = elemAt (splitString "." bn) 0; + in filename + ".html" + else "${filename}-${replaceStrings [" "] ["-"] filename}.html"; + + escapeDoubleQuotes = replaceStrings ["\""] ["\\\""]; + + navToHeadline = optionalString (! isNull headline) '' + (search-forward "${escapeDoubleQuotes headline}") + (org-narrow-to-subtree) + ''; + +in + +runCommand outName {} '' + cp ${src} file.org + echo "${emacs}/bin/emacs --batch" + ${emacs}/bin/emacs --batch \ + --load ${./config.el} \ + --visit file.org \ + --eval "(progn + ${escapeDoubleQuotes navToHeadline} + (org-html-export-to-html))" \ + --kill + substitute file.html $out \ + --replace '<title>‎</title>' "" +'' diff --git a/users/glittershark/gws.fyi/shell.nix b/users/glittershark/gws.fyi/shell.nix new file mode 100644 index 000000000000..846bdb6677a3 --- /dev/null +++ b/users/glittershark/gws.fyi/shell.nix @@ -0,0 +1,9 @@ +with import <nixpkgs> { config.allowUnfree = true; }; +mkShell { + buildInputs = [ + awscli + gnumake + letsencrypt + tarsnap + ]; +} diff --git a/users/glittershark/gws.fyi/site.nix b/users/glittershark/gws.fyi/site.nix new file mode 100644 index 000000000000..a74bee0bef0a --- /dev/null +++ b/users/glittershark/gws.fyi/site.nix @@ -0,0 +1,11 @@ +args@{ pkgs ? import <nixpkgs> {}, ... }: + +let + + orgExportHTML = import ./orgExportHTML.nix args; + +in + +{ + index = orgExportHTML ./index.org; +} |