diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/aur/drop-from-repo.sh | 9 | ||||
-rw-r--r-- | src/lib/build/build.sh | 4 | ||||
-rw-r--r-- | src/lib/repo/configure.sh | 7 | ||||
-rw-r--r-- | src/lib/repo/switch.sh | 13 | ||||
-rw-r--r-- | src/lib/version/check.sh | 4 | ||||
-rw-r--r-- | src/lib/version/upgrade.sh | 4 |
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 |