feat: clean terminals now open with logo

This commit is contained in:
Menno van Leeuwen 2024-08-22 19:23:57 +02:00
parent 2e33e48af9
commit f87e08ec49
Signed by: vleeuwenmenno
SSH Key Fingerprint: SHA256:OJFmjANpakwD3F2Rsws4GLtbdz1TJ5tkQF0RZmF0TRE
3 changed files with 51 additions and 39 deletions

5
bin/actions/term.sh Executable file
View File

@ -0,0 +1,5 @@
#!/usr/bin/env zsh
source ~/dotfiles/bin/helpers/functions.sh
logo continue

View File

@ -2,45 +2,6 @@
source ~/dotfiles/bin/helpers/functions.sh
logo() {
tput setaf 2
cat ~/dotfiles/bin/resources/logo.txt
println " " "cyan"
tput sgr0
continue_eitherway=$1
# Print if repo is dirty and the count of untracked files, modified files and staged files
if [[ $(git -C ~/dotfiles status --porcelain) ]]; then
printfe "%s" "yellow" "dotfiles repo is dirty "
printfe "%s" "red" "[$(git -C ~/dotfiles status --porcelain | grep -c '^??')] untracked "
printfe "%s" "yellow" "[$(git -C ~/dotfiles status --porcelain | grep -c '^ M')] modified "
printfe "%s" "green" "[$(git -C ~/dotfiles status --porcelain | grep -c '^M ')] staged "
fi
printfe "%s" "blue" "[$(git -C ~/dotfiles rev-parse --short HEAD)] "
if [[ $(git -C ~/dotfiles log origin/master..HEAD) ]]; then
printfe "%s" "yellow" "[!] You have $(git -C ~/dotfiles log origin/master..HEAD --oneline | wc -l | tr -d ' ') commit(s) to push"
fi
println "" "normal"
if [[ $continue_eitherway == "continue" ]]; then
return
fi
if [[ $(git -C ~/dotfiles status --porcelain) ]]; then
# Continue?
printfe "%s" "red" "Continue anyway? [y/N] "
read -k 1
if [[ $REPLY != "y" ]]; then
println "" "normal"
exit 0
fi
println "" "normal"
println "" "normal"
fi
}
status() {
~/dotfiles/bin/actions/status.sh $@
}
@ -74,4 +35,11 @@ case $1 in
"help"|"--help"|"")
help $@
;;
term)
~/dotfiles/bin/actions/term.sh $@
;;
*)
printfe "%s\n" "red" "Unknown command $1"
help $@
;;
esac

View File

@ -6,6 +6,45 @@ println() {
printfe "%s\n" $color "$1"
}
logo() {
tput setaf 2
cat ~/dotfiles/bin/resources/logo.txt
println " " "cyan"
tput sgr0
continue_eitherway=$1
# Print if repo is dirty and the count of untracked files, modified files and staged files
if [[ $(git -C ~/dotfiles status --porcelain) ]]; then
printfe "%s" "yellow" "dotfiles repo is dirty "
printfe "%s" "red" "[$(git -C ~/dotfiles status --porcelain | grep -c '^??')] untracked "
printfe "%s" "yellow" "[$(git -C ~/dotfiles status --porcelain | grep -c '^ M')] modified "
printfe "%s" "green" "[$(git -C ~/dotfiles status --porcelain | grep -c '^M ')] staged "
fi
printfe "%s" "blue" "[$(git -C ~/dotfiles rev-parse --short HEAD)] "
if [[ $(git -C ~/dotfiles log origin/master..HEAD) ]]; then
printfe "%s" "yellow" "[!] You have $(git -C ~/dotfiles log origin/master..HEAD --oneline | wc -l | tr -d ' ') commit(s) to push"
fi
println "" "normal"
if [[ $continue_eitherway == "continue" ]]; then
return
fi
if [[ $(git -C ~/dotfiles status --porcelain) ]]; then
# Continue?
printfe "%s" "red" "Continue anyway? [y/N] "
read -k 1
if [[ $REPLY != "y" ]]; then
println "" "normal"
exit 0
fi
println "" "normal"
println "" "normal"
fi
}
# print colored with printf (args: format, color, message ...)
printfe() {
format=$1