summaryrefslogtreecommitdiffstats
path: root/db-functions
diff options
context:
space:
mode:
authorFlorian Pritz <bluewind@xinu.at>2014-01-31 19:53:48 +0100
committerFlorian Pritz <bluewind@xinu.at>2015-05-27 15:46:04 +0200
commit48177ff85854baaf184ebc1c9d46def6398b64d8 (patch)
tree64b037de0322569c88ee1f1f5027f71139c2dd52 /db-functions
parent5340bef937c5ce288d323873529545ffd5878e21 (diff)
downloaddbscripts-48177ff85854baaf184ebc1c9d46def6398b64d8.tar.gz
dbscripts-48177ff85854baaf184ebc1c9d46def6398b64d8.tar.xz
use global variable to track history changes and commit everything at once
Signed-off-by: Florian Pritz <bluewind@xinu.at>
Diffstat (limited to 'db-functions')
-rw-r--r--db-functions19
1 files changed, 15 insertions, 4 deletions
diff --git a/db-functions b/db-functions
index 4b90d51..4c22bd8 100644
--- a/db-functions
+++ b/db-functions
@@ -28,6 +28,8 @@ mv_acl() {
WORKDIR=$(mktemp -d "${TMPDIR}/${0##*/}.XXXXXXXXXX")
LOCKS=()
REPO_MODIFIED=0
+declare -a HISTORY_add_files=()
+declare -a HISTORY_remove_files=()
# check if messages are to be printed using color
unset ALL_OFF BOLD BLUE GREEN RED YELLOW
@@ -565,7 +567,7 @@ arch_history_add() {
mkdir -p "${history_file%/*}"
echo "$pkgbase $pkgver" > "$history_file"
- arch_git add "$history_file"
+ HISTORY_add_files=("${HISTORY_add_files[@]}" "$history_file")
}
arch_history_remove() {
@@ -574,12 +576,21 @@ arch_history_remove() {
local tarches="$3"
local history_file="$GITREPO/$repo/$tarch/$pkgname"
- arch_git rm "$history_file"
+
+ [[ -f "$history_file" ]] || return 1
+
+ HISTORY_remove_files=("${HISTORY_remove_files[@]}" "$history_file")
}
-arch_git() {
+arch_history_commit() {
pushd "$GITREPO"
- git "$@"
+ if ((${#HISTORY_add_files[@]} > 0)); then
+ git add -- "${HISTORY_add_files[@]}"
+ fi
+ if ((${#HISTORY_remove_files[@]} > 0)); then
+ git rm -- "${HISTORY_remove_files[@]}"
+ fi
+ git commit -q -m "$1"
popd
}