# See the License for the specific language governing permissions and
# limitations under the License.
-
-# Running these files directly won't be good since we are
-# unmounting the volume they live on.
-# This never really get's run, since we normally only
-# seed these files to other hosts using btrbk-run.
+# usage: run with no arguments.
+# Scripts that would interfere with unmounting /a, install them elsewhere.
set -eE -o pipefail
}
fi
-# scripts that would interfere with unmounting /a, put them elsewhere.
# note: previously used the install command, but it had this habit of
# like, once a month or so the files would be "not found" by a script
# trying to use them, within a few minute of the last time this
# ran. Very strange, dunno why, but rsync won't do anything unless these
# changed, so that should fix it.
-/a/bin/log-quiet/setup
-rsync -tl --chmod=755 --chown=root:root \
- switch-mail-host \
- switch-host2 \
- btrbk-run mount-latest-subvol \
- check-subvol-stale myi3status \
- mailbindwatchdog \
- check-mailq \
- unsaved-buffers.el \
- mail-backup-clean \
- iptables-exim \
- ip6tables-exim \
- exim-nn-iptables \
- check-crypttab \
- /a/bin/cedit/cedit \
- /usr/local/bin
-rsync -t --chmod=755 --chown=root:root /a/bin/errhandle/err /usr/local/lib
-
-cmd=( rsync -aiSAX --chown=root:root --chmod=g-s
- epanic-clean
- system-status
- btrfsmaint
- mailtest-check
- dynamic-ip-update /usr/local/bin
- )
+
+
+rs() {
+ # some files are intentionally not executable in git
+ rsync -aSAX --chmod=755 --chown=root:root "$@"
+}
+
+source /a/bin/ds/script-files
+
+rs ${my_bin_files[@]} /usr/local/bin
+rs $my_lib_files /usr/local/lib
+
sre() {
service=$1
}
+tmpf=$(mktemp)
+# SAX are acls and things, dont use but whatever
+rs -i ${my_service_scripts[@]} /usr/local/bin >$tmpf
while read -r line; do
file="${line:12}"
#echo debug: file: $file
sre ${file//-/}
;;
esac
-done < <("${cmd[@]}")
+done <$tmpf
+rm $tmpf
--- /dev/null
+#!/bin/bash
+### FOR SOURCING ###
+
+my_bin_files=(
+ switch-mail-host
+ switch-host2
+ btrbk-run mount-latest-subvol
+ check-subvol-stale myi3status
+ mailbindwatchdog
+ check-mailq
+ unsaved-buffers.el
+ mail-backup-clean
+ iptables-exim
+ ip6tables-exim
+ exim-nn-iptables
+ check-crypttab
+ /a/bin/cedit/cedit
+)
+
+for f in /b/log-quiet/*; do
+ if [[ -x $f && ! -d $f && ! -L $f && $f != setup ]]; then
+ my_bin_files+=("$f")
+ fi
+done
+
+
+my_service_scripts=(
+ epanic-clean
+ system-status
+ btrfsmaint
+ mailtest-check
+ dynamic-ip-update
+)
+
+# note: turn this into an array if we ever add more
+my_lib_files=/a/bin/errhandle/err
+
+all_my_scripts=("${my_service_scripts[@]}" "${my_bin_files[@]}" $my_lib_files)
# SPDX-License-Identifier: AGPL-3.0-or-later
# usage: runs once every 15 seconds unless any args are passed, or we
-# then just runs once. On battery power, run once per minute.
+# then just runs once and have verbose output. On battery power, run
+# once per minute.
if [ -z "$BASH_VERSION" ]; then echo "error: shell is not bash" >&2; exit 1; fi
begin=false
+ # todo: make this robust to the case of /a not being mounted
if ! make -C /b/ds -q ~/.local/distro-begin 2>/dev/null || [[ $(<~/.local/distro-begin) != 0 ]]; then
begin=true
fi
elif $end; then
chars+=(DE)
else
+ source /a/bin/ds/script-files
f=~/.local/conflink
# shellcheck disable=SC2043
for _ in 1; do
done
# Just because i forget a lot, -mmin -NUM means files modified <= NUM minutes ago
- if (( fmin < 0 )) && [[ $(find ${all_dirs[@]} -mmin $fmin -type f -print -quit 2>/dev/null) ]]; then
+ if (( fmin < 0 )) && [[ $(find ${all_my_scripts[@]} ${all_dirs[@]} -mmin $fmin -type f -print -quit 2>/dev/null) ]]; then
v conflink newer filesystem files
chars+=(CONFLINK)
break