[pacman-dev] [PATCH 3/4] repo-add : remove the need of realpath for REPO_DB_FILE

Xavier Chantry shiningxc at gmail.com
Wed Feb 18 11:19:01 EST 2009


REPO_DB_FILE does not need to be an absolute path anymore so no need to
call realpath.

Signed-off-by: Xavier Chantry <shiningxc at gmail.com>
---
 scripts/repo-add.sh.in |   31 +++++++++++++++----------------
 1 files changed, 15 insertions(+), 16 deletions(-)

diff --git a/scripts/repo-add.sh.in b/scripts/repo-add.sh.in
index 6b10527..7a271c4 100644
--- a/scripts/repo-add.sh.in
+++ b/scripts/repo-add.sh.in
@@ -317,7 +317,7 @@ for arg in "$@"; do
 		QUIET=1
 	elif [ -z "$REPO_DB_FILE" ]; then
 		# store absolute path to repo DB
-		REPO_DB_FILE=$($realpath "$arg")
+		REPO_DB_FILE="$arg"
 		if [ -f "$REPO_DB_FILE" ]; then
 			if ! (bsdtar -tf "$REPO_DB_FILE" | grep -q "/desc"); then
 				error "$(gettext "Repository file '%s' is not a proper pacman database.")" "$REPO_DB_FILE"
@@ -359,27 +359,26 @@ done
 # if all operations were a success, re-zip database
 if [ $success -eq 1 ]; then
 	msg "$(gettext "Creating updated database file '%s'")" "$REPO_DB_FILE"
-	pushd "$gstmpdir" 2>&1 >/dev/null
 
-	if [ -n "$(ls)" ]; then
-		[ -f "${REPO_DB_FILE}.old" ] && rm "${REPO_DB_FILE}.old"
-		[ -f "$REPO_DB_FILE" ] && mv "$REPO_DB_FILE" "${REPO_DB_FILE}.old"
-
-		case "$REPO_DB_FILE" in
-			*tar.gz)  TAR_OPT="z" ;;
-			*tar.bz2) TAR_OPT="j" ;;
-			*) warning "$(gettext "'%s' does not have a valid archive extension.")" \
-			           "$REPO_DB_FILE" ;;
-		esac
+	case "$REPO_DB_FILE" in
+		*tar.gz)  TAR_OPT="z" ;;
+		*tar.bz2) TAR_OPT="j" ;;
+		*) warning "$(gettext "'%s' does not have a valid archive extension.")" \
+		"$REPO_DB_FILE" ;;
+	esac
+
+	filename=$(basename "$REPO_DB_FILE")
 
-		bsdtar -c${TAR_OPT}f "$REPO_DB_FILE" *
+	pushd "$gstmpdir" 2>&1 >/dev/null
+	if [ -n "$(ls)" ]; then
+		bsdtar -c${TAR_OPT}f "$filename" *
 	else
-		# we should only end up with an empty db after a remove of the last package in the database
 		error "$(gettext "All packages have been removed from the database. Deleting '%s'.")" "$REPO_DB_FILE"
-		rm "$REPO_DB_FILE"
 	fi
-
 	popd 2>&1 >/dev/null
+
+	[ -f "$REPO_DB_FILE" ] && mv -f "$REPO_DB_FILE" "${REPO_DB_FILE}.old"
+	[ -f "$gstmpdir/$filename" ] && mv "$gstmpdir/$filename" "$REPO_DB_FILE"
 else
 	msg "$(gettext "No packages modified, nothing to do.")"
 fi
-- 
1.6.1.3



More information about the pacman-dev mailing list