]> git.armaanb.net Git - asd-repo.git/blobdiff - kiss-mail/files/kiss-mail
kiss-mail: Colorize and cleanup UI.
[asd-repo.git] / kiss-mail / files / kiss-mail
index 61e7848985b3b3e3073311bdffcfb5fb53b30327..ee2642fa50890f2445ed1fd18b276624dbcc431e 100755 (executable)
@@ -1,24 +1,31 @@
 #!/usr/bin/sh -e
 
+line() {
+  printf "%s++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n" $blue
+}
+
 get_mail() {
   { IFS=:; set -- $KISS_PATH; unset IFS; }
   i=0
+  blue=$(tput setaf 4)
   for repo do
     git_root=$(git -C ${repo} rev-parse --show-toplevel)
     if [ -f ${git_root}/update ]; then
       shortlog=$(git -C ${git_root} log --pretty=oneline --follow -- update)
       while IFS= read -r line; do
-        hash=$(printf ${line} | cut -d " " -f 1)
+        hash=$(echo ${line} | cut -d " " -f 1)
         git -C ${git_root} show ${hash}:update | tail -n +2 > /tmp/kiss-mail
+        chmod +x /tmp/kiss-mail
 
-        printf "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n"
-        printf "Item:   %s" $((i = i + 1))
-        printf "\n"
-        git -C ${git_root} show -s ${hash} | tail -n +2
-        printf "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n"
-        /tmp/kiss-mail
-        printf "\n\n"
-
+        line
+        printf "%sItem:   %s\n" $blue $((i = i + 1))
+        git -C ${git_root} show -s ${hash} | \
+          awk -v blue="$blue" 'NR > 1 && NR < 4 {printf "%s%s\n", blue, $0}'
+        git -C ${git_root} log --format=${blue}"Topic:  "%B -n 1 ${hash} | \
+          head -n 1
+        line
+        /tmp/kiss-mail | awk '{print}'  # This normalizes the trailing newlines
+        echo
       done << EOF
       ${shortlog}
 EOF
@@ -27,3 +34,4 @@ EOF
 }
 
 get_mail | ${PAGER:-less -R}
+rm /tmp/kiss-mail