]> Sergey Matveev's repositories - schwabrak.git/commitdiff
No Perl dependency for relative path calculation
authorSergey Matveev <stargrave@stargrave.org>
Thu, 21 Mar 2024 20:54:10 +0000 (23:54 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Thu, 21 Mar 2024 20:54:10 +0000 (23:54 +0300)
dep-add
lib.zsh.rc
recfile-export
show
tag-add

diff --git a/dep-add b/dep-add
index 819a4667252484362b1d15a1c511e039ec048b74d5263937e80329867a8281bc..4e3c7a072a9057ae778ec33518efeb2fc054a515957ea98fa30b692f3fc3aa84 100755 (executable)
--- a/dep-add
+++ b/dep-add
@@ -17,5 +17,5 @@ dst=$dst:a
 src=$src:a
 mkdir -p $dst/deps
 cd $dst/deps
-ln -f -s `relpath $src .`
+ln -f -s `relative $src:h`/$src:t
 git add $src:t
index fcb1cd385fd6cb823a2ed8791e66450182193ece9ac08151d5a0df98ab85a19f..e4b582ba06148b347ba523054814dfef7be95e9386502ddffd3670f6198dc170 100644 (file)
@@ -10,9 +10,7 @@ die() {
 
 [[ -d issues ]] || die You must run that command in directory with issues/
 
-relpath() {
-    $PERL -mFile::Spec -le "print File::Spec->abs2rel(@ARGV)" $1:a $2:a
-}
+autoload -Uz relative
 
 endash() {
     $PERL -npe 's/(-+)/$1-/g ; s/ /-/g'
index 429c17774407a68055e2b55b1eb7b9115b6e25eee9c135a5acee4607241a25d9..2d5f07083e660529eec731158cd7a871165ad41865b7d0491cb7570da36edf6d 100755 (executable)
@@ -9,7 +9,10 @@ print Issue: $issue
 print Project: $issue:h
 print Name: `print $issue:t | dedash`
 for tag (`$root/tag-list $issue`) print Tag: $tag
-for dep (issues/$issue/deps/*(N)) print Depends: $(relpath $(realpath $dep) issues)
+for dep (issues/$issue/deps/*(N)) {
+    _dep=$(relative $(realpath $dep))
+    print Depends: ${_dep#issues/}
+}
 print About:
 sed "s/^/+ /" < issues/$issue/about
 print Result:
diff --git a/show b/show
index b58f03ba54a788f19d1ae0c6ce71bc60c9113fb2fcc3294b45248413143aa98e..e405bdec3cfcd9475fa6d89d5bc20b47417454bf4f9cbd57f10d195c1fa85715 100755 (executable)
--- a/show
+++ b/show
@@ -11,7 +11,10 @@ deps=(issues/$issue/deps/*(N))
 [[ ${#deps} -eq 0 ]] || {
     delim
     print Depends on:
-    for dep ($deps) print "\t"$(relpath $(realpath $dep) issues)
+    for dep ($deps) {
+        _dep=$(relative $(realpath $dep))
+        print "\t"${_dep#issues/}
+    }
 }
 delim
 cat issues/$issue/about
diff --git a/tag-add b/tag-add
index 60d144d731080c1d9cdb7334ebf6263dd179bb9e6b143fff4c4b020348344120..e6bf85d0f847f776a8431c6a89714808918676fe1d3fac06ab3522d72a364f55 100755 (executable)
--- a/tag-add
+++ b/tag-add
@@ -15,6 +15,8 @@ for tag ($@) {
     tag=$tag:a
     [[ -r $tag ]] || die Unknown tag
     mkdir -p issues/$issue/tags
-    ln -f -s `relpath $tag issues/$issue/tags` issues/$issue/tags/$tag:t
+    ln -f -s \
+        `cd issues/$issue/tags ; relative $tag:h`/$tag:t \
+        issues/$issue/tags/$tag:t
     git add issues/$issue/tags/$tag:t
 }