Compare commits

...

1 commit

Author SHA1 Message Date
0dfd2abfd5
Refactor the repo sync script to work in strict mode 2025-07-13 23:11:21 +03:00

View file

@ -1,4 +1,7 @@
#! /usr/bin/sh
#! /usr/bin/bash
set -euo pipefail
IFS=$'\n\t'
REPO_ROOT_FILE="$(systemd-path user-state-private)"/repo-roots/repo-roots
@ -12,18 +15,25 @@ sync_repo () {
repo=$1
echo git-sync "${repo}"
( cd "${repo}" && "$(systemd-path user-state-private)"/git-sync/git-sync sync )
( cd "${repo}" && "$(systemd-path user-state-private)"/git-sync/git-sync sync ) || true
echo
}
if [ "list" = "$1" ]; then
while read -r repo_root; do
list_repos "${repo_root}"
done < "${REPO_ROOT_FILE}"
else
while read -r repo_root; do
for repo in $(list_repos "${repo_root}"); do
sync_repo "${repo}"
done
done < "${REPO_ROOT_FILE}"
fi
case "${1:-sync}" in
"list")
while read -r repo_root; do
list_repos "${repo_root}"
done < "${REPO_ROOT_FILE}"
;;
"sync")
while read -r repo_root; do
for repo in $(list_repos "${repo_root}"); do
sync_repo "${repo}"
done
done < "${REPO_ROOT_FILE}"
;;
*)
echo Unknown option \""$1"\"
exit 1
;;
esac