Refactor the repo sync script
This commit is contained in:
parent
e0c33b01b7
commit
9f8e6edf23
1 changed files with 22 additions and 12 deletions
|
|
@ -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
|
||||
|
||||
|
|
@ -16,14 +19,21 @@ sync_repo () {
|
|||
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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue