summaryrefslogtreecommitdiff
path: root/files/common/sbin/p2ptbl
diff options
context:
space:
mode:
Diffstat (limited to 'files/common/sbin/p2ptbl')
-rwxr-xr-xfiles/common/sbin/p2ptbl22
1 files changed, 22 insertions, 0 deletions
diff --git a/files/common/sbin/p2ptbl b/files/common/sbin/p2ptbl
index 2048e37..0a5bae3 100755
--- a/files/common/sbin/p2ptbl
+++ b/files/common/sbin/p2ptbl
@@ -17,6 +17,21 @@ show () {
cut -f1,3- "$1"
}
+filter () {
+ tbl="$1"
+ shift 1
+ cut -f1,2 "$tbl" \
+ | while read key version; do
+ echo -e "$key\t$(($version+$RANDOM))"
+ done > "$tbl".ver
+ cut -f1,3- "$tbl" \
+ | "$@" \
+ | join -t$'\t' "$tbl".ver - \
+ > "$tbl"~
+ mv "$tbl"~ "$tbl"
+ rm "$tbl".ver
+}
+
update () {
[ -n "$2" -a -n "$3" ] || printArgs
oldversion=$(grep "^$2"$'\t' "$1" | cut -f2)
@@ -86,6 +101,7 @@ $0 init table
$0 get table key
$0 show table
$0 update table key value [interface]
+$0 filter table program [args]
$0 merge table foreign-table
$0 gossip table target-size interface"
exit 1
@@ -117,6 +133,12 @@ case "$1" in
lockTable -s "$2"
show "$2"
;;
+ filter)
+ tbl="$2"
+ shift 2
+ lockTable -x "$tbl"
+ filter "$tbl" "$@"
+ ;;
update)
lockTable -s "$2"
update "$2" "$3" "$4" "$5"
contact: Jan Huwald // Impressum