You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Botspot-Pi-Apps/settings

88 lines
2.4 KiB
Bash

#!/bin/bash
DIRECTORY="$(readlink -f "$(dirname "$0")")"
function error {
echo -e "\e[91m$1\e[39m"
exit 1
}
#ensure settings dir exists
if [ ! -d "${DIRECTORY}/data/settings" ];then
echo "creating settings directory"
mkdir -p "${DIRECTORY}/data/settings"
#create default files inside
echo '' > "${DIRECTORY}/data/settings/reinstall-after-update"
fi
if [ ! -f ~/.local/share/applications/pi-apps-settings.desktop ];then
echo "Creating Settings menu button"
echo "[Desktop Entry]
Name=Pi Apps Settings
Comment=Configure Pi-Apps or create an App
Exec=${DIRECTORY}/settings
Icon=${DIRECTORY}/icons/logo.png
Terminal=false
Type=Application
Categories=Settings;" > ~/.local/share/applications/pi-apps-settings.desktop
fi
settings='show-edit-button
update-always
reinstall-after-update
'
tooltips='When viewing an App'\''s details, display an Edit button. Beware that updating will revert your edits.
Instead of checking for updates once a day, do an update check every time Pi-Apps is launched.
If the app was installed prior to updating, then automatically install it back after updating it.
'
line=1
for i in $settings
do
if [ -f "${DIRECTORY}/data/settings/${i}" ];then
truefalse='true'
else
truefalse='false'
fi
LIST="${LIST}${truefalse}
$(echo "$settings" | sed -n "${line}p" )
$(echo "$tooltips" | sed -n "${line}p" )
"
line=$((line+1))
done
LIST="${LIST::-1}"
#echo "LIST: ${LIST}EOL"
output="$(echo -e "$LIST" | yad --center --title='Pi-Apps Settings' --width=310 --height=300 --no-headers \
--list --checklist --separator='\n' --window-icon="${DIRECTORY}/icons/logo.png" \
--column=:CHK --column=Name --column=tip:HD --tooltip-column=3 --print-column=2 \
--button='new app'!"${DIRECTORY}/icons/create.png":"${DIRECTORY}/createapp" \
--button=Cancel!"${DIRECTORY}/icons/exit.png":1 \
--button=Save!"${DIRECTORY}/icons/check.png":0 \
2>/dev/null)"
button=$? #get exit code to determine which button was pressed
#exit if save was not clicked
[ $button -ne 0 ]&&exit 0
#reformat output var. Only lists items that have been enabled.
output="$(echo "$output" | sed '/^$/d')
"
echo "Output: ${output}EOO"
for i in $settings
do
#if output matches current setting
if [ ! -z "$(echo "$output" | grep -x "$i")" ];then
echo "$i is enabled"
#create file
echo '' > "${DIRECTORY}/data/settings/${i}"
else
echo "$i is disabled"
#delete file
rm -f "${DIRECTORY}/data/settings/${i}"
fi
done