From 175cc7c95b2c7f36ac461b633673de18d531f205 Mon Sep 17 00:00:00 2001 From: Jonas Date: Fri, 21 May 2010 19:46:53 +0200 Subject: Fork and extend localsmsadmin from localkannel-dispatch. --- localkannel-dispatch | 85 +++------------------------------------------------- 1 file changed, 4 insertions(+), 81 deletions(-) (limited to 'localkannel-dispatch') 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=$@")" -- cgit v1.2.3