[pacman-dev] [PATCH 2/6] repo-add: fail early if repo can not be created

Xavier Chantry shiningxc at gmail.com
Thu Feb 26 15:06:13 EST 2009


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 at gmail.com>
---
 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



More information about the pacman-dev mailing list