From 61f2ab5777ae87e3043138ed598a43d31297323b Mon Sep 17 00:00:00 2001 From: 2Shirt <2xShirt@gmail.com> Date: Wed, 29 May 2019 20:46:48 -0600 Subject: [PATCH] Avoid replacing .conkyrc if nothing changed * This prevents conky from reloading every 30 seconds --- .../include_x/airootfs/etc/skel/.update_conky | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/.linux_items/include_x/airootfs/etc/skel/.update_conky b/.linux_items/include_x/airootfs/etc/skel/.update_conky index 0e45e13d..18005927 100755 --- a/.linux_items/include_x/airootfs/etc/skel/.update_conky +++ b/.linux_items/include_x/airootfs/etc/skel/.update_conky @@ -1,24 +1,31 @@ #!/bin/bash +CONFIG_BASE="${HOME}/.conkyrc_base" +CONFIG_NEW="${HOME}/.conkyrc_new" +CONFIG_REAL="${HOME}/.conkyrc" + IF_LIST=($(ip l \ | egrep '^[0-9]+:\s+(eth|en|wl)' \ | sed -r 's/^[0-9]+:\s+(\w+):.*/\1/' \ | sort)) -# Reset conkyrc to default -rm "${HOME}/.conkyrc" -cp "${HOME}/.conkyrc_base" "${HOME}/.conkyrc" +# Build new config from the default +rm "${CONFIG_NEW}" +cp "${CONFIG_BASE}" "${CONFIG_NEW}" -# Add interfaces to conkyrc +# Add interfaces to conkyrc_new for i in "${IF_LIST[@]}"; do if [[ "${i:0:1}" == "e" ]]; then - sed -i -r "s/#Network/Wired:\${alignr}\${addr $i}\n#Network/" $HOME/.conkyrc + sed -i -r "s/#Network/Wired:\${alignr}\${addr $i}\n#Network/" "${CONFIG_NEW}" else - sed -i -r "s/#Network/Wireless:\${alignr}\${addr $i}\n#Network/" $HOME/.conkyrc + sed -i -r "s/#Network/Wireless:\${alignr}\${addr $i}\n#Network/" "${CONFIG_NEW}" fi done -# Remove '#Network' line to prevent duplicating lines if this script is re-run -sed -i -r "s/#Network//" $HOME/.conkyrc +# Replace config if there were changes +if ! diff -q "${CONFIG_NEW}" "${CONFIG_REAL}" >/dev/null 2>&1; then + rm "${CONFIG_REAL}" + cp "${CONFIG_NEW}" "${CONFIG_REAL}" +fi # vim: sts=2 sw=2 ts=2