summaryrefslogtreecommitdiff
path: root/bin/vimki
diff options
context:
space:
mode:
authorMarc Vertes <mvertes@free.fr>2021-06-17 14:43:28 +0200
committerMarc Vertes <mvertes@free.fr>2021-06-17 14:43:28 +0200
commite3df85d9fdba7e69993a24437d4af251af4932f3 (patch)
tree7e5574bc6c22c794b1f27de223a198c3463c68cc /bin/vimki
parent1e297a9b960c6d0784856cb59b08770c7f90fbe8 (diff)
update
Diffstat (limited to 'bin/vimki')
-rwxr-xr-xbin/vimki37
1 files changed, 37 insertions, 0 deletions
diff --git a/bin/vimki b/bin/vimki
new file mode 100755
index 0000000..af5c58c
--- /dev/null
+++ b/bin/vimki
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+# Batch operations on vimki
+
+# rename changes the link name and propagates the change in the wiki
+rename1() {
+ gawk -v old="$1" -v new="$2" -v IGNORECASE=1 '
+ {
+ gsub("[[]" old "[]]", "[" new "]")
+ print
+ }
+ ' "$3"
+}
+
+linkfile() {
+ echo "$1" |
+ tr '[:upper:]' '[:lower:]' |
+ tr 'åäáàâãçéèêëîíìïôöóõòùûüúÿñ' 'aaaaaaceeeeiiiiooooouuuuyn' |
+ awk '{gsub(/\W+/, "_"); print}'
+}
+
+rename() {
+ for f in *; do
+ rename1 "$1" "$2" "$f" > "$f.$$" && mv "$f.$$" "$f"
+ done
+ oldf="$(linkfile "$1")"
+ [ -f "$oldf" ] && mv "$oldf" "$(linkfile "$2")"
+}
+
+fixfiles() {
+ for f in *; do
+ mv "$f" "$(linkfile "$f")"
+ done
+}
+
+cd ~/Wiki
+"$@"