--- /dev/null
+#!/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 ""