#!/bin/sh # rfcopen # Written in 2019 by Lucas # CC0 1.0 Universal/Public domain - No rights reserved # # To the extent possible under law, the author(s) have dedicated all # copyright and related and neighboring rights to this software to the # public domain worldwide. This software is distributed without any # warranty. You should have received a copy of the CC0 Public Domain # Dedication along with this software. If not, see # . usage() { printf "Usage: %s [-T] rfc-number\n" "${0##*/}" >&2 exit 1 } err() { printf "%s: %s\n" "${0##*/}" "$*" >&2 exit 1 } tonumber() { printf "%u" "$1" 2>/dev/null } : ${RFCDIR:=~/doc/rfc} torsocks=torsocks while getopts T flag; do case $flag in T) torsocks= ;; *) usage ;; esac done shift $(($OPTIND - 1)) [ $# -eq 1 ] && [ -n "$1" ] && n=$(tonumber "$1") || usage rfcfile=$RFCDIR/rfc$n.txt url=https://tools.ietf.org/rfc/rfc$n.txt mkdir -p "$RFCDIR" if [ ! -f "$rfcfile" ]; then $torsocks ftp -Vo "$rfcfile" "$url" || err "Couldn't fetch RFC $n." fi ${PAGER:-more} "$rfcfile"