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 <[email protected]>
---
 scripts/repo-add.sh.in |   18 +++++++++++++++---
 1 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/scripts/repo-add.sh.in b/scripts/repo-add.sh.in
index b12188c..a967506 100644
--- a/scripts/repo-add.sh.in
+++ b/scripts/repo-add.sh.in
@@ -326,9 +326,21 @@ for arg in "$@"; do
                        fi
                        msg "$(gettext "Extracting database to a temporary 
location...")"
                        bsdtar -xf "$REPO_DB_FILE" -C "$gstmpdir"
-               elif [ "$cmd" == "repo-remove" ]; then
-                       error "$(gettext "Repository file '%s' was not 
found.")" "$REPO_DB_FILE"
-                       exit 1
+               else
+                       case "$cmd" in
+                               repo-remove)
+                               error "$(gettext "Repository file '%s' was not 
found.")" "$REPO_DB_FILE"
+                               exit 1
+                               ;;
+                               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
        else
                if [ "$cmd" == "repo-add" ]; then
-- 
1.6.1.3

_______________________________________________
pacman-dev mailing list
[email protected]
http://www.archlinux.org/mailman/listinfo/pacman-dev

Reply via email to