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

65 lines
1.1 KiB
Bash

#!/bin/sh
. /lib/functions.sh
. /usr/share/libubox/jshn.sh
readonly bg_path="/www/luci-static/argon/background"
readonly tmp_path="/tmp/argon_background.tmp"
case "$1" in
"list")
json_init
json_add_object "avail"
json_close_object
json_add_object "remove"
json_add_string "filename" "filename"
json_close_object
json_add_object "rename"
json_add_string "newname" "filename"
json_close_object
json_dump
json_cleanup
;;
"call")
case "$2" in
"avail")
json_init
json_add_int "avail" "$(df | grep -E '/$' | awk '{print $4}')"
json_dump
json_cleanup
;;
"remove")
read -r input
json_load "$input"
json_get_var filename "filename"
json_cleanup
if dirname "$filename" | grep -q ".."; then
echo '{ "result": 255 }'
exit 255
fi
rm -f "$bg_path/$filename"
echo '{ "result": 0 }'
;;
"rename")
read -r input
json_load "$input"
json_get_var newname "newname"
json_cleanup
if dirname "$newname" | grep -q ".."; then
echo '{ "result": 255 }'
exit 255
fi
if mv "$tmp_path" "$bg_path/$newname" 2>"/dev/null"; then
echo '{ "result": 0 }'
else
echo '{ "result": 1 }'
fi
;;
esac
;;
esac