diff --git a/docs/Bash.md b/docs/Bash.md
new file mode 100644
index 0000000..744db47
--- /dev/null
+++ b/docs/Bash.md
@@ -0,0 +1,148 @@
+# Bash Aliases & Scripts
+
+## Navigation
+
+* *..* → cd ..
+
+* *...* → cd ../..
+
+* *....* → cd ../../..
+
+* *.....* → cd ../../../..
+
+* *~* → cd ~
+
+* *-* → cd -
+
+
+## Shortcuts
+
+* *dr* → cd ~/Dropbox
+
+* *pj* → cd ~/Dropbox/Projects
+
+* *pjr* → cd ~/Dropbox/Projects/_Repos
+
+* *pjf* → cd ~/Dropbox/Projects/_Forks
+
+* *pjm* → cd ~/Dropbox/Projects/!
+
+* *o* → open
+
+* *oo* → open .
+
+* *marked* → open -a marked
+
+* *md
* → Make directory and `cd` to it.
+
+* *f * → Recursively find file in current directory.
+
+* *c* → Trim new lines and copy text to clipboard.
+
+
+## File System
+
+### extract [directory]
+
+Extract archives of various types.
+
+### emptytrash
+
+Empty the Trash on all mounted volumes and the main HDD. Also, clear Apple’s System Logs to improve shell startup speed.
+
+### show / hide
+
+Show/hide hidden files in Finder.
+
+
+## Text
+
+### dos2unix
+
+Convert file to Unix line endings.
+
+### crlf [--force]
+
+Find files with Windows line endings (and convert them to Unix when `--force` key given).
+
+### escape
+
+Escape UTF-8 characters into their 3-byte format: `£` → `\xC2\xA3`.
+
+### codepoint
+
+Get a character’s Unicode code point: `£` → `\x00A3`.
+
+
+## Network
+
+### GET / HEAD / POST / PUT / DELETE / TRACE / OPTIONS
+
+Make HTTP request using respective method.
+
+### gz
+
+Get gzipped file size.
+
+### httpcompression
+
+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.
+
+### add-ssh-host
+
+Create an SSH key and uploads it to the given host.
+
+### yay
+
+Upload current directory to special directory on my hosting.
+
+
+## NPM
+
+### npm-patch / npm-release
+
+Increment version (`npm-patch` by 0.0.1 and `npm-release` by 0.1.x) of NPM package and make Git commit.
+
+
+## Grunt
+
+### gw / gs
+
+Run Grunt’s watch and server tasks:
+
+gw → grunt deploy --debug && grunt watch --debug
+gs → grunt deploy --debug && grunt serve --debug
+
+### gi [template]
+
+Just shortcut for `grunt-init`.
+
+
+## Magic Project Opener
+
+### proj / repo / wptheme [project]
+
+Change current directory to project folder / Git repo / Wordpress theme forlder of given “project”. Use fuzzy search.
+
+
+## Misc
+
+### password [length]
+
+Generate random password and copy it to clipboard. Default length is 8.
+
+### path
+
+Show $PATH in a readable way.
+
+### dotfiles
+
+Update dotfiles. Pull latest version from GitHub, syncronize symlinks and reread `~/.bashrc`.
+
+### update
+
+Get OS X software updates, update Homebrew, NPM, Ruby packages, dotfiles and some other software.
+
+### nyan
+
+Print nyan cat :-)
diff --git a/includes/bash_functions.bash b/includes/bash_functions.bash
index c694818..8a7d437 100644
--- a/includes/bash_functions.bash
+++ b/includes/bash_functions.bash
@@ -28,15 +28,9 @@ function escape() {
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
+# Get a character’s Unicode code point: £ → \x00A3
function codepoint() {
- perl -e "use utf8; print sprintf('U+%04X', ord(\"$@\"))"
+ perl -e "use utf8; print sprintf('\x%04X', ord(\"$@\"))"
echo # newline
}
@@ -86,7 +80,7 @@ function nyan() {
echo
}
-# Creates an SSH key and uploads it to the given host
+# Create an SSH key and uploads it to the given host
# Based on https://gist.github.com/1761938
add-ssh-host() {
username=$1
@@ -169,21 +163,6 @@ function git-upstream() {
git merge upstream/$branch
}
-# Install/update all NPM tasks used in grunt.js in current folder
-function npm-grunt() {
- if [ ! -f "grunt.js" ]; then
- echo "grunt.js not found."
- return
- fi
- npm update grunt -g
- tasks=(`grep -oP "(?<=loadNpmTasks\(['\"])[^'\"]+" grunt.js`)
- for task in "${tasks[@]}"
- do
- npm install $task -g
- npm link $task
- done
-}
-
# Find files with Windows line endings (and convert then to Unix in force mode)
# USAGE: crlf [--force]
function crlf() {
diff --git a/setup/update.sh b/setup/update.sh
index cb78ef9..a3533c8 100755
--- a/setup/update.sh
+++ b/setup/update.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-# Get OS X Software Updates, update Homebrew, NPM, Ruby packages, dotfiles and some other software
+# Get OS X software updates, update Homebrew, NPM, Ruby packages, dotfiles and some other software
function header() {
echo -e "$(tput sgr 0 1)$(tput setaf 6)$1$(tput sgr0)"
@@ -16,7 +16,7 @@ cd "$HOME/dotfiles"
git pull
./sync.py
source "$HOME/.bashrc"
-cd - > /dev/null 2>&1
+cd -
echo
# OS X