Merge branch 'development' into fix/do_not_force_local_resolver
This commit is contained in:
commit
ec09b5843c
|
@ -175,7 +175,7 @@ While quite outdated at this point, [this original blog post about Pi-hole](http
|
|||
-----
|
||||
|
||||
## Coverage
|
||||
- [Lifehacker: Turn A Raspberry Pi Into An Ad Blocker With A Single Command](https://www.lifehacker.com.au/2015/02/turn-a-raspberry-pi-into-an-ad-blocker-with-a-single-command/) (Feburary, 2015)
|
||||
- [Lifehacker: Turn A Raspberry Pi Into An Ad Blocker With A Single Command](https://www.lifehacker.com.au/2015/02/turn-a-raspberry-pi-into-an-ad-blocker-with-a-single-command/) (February, 2015)
|
||||
- [MakeUseOf: Adblock Everywhere: The Raspberry Pi-Hole Way](http://www.makeuseof.com/tag/adblock-everywhere-raspberry-pi-hole-way/) (March, 2015)
|
||||
- [Catchpoint: Ad-Blocking on Apple iOS9: Valuing the End User Experience](http://blog.catchpoint.com/2015/09/14/ad-blocking-apple/) (September, 2015)
|
||||
- [Security Now Netcast: Pi-hole](https://www.youtube.com/watch?v=p7-osq_y8i8&t=100m26s) (October, 2015)
|
||||
|
|
|
@ -48,6 +48,8 @@ start() {
|
|||
chown pihole:pihole /etc/pihole /etc/pihole/dhcp.leases 2> /dev/null
|
||||
chown pihole:pihole /var/log/pihole-FTL.log /var/log/pihole.log
|
||||
chmod 0644 /var/log/pihole-FTL.log /run/pihole-FTL.pid /run/pihole-FTL.port /var/log/pihole.log
|
||||
# Chown database files to the user FTL runs as. We ignore errors as the files may not (yet) exist
|
||||
chown pihole:pihole /etc/pihole/pihole-FTL.db /etc/pihole/gravity.db 2> /dev/null
|
||||
if setcap CAP_NET_BIND_SERVICE,CAP_NET_RAW,CAP_NET_ADMIN+eip "$(which pihole-FTL)"; then
|
||||
su -s /bin/sh -c "/usr/bin/pihole-FTL" "$FTLUSER"
|
||||
else
|
||||
|
|
|
@ -376,16 +376,12 @@ is_repo() {
|
|||
# Use a named, local variable instead of the vague $1, which is the first argument passed to this function
|
||||
# These local variables should always be lowercase
|
||||
local directory="${1}"
|
||||
# A local variable for the current directory
|
||||
local curdir
|
||||
# A variable to store the return code
|
||||
local rc
|
||||
# Assign the current directory variable by using pwd
|
||||
curdir="${PWD}"
|
||||
# If the first argument passed to this function is a directory,
|
||||
if [[ -d "${directory}" ]]; then
|
||||
# move into the directory
|
||||
cd "${directory}"
|
||||
pushd "${directory}" &> /dev/null || return 1
|
||||
# Use git to check if the directory is a repo
|
||||
# git -C is not used here to support git versions older than 1.8.4
|
||||
git status --short &> /dev/null || rc=$?
|
||||
|
@ -395,7 +391,7 @@ is_repo() {
|
|||
rc=1
|
||||
fi
|
||||
# Move back into the directory the user started in
|
||||
cd "${curdir}"
|
||||
popd &> /dev/null || return 1
|
||||
# Return the code; if one is not set, return 0
|
||||
return "${rc:-0}"
|
||||
}
|
||||
|
@ -405,6 +401,7 @@ make_repo() {
|
|||
# Set named variables for better readability
|
||||
local directory="${1}"
|
||||
local remoteRepo="${2}"
|
||||
|
||||
# The message to display when this function is running
|
||||
str="Clone ${remoteRepo} into ${directory}"
|
||||
# Display the message and use the color table to preface the message with an "info" indicator
|
||||
|
@ -418,10 +415,19 @@ make_repo() {
|
|||
git clone -q --depth 20 "${remoteRepo}" "${directory}" &> /dev/null || return $?
|
||||
# Data in the repositories is public anyway so we can make it readable by everyone (+r to keep executable permission if already set by git)
|
||||
chmod -R a+rX "${directory}"
|
||||
|
||||
# Move into the directory that was passed as an argument
|
||||
pushd "${directory}" &> /dev/null || return 1
|
||||
# Check current branch. If it is master, then reset to the latest availible tag.
|
||||
# In case extra commits have been added after tagging/release (i.e in case of metadata updates/README.MD tweaks)
|
||||
curBranch=$(git rev-parse --abbrev-ref HEAD)
|
||||
if [[ "${curBranch}" == "master" ]]; then #If we're calling make_repo() then it should always be master, we may not need to check.
|
||||
git reset --hard "$(git describe --abbrev=0 --tags)" || return $?
|
||||
fi
|
||||
# Show a colored message showing it's status
|
||||
printf "%b %b %s\\n" "${OVER}" "${TICK}" "${str}"
|
||||
# Always return 0? Not sure this is correct
|
||||
|
||||
# Move back into the original directory
|
||||
popd &> /dev/null || return 1
|
||||
return 0
|
||||
}
|
||||
|
||||
|
@ -432,17 +438,14 @@ update_repo() {
|
|||
# but since they are local, their scope does not go beyond this function
|
||||
# This helps prevent the wrong value from being assigned if you were to set the variable as a GLOBAL one
|
||||
local directory="${1}"
|
||||
local curdir
|
||||
local curBranch
|
||||
|
||||
# A variable to store the message we want to display;
|
||||
# Again, it's useful to store these in variables in case we need to reuse or change the message;
|
||||
# we only need to make one change here
|
||||
local str="Update repo in ${1}"
|
||||
|
||||
# Make sure we know what directory we are in so we can move back into it
|
||||
curdir="${PWD}"
|
||||
# Move into the directory that was passed as an argument
|
||||
cd "${directory}" &> /dev/null || return 1
|
||||
pushd "${directory}" &> /dev/null || return 1
|
||||
# Let the user know what's happening
|
||||
printf " %b %s..." "${INFO}" "${str}"
|
||||
# Stash any local commits as they conflict with our working code
|
||||
|
@ -450,12 +453,18 @@ update_repo() {
|
|||
git clean --quiet --force -d || true # Okay for already clean directory
|
||||
# Pull the latest commits
|
||||
git pull --quiet &> /dev/null || return $?
|
||||
# Check current branch. If it is master, then reset to the latest availible tag.
|
||||
# In case extra commits have been added after tagging/release (i.e in case of metadata updates/README.MD tweaks)
|
||||
curBranch=$(git rev-parse --abbrev-ref HEAD)
|
||||
if [[ "${curBranch}" == "master" ]]; then
|
||||
git reset --hard "$(git describe --abbrev=0 --tags)" || return $?
|
||||
fi
|
||||
# Show a completion message
|
||||
printf "%b %b %s\\n" "${OVER}" "${TICK}" "${str}"
|
||||
# Data in the repositories is public anyway so we can make it readable by everyone (+r to keep executable permission if already set by git)
|
||||
chmod -R a+rX "${directory}"
|
||||
# Move back into the original directory
|
||||
cd "${curdir}" &> /dev/null || return 1
|
||||
popd &> /dev/null || return 1
|
||||
return 0
|
||||
}
|
||||
|
||||
|
@ -494,7 +503,7 @@ resetRepo() {
|
|||
# Use named variables for arguments
|
||||
local directory="${1}"
|
||||
# Move into the directory
|
||||
cd "${directory}" &> /dev/null || return 1
|
||||
pushd "${directory}" &> /dev/null || return 1
|
||||
# Store the message in a variable
|
||||
str="Resetting repository within ${1}..."
|
||||
# Show the message
|
||||
|
@ -505,6 +514,8 @@ resetRepo() {
|
|||
chmod -R a+rX "${directory}"
|
||||
# And show the status
|
||||
printf "%b %b %s\\n" "${OVER}" "${TICK}" "${str}"
|
||||
# Return to where we came from
|
||||
popd &> /dev/null || return 1
|
||||
# Returning success anyway?
|
||||
return 0
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue