From c8550c2ba6bc3f80cbad499a6997d0b903580599 Mon Sep 17 00:00:00 2001 From: Aleksey Veresov Date: Sun, 6 Dec 2020 17:51:22 +0300 Subject: . --- vsvs-archive | 14 ++++++++++++++ vsvs-name | 7 +++++++ vsvs-parse | 17 +++++++++++++++++ vsvs-parser | 15 --------------- 4 files changed, 38 insertions(+), 15 deletions(-) create mode 100644 vsvs-archive create mode 100644 vsvs-name create mode 100644 vsvs-parse delete mode 100644 vsvs-parser diff --git a/vsvs-archive b/vsvs-archive new file mode 100644 index 0000000..aea12ef --- /dev/null +++ b/vsvs-archive @@ -0,0 +1,14 @@ +#!/bin/bash +# Current directory will be represented as VSVS archive in output. +# The directory itself should be locked. +for e in `ls -a` +do + test "$e" == "." || test "$e" == ".." && continue + if test -f "$e" + then vsvs-name "$e" < $e + else + cd "$e" + vsvs-archive | vsvs-name "$e" + cd .. + fi +done diff --git a/vsvs-name b/vsvs-name new file mode 100644 index 0000000..709035c --- /dev/null +++ b/vsvs-name @@ -0,0 +1,7 @@ +#!/bin/bash +# Produce VSVS key-value pair in output, +# key is passed as $1, value is read from input. +echo -n "$1" +while IFS="" read line +do echo " $line" +done diff --git a/vsvs-parse b/vsvs-parse new file mode 100644 index 0000000..c06e777 --- /dev/null +++ b/vsvs-parse @@ -0,0 +1,17 @@ +#!/bin/bash +# Iterate action over elements from VSVS input, +# action is passed as $1, it will be evaluated for each key-value pair. +after () { test -z "${2##*$1*}" && echo -n "${2#*$1}"; } +key="" +value="" +while IFS="" read line +do + if test -z "${line%% *}" + then value="${value}"$'\n'"$(after " " "$line")" + else + eval $1 + key="${line%% *}" + value="$(after " " "$line")" + fi +done +eval $1 diff --git a/vsvs-parser b/vsvs-parser deleted file mode 100644 index c676049..0000000 --- a/vsvs-parser +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash -after () { test -z "${2##*$1*}" && echo -n "${2#*$1}"; } -key="" -value="" -while IFS="" read line -do - if test -z "${line%% *}" - then value="${value}"$'\n'"$(after " " "$line")" - else - eval $1 - key="${line%% *}" - value="$(after " " "$line")" - fi -done -eval $1 -- cgit v1.2.3