summaryrefslogtreecommitdiff
path: root/localkannel-dispatch
diff options
context:
space:
mode:
authorJonas <dr@jones.dk>2010-05-21 19:46:53 +0200
committerJonas <dr@jones.dk>2010-05-21 19:46:53 +0200
commit175cc7c95b2c7f36ac461b633673de18d531f205 (patch)
tree79a8af4bef729b15eff9580d293a0a7e0e7c5724 /localkannel-dispatch
parent8f4bf633d276e21f8b4469e6095f894ef6988b3c (diff)
Fork and extend localsmsadmin from localkannel-dispatch.
Diffstat (limited to 'localkannel-dispatch')
-rwxr-xr-xlocalkannel-dispatch85
1 files changed, 4 insertions, 81 deletions
diff --git a/localkannel-dispatch b/localkannel-dispatch
index effc7fd..ecdd6ea 100755
--- a/localkannel-dispatch
+++ b/localkannel-dispatch
@@ -55,7 +55,7 @@ case "$SMS_REALM" in
export mdpath
;;
*)
- exit1 "unknown realm \"$SMS_REALM\""
+ exit1 "unknown realm \"$SMS_REALM\"!"
;;
esac
case "$provider" in
@@ -92,7 +92,7 @@ case "$provider" in
export SMS_SMSC SMS_DLR_MASK SMS_DLR_URL
;;
*)
- exit1 "unknown provider \"$provider\""
+ exit1 "unknown provider \"$provider\"!"
;;
esac
@@ -104,52 +104,6 @@ exit1() {
exit 1
}
-return1() {
- echo >&2 "Error: $1"
- echo "$1"
- exit 1
-}
-
-vardir="/var/lib/kannel/hello"
-findobjects() {
- set -e
- type="$1"; [ -n "$type" ] || return1 "Internal error (findobjects: empty type)!"; shift
- limit="$@"
- regex="$(echo "$limit" | perl -ne '/^\/(.+)\/$/ and print $1')"
- args="$(echo "$limit" | perl -ne 's/.*?([a-z0-9]+).*?/ $1/g and print')"
- [ -d "$vardir/$type" ] || return
- if [ -z "$*" ]; then
- cd "$vardir/$type" && find -mindepth 1 -maxdepth 1 -type d -printf '%f\n'
- elif [ -n "$regex" ]; then
- cd "$vardir/$type" && find -mindepth 1 -maxdepth 1 -type d -regex "$regex"
- elif [ -n $args ]; then
- args_multiline="$(echo "$args" | perl -pe 's/[[:space:]]+/\n/g')"
- cd "$vardir/$type" && ! find -mindepth 1 -maxdepth 1 -type d -printf '%f\n' \
- | grep -Fx "$args_multiline" || true
- else
- return1 "Internal error (findobjects: illegal limit)!"
- fi
-}
-addobject() {
- set -e
- type="$1"; [ -n "$type" ] || return1 "Internal error (addobject: empty type)!"; shift
- name="$1"; [ -n "$name" ] || return1 "Internal error (addobject: empty name)!"; shift
- oldname="$(findobjects "$type" "$name")" || return1 "$oldname"
- [ -z "$oldname" ] || return1 "$type \"$name\" already exist."
- mkdir -p "$vardir/$type/$name"
- chgrp --reference="$vardir" "$vardir/$type/$name"
- echo "$name"
-}
-delobject() {
- set -e
- type="$1"; [ -n "$type" ] || return1 "Internal error (delobject: empty type)!"; shift
- name="$1"; [ -n "$name" ] || return1 "Internal error (delobject: empty name)!"; shift
- oldname="$(findobjects "$type" "$name")" || return1 "$oldname"
- [ -n "$oldname" ] || return1 "No $type named \"$name\" (typo? or perhaps already deleted?)."
- rmdir "$vardir/$type/$name"
- echo "$name"
-}
-
case "$app" in
@*)
[ -n "$REDIRECT_OK" ] || exit1 "Redirection not permitted here!"
@@ -167,39 +121,8 @@ case "$app" in
/*)
[ -n "$ADMIN_OK" ] || exit1 "Administrative commands not permitted here!"
cmd="$(echo "$app" | perl -pe 's/^\///;')"
- case "$cmd" in
- add|create)
- case "$1" in
- user|group)
- type="$1"; shift
- response="$(addobject "$type" "$@")" || exit1 "Failed adding $type${response+: $response}!"
- /usr/local/sbin/localsendsms "$to" "Added $type: $response."
- ;;
- *)
- exit1 "Cannot add \"$1\" (try \"add user\" or \"add group\" instead)."
- ;;
- esac
- ;;
- del|delete|remove)
- case "$1" in
- user|group)
- type="$1"; shift
- response="$(delobject "$type" "$@")" || exit1 "Failed deleting $type${response+: $response}!"
- /usr/local/sbin/localsendsms "$to" "Deleted $type: $response."
- ;;
- *)
- exit1 "Cannot delete \"$1\" (try \"del user\" or \"del group\" instead)."
- ;;
- esac
- ;;
- status)
- msg="$(/usr/local/sbin/localshowkannelstatus)"
- /usr/local/sbin/localsendsms "$to" "$msg"
- ;;
- *)
- exit1 "unknown command \"$cmd\""
- ;;
- esac
+ response="$(/usr/local/sbin/localsmsadmin "$cmd" "$@")" || exit1 "$response"
+ /usr/local/sbin/localsendsms "$to" "$response"
;;
yb)
s="$(links -dump "http://www.yubnub.org/parser/parse?command=$@")"