summaryrefslogtreecommitdiff
path: root/localkannel-dispatch
diff options
context:
space:
mode:
authorJonas <dr@jones.dk>2010-05-20 15:07:19 +0200
committerJonas <dr@jones.dk>2010-05-20 15:11:22 +0200
commita49c116e631b7a2d04bff6e65cbd9fe03cd9afc4 (patch)
treefdf0593296cf41cc92020272c6d1c8f9c8fee316 /localkannel-dispatch
parentba307892224bdabf46646c3e979b3b3a56cb1554 (diff)
Improve variable validation in object functions.
Diffstat (limited to 'localkannel-dispatch')
-rwxr-xr-xlocalkannel-dispatch12
1 files changed, 7 insertions, 5 deletions
diff --git a/localkannel-dispatch b/localkannel-dispatch
index 54a13da..05e00c8 100755
--- a/localkannel-dispatch
+++ b/localkannel-dispatch
@@ -113,7 +113,8 @@ return1() {
vardir="/var/lib/kannel/hello"
findobjects() {
set -e
- type="$1"; shift || return1 "Internal error in routine \"findobjects\" (empty object)!"
+ type="$1"; shift || return1 "Internal error (findobjects: missing type)!"
+ [ -n "$type" ] || return1 "Internal error (findobjects: empty type)!"
limit="$@"
regex="$(echo "$limit" | perl -ne '/^\/(.+)\/$/ and print $1')"
args="$(echo "$limit" | perl -ne 's/.*?([a-z0-9]+).*?/ $1/g and print')"
@@ -127,16 +128,17 @@ findobjects() {
cd "$vardir/$type" && ! find -mindepth 1 -maxdepth 1 -type d -printf '%f\n' \
| grep -Fx "$args_multiline" || true
else
- return1 "Internal error in routine \"findobjects\" (illegal limit)!"
+ return1 "Internal error (findobjects: illegal limit)!"
fi
}
addobject() {
set -e
- type="$1"
- name="$2"
+ type="$1"; shift || return1 "Internal error (addobject: missing type)!"
+ [ -n "$type" ] || return1 "Internal error (addobject: empty type)!"
+ name="$1"; shift || return1 "Internal error (addobject: missing name)!"
+ [ -n "$name" ] || return1 "Internal error (addobject: empty name)!"
oldname="$(findobjects "$type" "$name")" || return1 "$oldname"
[ -z "$oldname" ] || return1 "$type \"$name\" already exist."
- [ -n "$name" ] || return1 "Internal error in routine \"addobject\" (empty name)!"
mkdir -p "$vardir/$type/$name"
chgrp --reference="$vardir" "$vardir/$type/$name"
echo "$name"