#!/bin/sh
|
|
|
|
. /usr/share/libubox/jshn.sh
|
|
. /lib/functions.sh
|
|
|
|
log() {
|
|
local msg="$1"
|
|
logger -t ubnt-manager -s "$msg"
|
|
}
|
|
|
|
rexec() {
|
|
local target="$1"
|
|
local username="$2"
|
|
local password="$3"
|
|
local cmd="$4"
|
|
raw=$(DROPBEAR_PASSWORD="$password" ssh -y $username@$target "$cmd" 2>/dev/null)
|
|
ssh_result=$?
|
|
}
|
|
|
|
get_json_dump() {
|
|
local cmd="/usr/www/status.cgi"
|
|
rexec $* "$cmd"
|
|
echo $raw
|
|
}
|
|
|
|
handle_device() {
|
|
local device="${1//-/_}" # replace "-" with "_"
|
|
config_load ubnt-manager
|
|
config_get target "$device" target
|
|
config_get username "$device" username
|
|
config_get password "$device" password
|
|
ssh_result=0
|
|
}
|
|
|
|
add_device_to_list() {
|
|
local device="$1"
|
|
device_list="$device_list $device"
|
|
}
|
|
|
|
list_devices() {
|
|
device_list=""
|
|
config_load ubnt-manager
|
|
config_foreach add_device_to_list device device_list
|
|
echo $device_list
|
|
}
|
|
|
|
usage() {
|
|
cat <<EOF
|
|
usage: ubnt-manager [command]
|
|
-j | --json Dump json info
|
|
-t | --target Target device
|
|
-l | --list-devices List all devices
|
|
-h | --help Brings up this menu
|
|
EOF
|
|
}
|
|
|
|
while [ "$1" != "" ]; do
|
|
case $1 in
|
|
-t | --target)
|
|
shift
|
|
target=$1
|
|
handle_device $target
|
|
;;
|
|
-j | --json)
|
|
json=1
|
|
;;
|
|
-l | --list-devices)
|
|
list_devices
|
|
;;
|
|
-h | --help)
|
|
usage
|
|
;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
if [ ! -z $json ]; then
|
|
get_json_dump $target $username $password | sed 's/Content-Type:\ application\/json//'
|
|
fi
|