#!/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