summaryrefslogtreecommitdiffstats
path: root/scripts/repo-add.sh.in
diff options
context:
space:
mode:
authorDave Reisner <d@falconindy.com>2011-06-22 15:30:35 +0200
committerDan McGee <dan@archlinux.org>2011-06-24 06:27:07 +0200
commitd8d287b4d215eceb382385b84495666f5a03399e (patch)
treed9965a2ff1d688ebf7bab9e9971f1b751f117cbc /scripts/repo-add.sh.in
parenteedd56f320c175c430ead9226dc871a9ce04ba3f (diff)
downloadpacman-d8d287b4d215eceb382385b84495666f5a03399e.tar.gz
pacman-d8d287b4d215eceb382385b84495666f5a03399e.tar.xz
repo-add: fix path designation regression
b899099 made path checking a bit more strict than I had intended, and would actually forbid creation of a repo in $PWD if only the filename was specified. readlink would be the fun and easy solution here, but it's avoided due to portability issues, making the validation process a bit more verbose. Signed-off-by: Dan McGee <dan@archlinux.org>
Diffstat (limited to 'scripts/repo-add.sh.in')
-rw-r--r--scripts/repo-add.sh.in13
1 files changed, 11 insertions, 2 deletions
diff --git a/scripts/repo-add.sh.in b/scripts/repo-add.sh.in
index 4e2e4a70..de0b12c1 100644
--- a/scripts/repo-add.sh.in
+++ b/scripts/repo-add.sh.in
@@ -377,9 +377,18 @@ db_remove_entry() {
} # end db_remove_entry
check_repo_db() {
+ local repodir
+
# ensure the path to the DB exists
- if [[ ! -d "${LOCKFILE%/*}" ]]; then
- error "$(gettext "%s does not exist or is not a directory.")" "${LOCKFILE%/*}"
+ if [[ "$LOCKFILE" == /* ]]; then
+ repodir=${LOCKFILE%/*}/
+ else
+ repodir=$PWD/$LOCKFILE
+ repodir=${repodir%/*}/
+ fi
+
+ if [[ ! -d "$repodir" ]]; then
+ error "$(gettext "%s does not exist or is not a directory.")" "$repodir"
exit 1
fi