You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

79 lines
1.5 KiB

#!/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