diff options
author | EuAndreh <eu@euandre.org> | 2022-08-13 10:20:32 -0300 |
---|---|---|
committer | EuAndreh <eu@euandre.org> | 2022-08-13 10:20:32 -0300 |
commit | 7c489dda6dca8cc904b3bfec32d078e49dbfc115 (patch) | |
tree | 66b0c4a391e205d627a43e4d826af32f6b153299 /bin | |
parent | bin/gen-password: Add working utility (diff) | |
download | dotfiles-7c489dda6dca8cc904b3bfec32d078e49dbfc115.tar.gz dotfiles-7c489dda6dca8cc904b3bfec32d078e49dbfc115.tar.xz |
bin/httpno: Add working utility
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/httpno | 150 |
1 files changed, 150 insertions, 0 deletions
diff --git a/bin/httpno b/bin/httpno new file mode 100755 index 0000000..0e8d66f --- /dev/null +++ b/bin/httpno @@ -0,0 +1,150 @@ +#!/bin/sh +set -eu + +usage() { + cat <<-'EOF' + Usage: + httpno [NUMBER|TEXT] + httpno -h + EOF +} + +help() { + cat <<-'EOF' + + Options: + -h, --help show this message + + NUMBER the number of the HTTP status code + TEXT the text of the description of the status code + + + Print the given status code, or list them all when no arguments + are given. + + + Examples: + + Get the status code 404: + + $ httpno 404 + 404 Not Found + + + Get the status code for "created": + + $ httpno created + 201 Created + + + List all statuses: + + $ httpno + ... + EOF +} + +DATA() { + awk 'd == 1 { print; next } /^__DATA__$/ { d = 1 }' "$0" +} + + +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)) + + +if [ $# -eq 0 ]; then + DATA +else + DATA | grep -i "$@" +fi + + +exit +__DATA__ +100 Continue +101 Switching Protocols +102 Processing +200 OK +201 Created +202 Accepted +203 Non-Authoritative Information +204 No Content +205 Reset Content +206 Partial Content +207 Multi-Status +208 Already Reported +300 Multiple Choices +301 Moved Permanently +302 Found +303 See Other +304 Not Modified +305 Use Proxy +307 Temporary Redirect +400 Bad Request +401 Unauthorized +402 Payment Required +403 Forbidden +404 Not Found +405 Method Not Allowed +406 Not Acceptable +407 Proxy Authentication Required +408 Request Timeout +409 Conflict +410 Gone +411 Length Required +412 Precondition Failed +413 Request Entity Too Large +414 Request-URI Too Large +415 Unsupported Media Type +416 Request Range Not Satisfiable +417 Expectation Failed +418 I'm a teapot +420 Blaze it +422 Unprocessable Entity +423 Locked +424 Failed Dependency +425 No code +426 Upgrade Required +428 Precondition Required +429 Too Many Requests +431 Request Header Fields Too Large +449 Retry with +500 Internal Server Error +501 Not Implemented +502 Bad Gateway +503 Service Unavailable +504 Gateway Timeout +505 HTTP Version Not Supported +506 Variant Also Negotiates +507 Insufficient Storage +509 Bandwidth Limit Exceeded +510 Not Extended +511 Network Authentication Required |