dotfiles

:)
git clone https://git.sr.ht/~ashymad/dotfiles
Log | Files | Refs | Submodules | LICENSE

src-git (1099B)


      1 #!/bin/sh
      2 
      3 for dir in ~/.usr/src/*; do
      4     [ -d "$dir"/.git ] || continue
      5 
      6     tag="$(git -C "$dir" tag --sort=creatordate --points-at HEAD | tail -1)"
      7     if [ -n "$tag" ]; then
      8         [ "$1" = "-u" ] && git -C "$dir" fetch --tags
      9         remote_tag="$(git -C "$dir" for-each-ref --sort=creatordate --format '%(refname)' refs/tags | cut -d/ -f3 | tail -1)"
     10         if [ "${tag#v}" != "${remote_tag#v}" ]; then
     11             printf "%-25s %15s -> %s\n" "$(basename $dir)" "$tag" "$remote_tag"
     12         fi
     13     else
     14         [ "$1" = "-u" ] && git -C "$dir" remote update
     15         branch="$(git -C "$dir" rev-parse --abbrev-ref HEAD)"
     16         if [ "$branch" = "HEAD" ]; then
     17             echo "No branch or tag found for $pkg"
     18             exit 1
     19         fi
     20         if remote="$(git -C "$dir" rev-parse --abbrev-ref --symbolic-full-name @{u} 2>/dev/null)"; then
     21             commits="$(git -C "$dir" rev-list --left-only --count "$remote...@")"
     22             if [ "$commits" != 0 ]; then
     23                 printf "%-25s %15s ++ %s\n" "$(basename $dir)" "$branch" "$commits"
     24             fi
     25         fi
     26     fi
     27 done