feature: add gpg-pubkey
[webi-installers/.git] / gpg-pubkey / gpg-pubkey.ps1
diff --git a/gpg-pubkey/gpg-pubkey.ps1 b/gpg-pubkey/gpg-pubkey.ps1
new file mode 100644 (file)
index 0000000..88a8843
--- /dev/null
@@ -0,0 +1,41 @@
+#!/usr/bin/env pwsh
+
+$my_key_id = gpg --list-secret-keys --keyid-format LONG |
+    Select-String -Pattern '\.*sec.*\/' |
+    Select-Object Line |
+    ForEach-Object {
+        $_.Line.split('/')[1].split(' ')[0]
+    }
+
+if (!$my_key_id)
+{
+    $my_name = git config --global user.name
+    $my_email = git config --global user.email
+    $my_host = hostname
+
+    echo "
+     %echo Generating RSA 3072 key
+     Key-Type: RSA
+     Key-Length: 3072
+     Subkey-Type: RSA
+     Subkey-Length: 3072
+     Name-Real: $my_name
+     Name-Comment: $my_host
+     Name-Email: $my_email
+     Expire-Date: 0
+     %commit
+    " | gpg --batch --generate-key
+}
+
+$my_asc_relpath = "Downloads/$my_email.$my_key_id.gpg.asc"
+& gpg --armor --export $my_key_id > "$Env:USERPROFILE/$my_asc_relpath"
+
+# TODO use the comment (if any) for the name of the file
+$my_email = git config --global user.email
+echo ""
+echo "GnuPG Public Key ID: $MY_KEY_ID"
+echo ""
+echo "~/$my_asc_relpath":
+echo ""
+& type "$Env:USERPROFILE/$my_asc_relpath"
+echo ""