mirror of
https://github.com/pi-hole/pi-hole.git
synced 2024-11-15 02:42:58 +00:00
Merge pull request #3227 from pi-hole/new/CLI_domain_comments
Add option --comment "whatever" for adding comments for new domains through the CLI interface.
This commit is contained in:
commit
471006676c
1 changed files with 26 additions and 6 deletions
|
@ -22,6 +22,9 @@ web=false
|
||||||
domList=()
|
domList=()
|
||||||
|
|
||||||
typeId=""
|
typeId=""
|
||||||
|
comment=""
|
||||||
|
declare -i domaincount
|
||||||
|
domaincount=0
|
||||||
|
|
||||||
colfile="/opt/pihole/COL_TABLE"
|
colfile="/opt/pihole/COL_TABLE"
|
||||||
source ${colfile}
|
source ${colfile}
|
||||||
|
@ -97,10 +100,12 @@ ValidateDomain() {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -n "${validDomain}" ]]; then
|
if [[ -n "${validDomain}" ]]; then
|
||||||
domList=("${domList[@]}" ${validDomain})
|
domList=("${domList[@]}" "${validDomain}")
|
||||||
else
|
else
|
||||||
echo -e " ${CROSS} ${domain} is not a valid argument or domain name!"
|
echo -e " ${CROSS} ${domain} is not a valid argument or domain name!"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
domaincount=$((domaincount+1))
|
||||||
}
|
}
|
||||||
|
|
||||||
ProcessDomainList() {
|
ProcessDomainList() {
|
||||||
|
@ -151,7 +156,12 @@ AddDomain() {
|
||||||
reload=true
|
reload=true
|
||||||
# Insert only the domain here. The enabled and date_added fields will be filled
|
# Insert only the domain here. The enabled and date_added fields will be filled
|
||||||
# with their default values (enabled = true, date_added = current timestamp)
|
# with their default values (enabled = true, date_added = current timestamp)
|
||||||
sqlite3 "${gravityDBfile}" "INSERT INTO domainlist (domain,type) VALUES ('${domain}',${typeId});"
|
if [[ -z "${comment}" ]]; then
|
||||||
|
sqlite3 "${gravityDBfile}" "INSERT INTO domainlist (domain,type) VALUES ('${domain}',${typeId});"
|
||||||
|
else
|
||||||
|
# also add comment when variable has been set through the "--comment" option
|
||||||
|
sqlite3 "${gravityDBfile}" "INSERT INTO domainlist (domain,type,comment) VALUES ('${domain}',${typeId},'${comment}');"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
RemoveDomain() {
|
RemoveDomain() {
|
||||||
|
@ -224,8 +234,16 @@ NukeList() {
|
||||||
sqlite3 "${gravityDBfile}" "DELETE FROM domainlist WHERE type = ${typeId};"
|
sqlite3 "${gravityDBfile}" "DELETE FROM domainlist WHERE type = ${typeId};"
|
||||||
}
|
}
|
||||||
|
|
||||||
for var in "$@"; do
|
GetComment() {
|
||||||
case "${var}" in
|
comment="$1"
|
||||||
|
if [[ "${comment}" =~ [^a-zA-Z0-9_\#:/\.,\ -] ]]; then
|
||||||
|
echo " ${CROSS} Found invalid characters in domain comment!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
while (( "$#" )); do
|
||||||
|
case "${1}" in
|
||||||
"-w" | "whitelist" ) typeId=0;;
|
"-w" | "whitelist" ) typeId=0;;
|
||||||
"-b" | "blacklist" ) typeId=1;;
|
"-b" | "blacklist" ) typeId=1;;
|
||||||
"--white-regex" | "white-regex" ) typeId=2;;
|
"--white-regex" | "white-regex" ) typeId=2;;
|
||||||
|
@ -239,13 +257,15 @@ for var in "$@"; do
|
||||||
"-l" | "--list" ) Displaylist;;
|
"-l" | "--list" ) Displaylist;;
|
||||||
"--nuke" ) NukeList;;
|
"--nuke" ) NukeList;;
|
||||||
"--web" ) web=true;;
|
"--web" ) web=true;;
|
||||||
* ) ValidateDomain "${var}";;
|
"--comment" ) GetComment "${2}"; shift;;
|
||||||
|
* ) ValidateDomain "${1}";;
|
||||||
esac
|
esac
|
||||||
|
shift
|
||||||
done
|
done
|
||||||
|
|
||||||
shift
|
shift
|
||||||
|
|
||||||
if [[ $# = 0 ]]; then
|
if [[ ${domaincount} == 0 ]]; then
|
||||||
helpFunc
|
helpFunc
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue