diff --git a/luasrc/model/cbi/whoogle.lua b/luasrc/model/cbi/whoogle.lua index 4edd549..c326a4c 100644 --- a/luasrc/model/cbi/whoogle.lua +++ b/luasrc/model/cbi/whoogle.lua @@ -11,7 +11,7 @@ m = taskd.docker_map("whoogle", "whoogle", "/usr/libexec/apps/whoogle/whoogle.sh translate("Whoogle is a free open-source self-hosted metasearch engine that allows you to search and get your Google results without ads, JavaScript trackers, or AMP links. It also ignores cookies, and does not perform any IP address tracking.") .. translate("Official website:") .. ' https://hub.docker.com/r/benbusby/whoogle-search/') -s = m:section(SimpleSection, translate("Service Status"), translate("whoogle status:")) +s = m:section(SimpleSection, translate("Service Status")) s:append(Template("whoogle/status")) s = m:section(TypedSection, "whoogle", translate("Setup"), translate("The following parameters will only take effect during installation or upgrade:")) diff --git a/luasrc/view/whoogle/status.htm b/luasrc/view/whoogle/status.htm index d55b3bc..c60fcc4 100644 --- a/luasrc/view/whoogle/status.htm +++ b/luasrc/view/whoogle/status.htm @@ -1,31 +1,20 @@ <% local util = require "luci.util" local container_status = util.trim(util.exec("/usr/libexec/apps/whoogle/whoogle.sh status")) -local container_install = (string.len(container_status) > 0) -local container_running = container_status == "running" +local container_running = string.match(string.lower(container_status), "^up%W") +local port = util.trim(util.exec("/usr/libexec/apps/whoogle/whoogle.sh port")) +if port == "" then + port="1880" +end -%> +
-
<% if container_running then %> - + + <% else %> - + <% end %>
-<% -if container_running then - local port=util.trim(util.exec("/usr/libexec/apps/whoogle/whoogle.sh port")) - if port == "" then - port="5000" - end --%> -
- -
- - -
-
-<% end %> diff --git a/root/usr/libexec/apps/whoogle/whoogle.sh b/root/usr/libexec/apps/whoogle/whoogle.sh old mode 100644 new mode 100755 index b69f943..180342a --- a/root/usr/libexec/apps/whoogle/whoogle.sh +++ b/root/usr/libexec/apps/whoogle/whoogle.sh @@ -30,9 +30,6 @@ do_install_detail() { [ -z "$port" ] && port=5000 [ -z "$IMAGE_NAME" ] && IMAGE_NAME=benbusby/whoogle-search - - # Create Docker Compose file with custom variables - # Create Docker Compose file with custom variables rm -R /opt/docker2/compose/whoogle-app mkdir /opt/docker2/compose/whoogle-app @@ -124,14 +121,29 @@ case ${ACTION} in do_install_detail ;; "rm") - docker rm -f whoogle - ;; + IMAGE_NAME=$(uci get whoogle.@whoogle[0].image_name 2>/dev/null) + [ -z "$IMAGE_NAME" ] && IMAGE_NAME="benbusby/whoogle-search" + CONTAINER_IDS=$(docker ps -a --filter "ancestor=${IMAGE_NAME}" --format '{{.ID}}') + echo "Stopping and removing containers..." + for ID in $CONTAINER_IDS; do + docker stop "$ID" + docker rm "$ID" + done + docker rmi -f "$IMAGE_NAME" + rm -r /opt/docker2/compose/whoogle-app 2>/dev/null + ;; "start" | "stop" | "restart") - docker ${ACTION} whoogle + docker ${ACTION} whoogle-search ;; "status") - docker ps --all -f 'name=whoogle' --format '{{.State}}' - ;; + CONTAINER_NAME=$(docker ps -a --filter "name=whoogle-search" --format '{{.Names}}') + CONTAINER_STATUS=$(docker ps --all --filter "name=${CONTAINER_NAME}" --format '{{.Status}}' | awk '/^Up/ { print "up " substr($0, 4) } !/^Up/ && /.+/ { print "down" }') + if [ -z "$CONTAINER_NAME" ]; then + echo "Whoogle is not installed" + else + echo "${CONTAINER_STATUS}" + fi + ;; "port") docker ps --all -f 'name=whoogle' --format '{{.Ports}}' | grep -om1 '0.0.0.0:[0-9]*' | sed 's/0.0.0.0://' ;;