From 8a330465b4a03f51022ac7adf6499d5cff195cf6 Mon Sep 17 00:00:00 2001 From: Nathan Broadbent Date: Sun, 14 Oct 2012 13:43:22 +1300 Subject: [PATCH] Reorganized code, added la alias to show all files --- lib/git/shell_shortcuts.sh | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/lib/git/shell_shortcuts.sh b/lib/git/shell_shortcuts.sh index 0a3a2fc..f227f77 100644 --- a/lib/git/shell_shortcuts.sh +++ b/lib/git/shell_shortcuts.sh @@ -80,17 +80,6 @@ if [ "$_uname" = "Linux" ]; then _ll_command="ls -lhv --group-directories-first --color" _ll_sys_command="ls -v --group-directories-first --color=never" _abs_path_command="readlink -f" - - # Replace user/group with user symbol, if defined at ~/.user_sym - # Before : -rw-rw-r-- 1 ndbroadbent ndbroadbent 1.1K Sep 19 21:39 scm_breeze.sh - # After : -rw-rw-r-- 1 𝐍 𝐍 1.1K Sep 19 21:39 scm_breeze.sh - if [ -e $HOME/.user_sym ]; then - # Little bit of ruby golf to rejustify the user/group/size columns after replacement - function rejustify_ls_columns(){ - ruby -e "o=STDIN.read;re=/^(([^ ]* +){2})(([^ ]* +){3})/;u,g,s=o.lines.map{|l|l[re,3]}.compact.map(&:split).transpose.map{|a|a.map(&:size).max+1};puts o.lines.map{|l|l.sub(re){|m|\"%s%-#{u}s %-#{g}s%#{s}s \"%[\$1,*\$3.split]}}" - } - _ll_command+=" | sed 1d | sed \"s/$USER/\$(/bin/cat $HOME/.user_sym)/g\" | _rejustify_ls_columns" - fi elif [ "$_uname" = "Darwin" ]; then # OS X ls commands _ll_command="ls -l -G" @@ -99,12 +88,24 @@ elif [ "$_uname" = "Darwin" ]; then _abs_path_command="perl -e 'use Cwd \"abs_path\"; print abs_path(shift)'" fi +# Replace user/group with user symbol, if defined at ~/.user_sym +# Before : -rw-rw-r-- 1 ndbroadbent ndbroadbent 1.1K Sep 19 21:39 scm_breeze.sh +# After : -rw-rw-r-- 1 𝐍 𝐍 1.1K Sep 19 21:39 scm_breeze.sh +if [ -e $HOME/.user_sym ]; then + # Little bit of ruby golf to rejustify the user/group/size columns after replacement + function rejustify_ls_columns(){ + ruby -e "o=STDIN.read;re=/^(([^ ]* +){2})(([^ ]* +){3})/;u,g,s=o.lines.map{|l|l[re,3]}.compact.map(&:split).transpose.map{|a|a.map(&:size).max+1};puts o.lines.map{|l|l.sub(re){|m|\"%s%-#{u}s %-#{g}s%#{s}s \"%[\$1,*\$3.split]}}" + } + _ls_processor="| sed \"s/$USER/\$(/bin/cat $HOME/.user_sym)/g\" | rejustify_ls_columns" +fi + + if [ -n "$_ll_command" ]; then # Function wrapper around 'll' # Adds numbered shortcuts to output of ls -l, just like 'git status' unalias ll > /dev/null 2>&1; unset -f ll > /dev/null 2>&1 function ll { - local ll_output="$(eval $_ll_command $@)" + local ll_output="$(eval $_ll_command $@ $_ls_processor)" if [ "$(echo "$ll_output" | wc -l)" -gt "50" ]; then echo -e "\e[33mToo many files to create shortcuts. Running plain ll command...\e[0m" @@ -132,4 +133,7 @@ EOF done IFS="$OLDIFS" } -fi \ No newline at end of file +fi + +# Alias to list all files +alias la="ll -A" \ No newline at end of file