diff options
author | Xavier Chantry <shiningxc@gmail.com> | 2009-02-26 18:16:23 +0100 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2009-05-23 19:27:32 +0200 |
commit | 30e2496775897644fb397b32e8bdf0ae2f827216 (patch) | |
tree | f0a9dd7fe44526acaa56e3d057d4307fdfdd359a | |
parent | 35b9dfc3805821cb504231a5e5ce5a8694278fb7 (diff) | |
download | pacman-30e2496775897644fb397b32e8bdf0ae2f827216.tar.gz pacman-30e2496775897644fb397b32e8bdf0ae2f827216.tar.xz |
repo-add: fail early if repo can not be created
Before this commit, the repo creation could fail after all packages have
been added to the database. Now this will be detected before adding
anything.
Signed-off-by: Xavier Chantry <shiningxc@gmail.com>
Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r-- | scripts/repo-add.sh.in | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/scripts/repo-add.sh.in b/scripts/repo-add.sh.in index 14bd00e4..7c12aaf2 100644 --- a/scripts/repo-add.sh.in +++ b/scripts/repo-add.sh.in @@ -312,10 +312,20 @@ check_repo_db() msg "$(gettext "Extracting database to a temporary location...")" bsdtar -xf "$REPO_DB_FILE" -C "$tmpdir" else - if [ "$cmd" == "repo-remove" ]; then + case "$cmd" in + repo-remove) error "$(gettext "Repository file '%s' was not found.")" "$REPO_DB_FILE" exit 1 - fi + ;; + repo-add) + # check if the file can be created (write permission, directory existence, etc) + if ! touch "$REPO_DB_FILE"; then + error "$(gettext "Repository file '%s' could not be created.")" "$REPO_DB_FILE" + exit 1 + fi + rm -f "$REPO_DB_FILE" + ;; + esac fi } |