mirror of
https://github.com/pi-hole/pi-hole
synced 2024-12-22 06:48:07 +00:00
Hardcode whiptail dimensions to 20 rows and 70 chars width
With the suggested way to call the installer via "curl -sSL https://install.pi-hole.net | bash", STDIN is no terminal, but overridden by the curl output, hence in most cases, the minimum dimensions were applied, even on larger screens. All whiptail calls are hence assured to work fine with those dimensions, aside of one case, making the calculations obsolete. This commit hardcodes the whiptail dimensions to the prior minimum and removes the calculations. This also helps with testing, as it does not matter anymore how the script is called, and developers have a clearly defined space to make dialogs look nice, including line breaks, menu and list heights. The only case which does not fit the 70 character width, the second menu entry of the "pihole -r" dialog, has been shortened accordingly. This was not an issue before, as "pihole -r" does not override the scripts STDIN and hence did allow larger dimensions based on the now removed calculations. See the following discussions for reference: - https://github.com/pi-hole/pi-hole/issues/3323 - https://github.com/pi-hole/pi-hole/pull/4197#issuecomment-876702380 Signed-off-by: MichaIng <micha@dietpi.com>
This commit is contained in:
parent
98867d8d71
commit
e1dca46423
@ -94,24 +94,9 @@ if [ -z "${USER}" ]; then
|
|||||||
USER="$(id -un)"
|
USER="$(id -un)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# whiptail dialog dimensions: 20 rows and 70 chars width assures to fit on small screens and is known to hold all content.
|
||||||
# Check if we are running on a real terminal and find the rows and columns
|
r=20
|
||||||
# If there is no real terminal, we will default to 80x24
|
c=70
|
||||||
if [ -t 0 ] ; then
|
|
||||||
screen_size=$(stty size)
|
|
||||||
else
|
|
||||||
screen_size="24 80"
|
|
||||||
fi
|
|
||||||
# Determine terminal rows and columns by parsing screen_size
|
|
||||||
printf -v rows '%d' "${screen_size%% *}"
|
|
||||||
printf -v columns '%d' "${screen_size##* }"
|
|
||||||
|
|
||||||
# Divide by two so the dialogs take up half of the screen, which looks nice.
|
|
||||||
r=$(( rows / 2 ))
|
|
||||||
c=$(( columns / 2 ))
|
|
||||||
# Unless the screen is tiny
|
|
||||||
r=$(( r < 20 ? 20 : r ))
|
|
||||||
c=$(( c < 70 ? 70 : c ))
|
|
||||||
|
|
||||||
######## Undocumented Flags. Shhh ########
|
######## Undocumented Flags. Shhh ########
|
||||||
# These are undocumented flags; some of which we can use when repairing an installation
|
# These are undocumented flags; some of which we can use when repairing an installation
|
||||||
@ -2050,7 +2035,7 @@ update_dialogs() {
|
|||||||
strAdd="You will be updated to the latest version."
|
strAdd="You will be updated to the latest version."
|
||||||
fi
|
fi
|
||||||
opt2a="Reconfigure"
|
opt2a="Reconfigure"
|
||||||
opt2b="This will reset your Pi-hole and allow you to enter new settings."
|
opt2b="Resets Pi-hole and allows re-selecting settings."
|
||||||
|
|
||||||
# Display the information to the user
|
# Display the information to the user
|
||||||
UpdateCmd=$(whiptail --title "Existing Install Detected!" --menu "\\n\\nWe have detected an existing install.\\n\\nPlease choose from the following options: \\n($strAdd)" "${r}" "${c}" 2 \
|
UpdateCmd=$(whiptail --title "Existing Install Detected!" --menu "\\n\\nWe have detected an existing install.\\n\\nPlease choose from the following options: \\n($strAdd)" "${r}" "${c}" 2 \
|
||||||
|
Loading…
Reference in New Issue
Block a user