From bd44868a4c6ca4794292124b9e63d1209f9a36c8 Mon Sep 17 00:00:00 2001 From: xyz Date: Mon, 13 Dec 2021 23:13:56 -0800 Subject: gitmetap, consider dirname --- home/xyz/.local/bin/dirnameall | 21 +++++++++++++++++++++ home/xyz/.local/bin/gitmetap | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100755 home/xyz/.local/bin/dirnameall (limited to 'home/xyz') diff --git a/home/xyz/.local/bin/dirnameall b/home/xyz/.local/bin/dirnameall new file mode 100755 index 00000000..6bd67fd3 --- /dev/null +++ b/home/xyz/.local/bin/dirnameall @@ -0,0 +1,21 @@ +#!/bin/sh + +while read -r line; do + if [ -n "$paths" ]; then + paths="$paths +$line" + else + paths="$line" + fi +done +dirs="$(echo "$paths" | tr '\n' '\0' | xargs -0 dirname | sort | uniq)" + +paths="$paths +$dirs" +while [ "$(echo "$dirs" | wc -l)" -ne 1 ]; do + dirs="$(echo "$dirs" | tr '\n' '\0' | xargs -0 dirname | sort | uniq)" + paths="$paths +$dirs" +done + +echo "$paths" | sort | uniq | grep -v '^\.$' diff --git a/home/xyz/.local/bin/gitmetap b/home/xyz/.local/bin/gitmetap index 21ae1c1b..c0589860 100755 --- a/home/xyz/.local/bin/gitmetap +++ b/home/xyz/.local/bin/gitmetap @@ -3,7 +3,7 @@ # -rw-r--r-- == binary 110100100 == octal 644 # https://stackoverflow.com/a/1796009 -$1 ls-tree -r --name-only --full-tree HEAD | awk -v a="$2/" '{printf("%s%s\n",a,$0)}' | tr '\n' '\0' | xargs -0 ls -ldA -- | awk '{ +$1 ls-tree -r --name-only --full-tree HEAD | dirnameall | awk -v a="$2/" '{printf("%s%s\n",a,$0)}' | tr '\n' '\0' | xargs -0 ls -ldA -- | awk '{ k=0 for(i=0;i<=8;i++) k+=((substr($1,i+2,1)~/[rwx]/)*2^(8-i)) -- cgit v1.2.3-70-g09d2