aboutsummaryrefslogtreecommitdiff
path: root/v2/src/bin/security-txt
diff options
context:
space:
mode:
Diffstat (limited to 'v2/src/bin/security-txt')
-rwxr-xr-xv2/src/bin/security-txt82
1 files changed, 82 insertions, 0 deletions
diff --git a/v2/src/bin/security-txt b/v2/src/bin/security-txt
new file mode 100755
index 0000000..7026969
--- /dev/null
+++ b/v2/src/bin/security-txt
@@ -0,0 +1,82 @@
+#!/bin/sh
+set -eu
+
+usage() {
+ cat <<-'EOF'
+ Usage:
+ security-txt
+ security-txt -h
+ EOF
+}
+
+help() {
+ cat <<-'EOF'
+
+
+ Options:
+ -h, --help show this message
+
+
+ Generate the RFC 9116 "security.txt" file from data in the
+ repository.
+
+
+ Examples:
+
+ Just run it:
+
+ $ security-txt > .well-known/security.txt
+ EOF
+}
+
+
+for flag in "$@"; do
+ case "$flag" in
+ --)
+ break
+ ;;
+ --help)
+ usage
+ help
+ exit
+ ;;
+ *)
+ ;;
+ esac
+done
+
+while getopts 'h' flag; do
+ case "$flag" in
+ h)
+ usage
+ help
+ exit
+ ;;
+ *)
+ usage >&2
+ exit 2
+ esac
+done
+shift $((OPTIND - 1))
+
+
+
+EXPIRES="$(
+ LANG=C.UTF-8 gpg --list-key "$EMAIL" |
+ awk '/^pub/ { print substr($(NF), 1, 10) }'
+)T00:00:00z"
+
+LANGUAGES="$(
+ langs |
+ sed 's|^|, |' |
+ tr -d '\n' |
+ sed 's|^, ||'
+)"
+
+
+cat <<-EOF
+ Contact: mailto:$EMAIL
+ Encryption: $(url-for 'public.asc.txt' | absolute)
+ Expires: $EXPIRES
+ Preferred-Languages: $LANGUAGES
+EOF