summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2021-11-13 11:48:04 +0100
committerErich Eckner <git@eckner.net>2021-11-13 11:48:04 +0100
commit2388290351a69bf71c5647329fcef95739d5a934 (patch)
treea5df563d636e4bd587570fd6236ae4bd750e2613
parenta6b4d01228cc8dd76b672b4a1d9e7c5a499a9735 (diff)
downloadcarddav-alpine-converter-2388290351a69bf71c5647329fcef95739d5a934.tar.xz
find_vcs() new
-rwxr-xr-xcarddav-to-alpine8
-rw-r--r--common19
2 files changed, 20 insertions, 7 deletions
diff --git a/carddav-to-alpine b/carddav-to-alpine
index 4ed3550..5926ac3 100755
--- a/carddav-to-alpine
+++ b/carddav-to-alpine
@@ -13,13 +13,7 @@ for file in 'addressbook' 'uids'; do
touch "${git_dir}"'/'"${file}"
done
-find "${git_dir}" \
- -name '.git' \
- -prune \
- , \
- -type f \
- -name '*.vcs' \
- -printf '%p\n' \
+find_vcs \
| while read -r address_file; do
uid="${address_file##*/}"
uid="${uid%.vcs}"
diff --git a/common b/common
index 93eba55..ea45273 100644
--- a/common
+++ b/common
@@ -17,6 +17,25 @@ gen_rev() {
)"
}
+find_vcs() {
+ {
+ find "${git_dir}" \
+ -name '.git' \
+ -prune \
+ , \
+ -type f \
+ -name '*.vcs' \
+ -printf '%p\n'
+ git -C "${git_dir}" archive HEAD \
+ | tar -t \
+ | sed '
+ /\.vcs$/!d
+ s@^@'"${git_dir%/}"'/@
+ '
+ } \
+ | sort -u
+}
+
git_dir="$1"
if [ ! -d "${git_dir}" ]; then