summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/aur/drop-from-repo.sh9
-rw-r--r--src/lib/build/build.sh4
-rw-r--r--src/lib/repo/configure.sh7
-rw-r--r--src/lib/repo/switch.sh13
-rw-r--r--src/lib/version/check.sh4
-rw-r--r--src/lib/version/upgrade.sh4
6 files changed, 34 insertions, 7 deletions
diff --git a/src/lib/aur/drop-from-repo.sh b/src/lib/aur/drop-from-repo.sh
index 6ebe12a..1c4f077 100644
--- a/src/lib/aur/drop-from-repo.sh
+++ b/src/lib/aur/drop-from-repo.sh
@@ -92,14 +92,19 @@ pkgctl_aur_drop_from_repo() {
fi
for path in "${paths[@]}"; do
- if ! realpath=$(realpath -e "${path}"); then
+ # resolve symlink for basename
+ if ! realpath=$(realpath --canonicalize-existing -- "${path}"); then
die "No such directory: ${path}"
fi
+ # skip paths that are not directories
+ if [[ ! -d "${realpath}" ]]; then
+ continue
+ fi
pkgbase=$(basename "${realpath}")
pkgbase=${pkgbase%.git}
- if [[ ! -d "${path}/.git" ]]; then
+ if [[ ! -d "${realpath}/.git" ]]; then
die "Not a Git repository: ${path}"
fi
diff --git a/src/lib/build/build.sh b/src/lib/build/build.sh
index 171bb9a..c35d70f 100644
--- a/src/lib/build/build.sh
+++ b/src/lib/build/build.sh
@@ -319,6 +319,10 @@ pkgctl_build() {
fi
for path in "${paths[@]}"; do
+ # skip paths that are not directories
+ if [[ ! -d "${path}" ]]; then
+ continue
+ fi
pushd "${path}" >/dev/null
if [[ ! -f PKGBUILD ]]; then
diff --git a/src/lib/repo/configure.sh b/src/lib/repo/configure.sh
index b3c188c..0980fd1 100644
--- a/src/lib/repo/configure.sh
+++ b/src/lib/repo/configure.sh
@@ -207,9 +207,14 @@ pkgctl_repo_configure() {
fi
for path in "${paths[@]}"; do
- if ! realpath=$(realpath -e "${path}"); then
+ # resolve symlink for basename
+ if ! realpath=$(realpath --canonicalize-existing -- "${path}"); then
die "No such directory: ${path}"
fi
+ # skip paths that aren't directories
+ if [[ ! -d "${realpath}" ]]; then
+ continue
+ fi
pkgbase=$(basename "${realpath}")
pkgbase=${pkgbase%.git}
diff --git a/src/lib/repo/switch.sh b/src/lib/repo/switch.sh
index f411ac2..d8ba9df 100644
--- a/src/lib/repo/switch.sh
+++ b/src/lib/repo/switch.sh
@@ -101,16 +101,21 @@ pkgctl_repo_switch() {
fi
for path in "${paths[@]}"; do
- if ! realpath=$(realpath -e -- "${path}"); then
+ # resolve symlink for basename
+ if ! realpath=$(realpath --canonicalize-existing -- "${path}"); then
die "No such directory: ${path}"
fi
- pkgbase=$(basename "${realpath}")
-
- if [[ ! -d "${path}/.git" ]]; then
+ # skip paths that are not directories
+ if [[ ! -d "${realpath}" ]]; then
+ continue
+ fi
+ # skip paths that are not git repositories
+ if [[ ! -d "${realpath}/.git" ]]; then
error "Not a Git repository: ${path}"
continue
fi
+ pkgbase=$(basename "${realpath}")
if ! git -C "${path}" checkout "${GIT_CHECKOUT_OPTIONS[@]}" "${GIT_REF}"; then
die "Failed to switch ${pkgbase} to version ${VERSION}"
fi
diff --git a/src/lib/version/check.sh b/src/lib/version/check.sh
index 35d07e2..6cd4a5b 100644
--- a/src/lib/version/check.sh
+++ b/src/lib/version/check.sh
@@ -108,6 +108,10 @@ pkgctl_version_check() {
term_spinner_start "${status_dir}"
for path in "${pkgbases[@]}"; do
+ # skip paths that are not directories
+ if [[ ! -d "${path}" ]]; then
+ continue
+ fi
pushd "${path}" >/dev/null
if [[ ! -f "PKGBUILD" ]]; then
diff --git a/src/lib/version/upgrade.sh b/src/lib/version/upgrade.sh
index e217532..df3b77d 100644
--- a/src/lib/version/upgrade.sh
+++ b/src/lib/version/upgrade.sh
@@ -99,6 +99,10 @@ pkgctl_version_upgrade() {
term_spinner_start "${status_dir}"
for path in "${pkgbases[@]}"; do
+ # skip paths that aren't directories
+ if [[ ! -d "${path}" ]]; then
+ continue
+ fi
pushd "${path}" >/dev/null
if [[ ! -f "PKGBUILD" ]]; then