Skip to content

Commit 8be8de6

Browse files
committed
dots install script
1 parent a6b03dd commit 8be8de6

4 files changed

Lines changed: 100 additions & 0 deletions

File tree

src/bookmarks.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -746,3 +746,10 @@ links:
746746
tags:
747747
- 90s
748748
- personal-site
749+
- url: https://www.cs.utexas.edu/~EWD/transcriptions/EWD06xx/EWD667.html
750+
name: On the foolishness of "natural language programming
751+
description: |
752+
Essay written by Dijkstra about programming languages who's purpose is to
753+
emulate natural language. Has interesting parallels to LLMs today.
754+
tags:
755+
- computers

src/content/garden/GPG.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,39 @@ gpg \
6161
| gpg --import
6262
```
6363

64+
Now if you run `gpg -K` you will see `sec#` indicating that the root key is not
65+
in the local key storage.
66+
6467
It is best practice to keep a root signing key in an air-gaped environment and to use it
6568
to sign additional encryption keys called subkeys.
6669

70+
# Edit Keys
71+
72+
### Remove an Email
73+
74+
```
75+
gpg --edit-key <id/name>
76+
> uid 2
77+
> revuid
78+
> save
79+
```
80+
81+
# LUKS
82+
83+
Open and mount encrypted drive.
84+
```sh
85+
sudo cryptsetup luksOpen /dev/sda mapped_name
86+
sudo mount /dev/mapper/mapped_name /tmp/mountpoint/
87+
```
88+
89+
Unmount and lock encrypted drive.
90+
```sh
91+
sudo umount /tmp/mountpoint
92+
sudo cryptsetup close mapped_name
93+
94+
```
95+
96+
6797
# References
6898

6999
- [Creating the Perfect GPG KeyPair][1]

src/pages/dots.sh.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import fs from 'node:fs';
2+
3+
const script = fs.readFileSync("src/scripts/dots.sh");
4+
5+
export const GET = () => new Response(script);

src/scripts/dots.sh

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
#!/bin/sh
2+
3+
set -eu
4+
5+
machine="$(uname -m)"
6+
case "$machine" in
7+
x86_64)
8+
arch="amd64"
9+
;;
10+
aarch64)
11+
arch="arm64"
12+
;;
13+
armv7*)
14+
arch="armv7"
15+
;;
16+
armv6*)
17+
arch="armv6"
18+
;;
19+
*)
20+
echo "Error: Unknown cpu architecture"
21+
exit 1
22+
;;
23+
esac
24+
25+
release_blob="$(curl -s https://api.github.com/repos/harrybrwn/dots/releases/latest)"
26+
tag="$(
27+
printf "%s" "$release_blob" \
28+
| python3 -c 'import sys,json; print(json.loads(sys.stdin.read())["tag_name"],end="")'
29+
)"
30+
version="$(echo "$tag" | tr -d '^v')"
31+
dl_url="https://github.com/harrybrwn/dots/releases/download/${tag}"
32+
TMP="$(mktemp -d)"
33+
34+
. /etc/os-release
35+
36+
case "$ID" in
37+
arch|manjaro)
38+
wget -O "$TMP/dots.tar.zst" "${dl_url}/dots_${version}_linux_${arch}.tar.zst"
39+
pacman -U --noconfirm "$TMP/dots/tar.zst"
40+
;;
41+
debian|ubuntu|pop|linuxmint|raspbian)
42+
wget -O "$TMP/dots.deb" "${dl_url}/dots_${version}_linux_${arch}.deb"
43+
dpkg --install "$TMP/dots.deb"
44+
;;
45+
alpine)
46+
wget -O "$TMP/dots.apk" "${dl_url}/dots_${version}_linux_${arch}.apk"
47+
apk add --allow-untrusted "$TMP/dots.apk"
48+
;;
49+
rhel|fedora|rocky|centos)
50+
wget -O "$TMP/dots.rpm" "${dl_url}/dots_${version}_linux_${arch}.rpm"
51+
rpm -i "$TMP/dots.rpm"
52+
;;
53+
*)
54+
# TODO check ID_LIKE
55+
echo 'Error: unknown os-release ID'
56+
exit 1
57+
;;
58+
esac

0 commit comments

Comments
 (0)