diff options
author | Dan McGee <dan@archlinux.org> | 2008-06-14 17:48:28 +0200 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2008-06-14 17:48:28 +0200 |
commit | 89819b3f9268062ee54c35a16876474414d94bf5 (patch) | |
tree | bd9b7d62c2a979dc6561507257e266b469cb297d /scripts/repo-remove.sh.in | |
parent | c11bdf19b1b8ab40468561dc592b9c6bd7f86acf (diff) | |
download | pacman-89819b3f9268062ee54c35a16876474414d94bf5.tar.gz pacman-89819b3f9268062ee54c35a16876474414d94bf5.tar.xz |
repo-*: allow use of readlink or realpath
Linux coreutils provides readlink, and BSD systems tend to have realpath
available. Both commands provide similar functionality but of course have
different names. Add a check for either and use what is available.
While doing this, also unify some of the differences that have cropped up
between repo-add and repo-remove.
Signed-off-by: Dan McGee <dan@archlinux.org>
Diffstat (limited to 'scripts/repo-remove.sh.in')
-rw-r--r-- | scripts/repo-remove.sh.in | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/scripts/repo-remove.sh.in b/scripts/repo-remove.sh.in index 08786eec..a650bcfd 100644 --- a/scripts/repo-remove.sh.in +++ b/scripts/repo-remove.sh.in @@ -126,6 +126,16 @@ if [ $# -lt 2 ]; then exit 1 fi +# check for and store the name of a realpath-like program +if [ $(type -t realpath) ]; then + realpath='realpath' +elif [ $(type -t readlink) ]; then + realpath='readlink -f' +else + error "$(gettext "Either realpath or readlink are required by repo-add.")" + exit 1 # $E_MISSING_PROGRAM +fi + # source system and user makepkg.conf if [ -r "$confdir/makepkg.conf" ]; then source "$confdir/makepkg.conf" @@ -149,9 +159,10 @@ for arg in "$@"; do if [ "$arg" == "--quiet" -o "$arg" == "-q" ]; then QUIET=1 elif [ -z "$REPO_DB_FILE" ]; then - REPO_DB_FILE=$(readlink -f "$arg") + # store absolute path to repo DB + REPO_DB_FILE=$($realpath "$arg") if ! test_repo_db_file; then - error "$(gettext "Repository file '%s' is not a proper pacman database.")\n" "$REPO_DB_FILE" + error "$(gettext "Repository file '%s' is not a proper pacman database.")" "$REPO_DB_FILE" exit 1 elif [ -f "$REPO_DB_FILE" ]; then msg "$(gettext "Extracting database to a temporary location...")" @@ -170,12 +181,13 @@ 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" + 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 "$DB_COMPRESSION" in gz) TAR_OPT="z" ;; bz2) TAR_OPT="j" ;; @@ -194,6 +206,6 @@ else fi # remove the temp directory used to unzip -[ -d "$gstmpdir" ] && rm -rf $gstmpdir +[ -d "$gstmpdir" ] && rm -rf "$gstmpdir" # vim: set ts=2 sw=2 noet: |