aboutsummaryrefslogtreecommitdiff
path: root/bin/httpno
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2022-08-13 10:20:32 -0300
committerEuAndreh <eu@euandre.org>2022-08-13 10:20:32 -0300
commit7c489dda6dca8cc904b3bfec32d078e49dbfc115 (patch)
tree66b0c4a391e205d627a43e4d826af32f6b153299 /bin/httpno
parentbin/gen-password: Add working utility (diff)
downloaddotfiles-7c489dda6dca8cc904b3bfec32d078e49dbfc115.tar.gz
dotfiles-7c489dda6dca8cc904b3bfec32d078e49dbfc115.tar.xz
bin/httpno: Add working utility
Diffstat (limited to 'bin/httpno')
-rwxr-xr-xbin/httpno150
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