✨ add script mzavoloka/gitls
This commit is contained in:
parent
c58f1e13e5
commit
4a9fbbac35
2 changed files with 98 additions and 0 deletions
23
bashscripts/gitls
Executable file
23
bashscripts/gitls
Executable file
|
|
@ -0,0 +1,23 @@
|
|||
#!/bin/sh
|
||||
|
||||
# https://github.com/mzavoloka/gitls
|
||||
|
||||
dirs=${@:-$PWD}
|
||||
gitls_script=$(realpath "${0}-cwd");
|
||||
|
||||
cd $PWD
|
||||
|
||||
bold=$(tput bold)
|
||||
reset=$(tput sgr0)
|
||||
|
||||
for dir in $dirs
|
||||
do
|
||||
echo "$bold$dir:$reset"
|
||||
if [ ! -e $dir ]; then
|
||||
echo "$dir doesn't exist"
|
||||
elif [ -d $dir ]; then
|
||||
( cd $dir && bash $gitls_script )
|
||||
else
|
||||
echo "$dir is not a directory"
|
||||
fi
|
||||
done
|
||||
75
bashscripts/gitls-cwd
Executable file
75
bashscripts/gitls-cwd
Executable file
|
|
@ -0,0 +1,75 @@
|
|||
#!/bin/sh
|
||||
|
||||
FILES=$(git ls-tree --name-only HEAD .)
|
||||
MAXLEN=0
|
||||
IFS=$(printf "\n\b")
|
||||
counter=0
|
||||
for f in $FILES; do
|
||||
if [ ${#f} -gt $MAXLEN ]; then
|
||||
MAXLEN=${#f};
|
||||
fi
|
||||
counter=$((counter + 1))
|
||||
done
|
||||
MAXLEN=$((MAXLEN+1)) # Consider slash at the end of dirname
|
||||
|
||||
number_of_files=$counter
|
||||
space_for_file_numbers=${#number_of_files}
|
||||
|
||||
# colors definitions
|
||||
blue=$(tput setaf 27)
|
||||
normal=$(tput setaf 255)
|
||||
black_bg=$(tput setab 233)
|
||||
brown=$(tput setaf 237)
|
||||
bold=$(tput bold)
|
||||
|
||||
reset=$(tput sgr0)
|
||||
|
||||
# format definitions
|
||||
filename_format="$normal"
|
||||
dirname_format="$reset$blue$bold"
|
||||
file_numbers_format="$brown"
|
||||
|
||||
|
||||
# # zebra definitions and format
|
||||
# zebra_on_color=$(tput setab 237)
|
||||
# zebra_off_color=$black_bg
|
||||
# zebra=$()
|
||||
# zebra_on=0
|
||||
|
||||
i=1
|
||||
|
||||
for f in $FILES; do
|
||||
printf "$reset"
|
||||
|
||||
# file numbers
|
||||
printf "$file_numbers_format"
|
||||
printf "%${space_for_file_numbers}d | " "$i"
|
||||
|
||||
# # zebra calculation
|
||||
# if [ $zebra_on -eq 1 ]; then
|
||||
# zebra=$zebra_on_color
|
||||
# zebra_on=0
|
||||
# else
|
||||
# zebra=$zebra_off_color
|
||||
# zebra_on=1
|
||||
# fi
|
||||
|
||||
|
||||
str=$(git log -1 --pretty=format:"%<(23)%C(green)%cr%C(white) | %C(cyan)%h%C(white) | %<(15)%C(yellow)%cn%C(white) | %s" $f)
|
||||
if [ -d "$f" ]; then
|
||||
printf "$dirname_format"
|
||||
else
|
||||
printf "$filename_format"
|
||||
fi
|
||||
|
||||
if [ -d "$f" ]; then
|
||||
f="$f/"
|
||||
fi
|
||||
|
||||
printf "%-${MAXLEN}s$reset" "$f"
|
||||
|
||||
printf " -- %s\n" "$str"
|
||||
i=$((i + 1))
|
||||
done
|
||||
|
||||
printf "$(tput sgr 0)"
|
||||
Loading…
Add table
Add a link
Reference in a new issue