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