summaryrefslogtreecommitdiffhomepage
path: root/applications/luci-app-simple-adblock/root
diff options
context:
space:
mode:
authorStan Grishin <stangri@melmac.ca>2023-08-28 21:30:42 +0000
committerStan Grishin <stangri@melmac.ca>2023-09-03 13:57:04 +0000
commit81fc75739c13881ba339d02017ec3a5d2a32948d (patch)
treebbfeb73e3f2bd18b63bf20ab37310397a776c3ef /applications/luci-app-simple-adblock/root
parent324f5a3f79ac237d4ffc14624ffb4d768f7d8921 (diff)
luci-app-adblock-fast: initial commit
* Depends on https://github.com/openwrt/packages/pull/21943 Signed-off-by: Stan Grishin <stangri@melmac.ca>
Diffstat (limited to 'applications/luci-app-simple-adblock/root')
-rw-r--r--applications/luci-app-simple-adblock/root/etc/uci-defaults/40_luci-simple-adblock4
-rwxr-xr-xapplications/luci-app-simple-adblock/root/usr/libexec/rpcd/luci.simple-adblock365
-rw-r--r--applications/luci-app-simple-adblock/root/usr/share/luci/menu.d/luci-app-simple-adblock.json17
-rw-r--r--applications/luci-app-simple-adblock/root/usr/share/rpcd/acl.d/luci-app-simple-adblock.json27
4 files changed, 0 insertions, 413 deletions
diff --git a/applications/luci-app-simple-adblock/root/etc/uci-defaults/40_luci-simple-adblock b/applications/luci-app-simple-adblock/root/etc/uci-defaults/40_luci-simple-adblock
deleted file mode 100644
index 080086891a..0000000000
--- a/applications/luci-app-simple-adblock/root/etc/uci-defaults/40_luci-simple-adblock
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-rm -rf /var/luci-modulecache/; rm -f /var/luci-indexcache;
-[ -x /etc/init.d/rpcd ] && /etc/init.d/rpcd reload;
-exit 0
diff --git a/applications/luci-app-simple-adblock/root/usr/libexec/rpcd/luci.simple-adblock b/applications/luci-app-simple-adblock/root/usr/libexec/rpcd/luci.simple-adblock
deleted file mode 100755
index 8cd40ca72a..0000000000
--- a/applications/luci-app-simple-adblock/root/usr/libexec/rpcd/luci.simple-adblock
+++ /dev/null
@@ -1,365 +0,0 @@
-#!/bin/sh
-# Copyright 2022 Stan Grishin (stangri@melmac.ca)
-# shellcheck disable=SC1091,SC2018,SC2019,SC2039,SC3043,SC3057,SC3060
-
-# TechRef: https://openwrt.org/docs/techref/rpcd
-# TESTS
-# ubus -v list luci.simple-adblock
-# ubus -S call luci.simple-adblock getInitList '{"name": "simple-adblock" }'
-# ubus -S call luci.simple-adblock getInitStatus '{"name": "simple-adblock" }'
-# ubus -S call luci.simple-adblock setInitAction '{"name": "simple-adblock", "action": "start" }'
-# ubus -S call luci.simple-adblock setInitAction '{"name": "simple-adblock", "action": "stop" }'
-# ubus -S call luci.simple-adblock getPlatformSupport '{"name": "simple-adblock" }'
-
-. /lib/functions.sh
-. /lib/functions/network.sh
-. /usr/share/libubox/jshn.sh
-
-readonly packageName="simple-adblock"
-readonly dnsmasqAddnhostsFile="/var/run/${packageName}/dnsmasq.addnhosts"
-readonly dnsmasqAddnhostsCache="/var/run/${packageName}/dnsmasq.addnhosts.cache"
-readonly dnsmasqAddnhostsGzip="${packageName}.dnsmasq.addnhosts.gz"
-readonly dnsmasqConfFile="/tmp/dnsmasq.d/${packageName}"
-readonly dnsmasqConfCache="/var/run/${packageName}/dnsmasq.conf.cache"
-readonly dnsmasqConfGzip="${packageName}.dnsmasq.conf.gz"
-readonly dnsmasqIpsetFile="/tmp/dnsmasq.d/${packageName}.ipset"
-readonly dnsmasqIpsetCache="/var/run/${packageName}/dnsmasq.ipset.cache"
-readonly dnsmasqIpsetGzip="${packageName}.dnsmasq.ipset.gz"
-readonly dnsmasqNftsetFile="/tmp/dnsmasq.d/${packageName}.nftset"
-readonly dnsmasqNftsetCache="/var/run/${packageName}/dnsmasq.nftset.cache"
-readonly dnsmasqNftsetGzip="${packageName}.dnsmasq.nftset.gz"
-readonly dnsmasqServersFile="/var/run/${packageName}/dnsmasq.servers"
-readonly dnsmasqServersCache="/var/run/${packageName}/dnsmasq.servers.cache"
-readonly dnsmasqServersGzip="${packageName}.dnsmasq.servers.gz"
-readonly unboundFile="/var/lib/unbound/adb_list.${packageName}"
-readonly unboundCache="/var/run/${packageName}/unbound.cache"
-readonly unboundGzip="${packageName}.unbound.gz"
-readonly jsonFile="/var/run/${packageName}/${packageName}.json"
-
-str_contains() { [ -n "$1" ] &&[ -n "$2" ] && [ "${1//$2}" != "$1" ]; }
-str_contains_word() { echo "$1" | grep -q -w "$2"; }
-str_to_lower() { echo "$1" | tr 'A-Z' 'a-z'; }
-str_to_upper() { echo "$1" | tr 'a-z' 'A-Z'; }
-is_enabled() { uci -q get "${1}.config.enabled"; }
-get_version() { grep -m1 -A2 -w "^Package: $1$" /usr/lib/opkg/status | sed -n 's/Version: //p'; }
-print_json_bool() { json_init; json_add_boolean "$1" "$2"; json_dump; json_cleanup; }
-print_json_string() { json_init; json_add_string "$1" "$2"; json_dump; json_cleanup; }
-logger() { /usr/bin/logger -t "$packageName" "$@"; }
-ubus_get_status() { ubus call service list "{ 'name': '$packageName' }" | jsonfilter -e "@['${packageName}'].instances.main.data.${1}"; }
-ubus_get_ports() { ubus call service list "{ 'name': '$packageName' }" | jsonfilter -e "@['${packageName}'].instances.main.data.firewall.*.dest_port"; }
-sanitize_dir() { [ -d "$(readlink -fn "$1")" ] && readlink -fn "$1"; }
-json() {
-# shellcheck disable=SC2034
- local action="$1" param="$2" value="$3" i
- if [ -s "$jsonFile" ]; then
- json_load_file "$jsonFile" 2>/dev/null
- json_select 'data' 2>/dev/null
- for i in status message error stats reload restart; do
- json_get_var $i "$i" 2>/dev/null
- done
- fi
- case "$action" in
- get)
- case "$param" in
- *)
- printf "%b" "$(eval echo "\$$param")"; return;;
- esac
- ;;
- esac
-}
-
-get_init_list() {
- local name
- name="$(basename "$1")"
- name="${name:-$packageName}"
- json_init
- json_add_object "$name"
- json_add_boolean 'enabled' "$(is_enabled "$name")"
- if is_running "$name"; then
- json_add_boolean 'running' '1'
- else
- json_add_boolean 'running' '0'
- fi
- json_close_object
- json_dump
- json_cleanup
-}
-
-set_init_action() {
- local name action="$2" cmd
- name="$(basename "$1")"
- name="${name:-$packageName}"
- if [ ! -f "/etc/init.d/$name" ]; then
- print_json_string 'error' 'Init script not found!'
- return
- fi
- case $action in
- enable)
- cmd="uci -q set ${name}.config.enabled=1 && uci commit $name";;
- disable)
- cmd="uci -q set ${name}.config.enabled=0 && uci commit $name";;
- start|stop|reload|restart)
- cmd="/etc/init.d/${name} ${action}";;
- esac
- if [ -n "$cmd" ] && eval "${cmd}" 1>/dev/null 2>&1; then
- print_json_bool "result" '1'
- else
- print_json_bool "result" '0'
- fi
-}
-
-get_init_status() {
- local name
- name="$(basename "$1")"
- name="${name:-$packageName}"
- local errors warnings ports dns outputFile outputCache outputGzip
- local i j
-# shellcheck disable=SC2034
- local compressed_cache_dir
- config_load "$name"
- config_get compressed_cache_dir 'config' 'compressed_cache_dir' '/etc'
- if [ -n "$(sanitize_dir "$compressed_cache_dir")" ]; then
- compressed_cache_dir="$(sanitize_dir "$compressed_cache_dir")"
- else
- compressed_cache_dir="/etc"
- fi
- errors="$(ubus_get_status errors)"
- warnings="$(ubus_get_status warnings)"
- ports="$(ubus_get_ports)"
- if [ -n "$(uci -q get $packageName.config.dnsmasq_config_file_url)" ]; then
- dns="dnsmasq.conf"
- else
- dns="$(uci -q get $packageName.config.dns)"
- fi
- case "$dns" in
- dnsmasq.addnhosts)
- outputFile="$dnsmasqAddnhostsFile"
- outputCache="$dnsmasqAddnhostsCache"
- outputGzip="${compressed_cache_dir}/${dnsmasqAddnhostsGzip}"
- ;;
- dnsmasq.conf)
- outputFile="$dnsmasqConfFile"
- outputCache="$dnsmasqConfCache"
- outputGzip="${compressed_cache_dir}/${dnsmasqConfGzip}"
- ;;
- dnsmasq.ipset)
- outputFile="$dnsmasqIpsetFile"
- outputCache="$dnsmasqIpsetCache"
- outputGzip="${compressed_cache_dir}/${dnsmasqIpsetGzip}"
- ;;
- dnsmasq.nftset)
- outputFile="$dnsmasqNftsetFile"
- outputCache="$dnsmasqNftsetCache"
- outputGzip="${compressed_cache_dir}/${dnsmasqNftsetGzip}"
- ;;
- dnsmasq.servers)
- outputFile="$dnsmasqServersFile"
- outputCache="$dnsmasqServersCache"
- outputGzip="${compressed_cache_dir}/${dnsmasqServersGzip}"
- ;;
- unbound.adb_list)
- outputFile="$unboundFile"
- outputCache="$unboundCache"
- outputGzip="${compressed_cache_dir}/${unboundGzip}"
- ;;
- esac
- json_init
- json_add_object "$name"
- json_add_boolean 'enabled' "$(is_enabled "$name")"
- i="$(json 'get' 'status')"
- j="$(ubus_get_status 'status')"
- if [ "$i" = 'statusSuccess' ] && [ "$i" != "$j" ]; then
- i='statusStopped'
- fi
- json_add_string 'status' "$i"
- if [ "$i" = 'statusSuccess' ]; then
- json_add_boolean 'running' '1'
- else
- json_add_boolean 'running' '0'
- fi
- json_add_string 'version' "$(get_version "$name")"
- json_add_array 'errors'
- if [ -n "$errors" ]; then
- for i in $errors; do
- if str_contains "$i" '|'; then
- error_extra="${i##*|}"
- error_id="${i%|*}"
- else
- error_id="$i"
- unset error_extra
- fi
- json_add_object
- json_add_string 'id' "$error_id"
- json_add_string 'extra' "$error_extra"
- json_close_object
- done
- fi
- json_close_array
- json_add_array 'warnings'
- if [ -n "$warnings" ]; then
- for i in $warnings; do
- if str_contains "$i" '|'; then
- error_extra="${i##*|}"
- error_id="${i%|*}"
- else
- error_id="$i"
- unset error_extra
- fi
- json_add_object
- json_add_string 'id' "$error_id"
- json_add_string 'extra' "$error_extra"
- json_close_object
- done
- fi
- json_close_array
-
- if [ -n "$ports" ]; then
- json_add_boolean 'force_dns_active' '1'
- json_add_array 'force_dns_ports'
- for i in $ports; do json_add_int '' "$i"; done
- json_close_array
- else
- json_add_boolean 'force_dns_active' '0'
- fi
- json_add_int 'entries' "$(ubus_get_status entries)"
- json_add_string 'dns' "$dns"
- json_add_string 'outputFile' "$outputFile"
- json_add_string 'outputCache' "$outputCache"
- json_add_string 'outputGzip' "$outputGzip"
- if [ -s "$outputFile" ]; then
- json_add_boolean 'outputFileExists' '1'
- else
- json_add_boolean 'outputFileExists' '0'
- fi
- if [ -s "$outputCache" ]; then
- json_add_boolean 'outputCacheExists' '1'
- else
- json_add_boolean 'outputCacheExists' '0'
- fi
- if [ -s "$outputGzip" ]; then
- json_add_boolean 'outputGzipExists' '1'
- else
- json_add_boolean 'outputGzipExists' '0'
- fi
- json_add_array 'leds'
- for i in /sys/class/leds/*; do json_add_string '' "$(basename "$i")"; done
- json_close_array
- json_close_object
- json_dump
- json_cleanup
-}
-
-check_ipset() { { command -v ipset && /usr/sbin/ipset help hash:net; } >/dev/null 2>&1; }
-check_nft() { command -v nft >/dev/null 2>&1; }
-check_dnsmasq() { command -v dnsmasq >/dev/null 2>&1; }
-check_unbound() { command -v unbound >/dev/null 2>&1; }
-check_dnsmasq_ipset() {
- local o;
- check_dnsmasq || return 1
- o="$(dnsmasq -v 2>/dev/null)"
- check_ipset && ! echo "$o" | grep -q 'no-ipset' && echo "$o" | grep -q 'ipset'
-}
-check_dnsmasq_nftset() {
- local o;
- check_dnsmasq || return 1
- o="$(dnsmasq -v 2>/dev/null)"
- check_nft && ! echo "$o" | grep -q 'no-nftset' && echo "$o" | grep -q 'nftset'
-}
-
-get_platform_support() {
- local name
- name="$(basename "$1")"
- name="${name:-$packageName}"
- json_init
- json_add_object "$name"
- if check_ipset; then
- json_add_boolean 'ipset_installed' '1'
- else
- json_add_boolean 'ipset_installed' '0'
- fi
- if check_nft; then
- json_add_boolean 'nft_installed' '1'
- else
- json_add_boolean 'nft_installed' '0'
- fi
- if check_dnsmasq; then
- json_add_boolean 'dnsmasq_installed' '1'
- else
- json_add_boolean 'dnsmasq_installed' '0'
- fi
- if check_unbound; then
- json_add_boolean 'unbound_installed' '1'
- else
- json_add_boolean 'unbound_installed' '0'
- fi
- if check_dnsmasq_ipset; then
- json_add_boolean 'dnsmasq_ipset_support' '1'
- else
- json_add_boolean 'dnsmasq_ipset_support' '0'
- fi
- if check_dnsmasq_nftset; then
- json_add_boolean 'dnsmasq_nftset_support' '1'
- else
- json_add_boolean 'dnsmasq_nftset_support' '0'
- fi
- json_add_array 'leds'
- for i in /sys/class/leds/*; do json_add_string '' "$(basename "$i")"; done
- json_close_array
- json_close_object
- json_dump
- json_cleanup
-}
-
-case "$1" in
- list)
- json_init
- json_add_object "getInitList"
- json_add_string 'name' 'name'
- json_close_object
- json_add_object "getInitStatus"
- json_add_string 'name' 'name'
- json_close_object
- json_add_object "getPlatformSupport"
- json_add_string 'name' 'name'
- json_close_object
- json_add_object "setInitAction"
- json_add_string 'name' 'name'
- json_add_string 'action' 'action'
- json_close_object
- json_dump
- json_cleanup
- ;;
- call)
- case "$2" in
- getInitList)
- read -r input
- json_load "$input"
- json_get_var name 'name'
- json_cleanup
- get_init_list "$name"
- ;;
- getInitStatus)
- read -r input
- json_load "$input"
- json_get_var name 'name'
- json_cleanup
- get_init_status "$name"
- ;;
- getPlatformSupport)
- read -r input
- json_load "$input"
- json_get_var name 'name'
- json_cleanup
- get_platform_support "$name"
- ;;
- setInitAction)
- read -r input
- json_load "$input"
- json_get_var name 'name'
- json_get_var action 'action'
- json_cleanup
- set_init_action "$name" "$action"
- ;;
- esac
- ;;
-esac
diff --git a/applications/luci-app-simple-adblock/root/usr/share/luci/menu.d/luci-app-simple-adblock.json b/applications/luci-app-simple-adblock/root/usr/share/luci/menu.d/luci-app-simple-adblock.json
deleted file mode 100644
index b2cdca18eb..0000000000
--- a/applications/luci-app-simple-adblock/root/usr/share/luci/menu.d/luci-app-simple-adblock.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "admin/services/simple-adblock": {
- "title": "Simple AdBlock",
- "action": {
- "type": "view",
- "path": "simple-adblock/overview"
- },
- "depends": {
- "acl": [
- "luci-app-simple-adblock"
- ],
- "uci": {
- "simple-adblock": true
- }
- }
- }
-}
diff --git a/applications/luci-app-simple-adblock/root/usr/share/rpcd/acl.d/luci-app-simple-adblock.json b/applications/luci-app-simple-adblock/root/usr/share/rpcd/acl.d/luci-app-simple-adblock.json
deleted file mode 100644
index 6aeadc9c63..0000000000
--- a/applications/luci-app-simple-adblock/root/usr/share/rpcd/acl.d/luci-app-simple-adblock.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "luci-app-simple-adblock": {
- "description": "Grant UCI and file access for luci-app-simple-adblock",
- "read": {
- "ubus": {
- "luci.simple-adblock": [
- "getInitList",
- "getInitStatus",
- "getPlatformSupport"
- ]
- },
- "uci": [
- "simple-adblock"
- ]
- },
- "write": {
- "uci": [
- "simple-adblock"
- ],
- "ubus": {
- "luci.simple-adblock": [
- "setInitAction"
- ]
- }
- }
- }
-}