diff options
author | Jonas <dr@jones.dk> | 2010-05-20 15:07:19 +0200 |
---|---|---|
committer | Jonas <dr@jones.dk> | 2010-05-20 15:11:22 +0200 |
commit | a49c116e631b7a2d04bff6e65cbd9fe03cd9afc4 (patch) | |
tree | fdf0593296cf41cc92020272c6d1c8f9c8fee316 /localkannel-dispatch | |
parent | ba307892224bdabf46646c3e979b3b3a56cb1554 (diff) |
Improve variable validation in object functions.
Diffstat (limited to 'localkannel-dispatch')
-rwxr-xr-x | localkannel-dispatch | 12 |
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" |