diff --git a/bash_aliases b/bash_aliases index 72c9b4c..46dd27a 100644 --- a/bash_aliases +++ b/bash_aliases @@ -75,4 +75,6 @@ alias gw="grunt watch --debug" ginit() { grunt init:$@ ;} # Load external aliases -source ~/dotfiles/includes/root.sh \ No newline at end of file +source ~/dotfiles/includes/root.sh +source ~/dotfiles/includes/functions.sh + \ No newline at end of file diff --git a/includes/functions.sh b/includes/functions.sh new file mode 100644 index 0000000..be1cbbf --- /dev/null +++ b/includes/functions.sh @@ -0,0 +1,36 @@ +# Create a new directory and enter it +function mkd() { + mkdir -p "$@" && cd "$@" +} + +# Get gzipped file size +function gz() { + echo "Original size (bytes): " + cat "$1" | wc -c + echo "Gzipped size (bytes): " + gzip -c "$1" | wc -c +} + +# Test if HTTP compression (RFC 2616 + SDCH) is enabled for a given URL. +# Send a fake UA string for sites that sniff it instead of using the Accept-Encoding header. (Looking at you, ajax.googleapis.com!) +function httpcompression() { + encoding="$(curl -LIs -H 'User-Agent: Mozilla/5 Gecko' -H 'Accept-Encoding: gzip,deflate,compress,sdch' "$1" | grep '^Content-Encoding:')" && echo "$1 is encoded using ${encoding#* }" || echo "$1 is not using any encoding" +} + +# Escape UTF-8 characters into their 3-byte format +function escape() { + printf "\\\x%s" $(printf "$@" | xxd -p -c1 -u) + echo # newline +} + +# Decode \x{ABCD}-style Unicode escape sequences +function unidecode() { + perl -e "binmode(STDOUT, ':utf8'); print \"$@\"" + echo # newline +} + +# Get a character’s Unicode code point +function codepoint() { + perl -e "use utf8; print sprintf('U+%04X', ord(\"$@\"))" + echo # newline +} \ No newline at end of file