index : devtools32 | |
Archlinux32 fork of devtools | gitolite user |
summaryrefslogtreecommitdiff |
author | Morten Linderud <foxboron@archlinux.org> | 2024-02-10 12:46:08 +0100 |
---|---|---|
committer | Levente Polyak <anthraxx@archlinux.org> | 2024-03-09 00:49:24 +0100 |
commit | 40f476c649e2c1938c391575f4339c6f50b97e7c (patch) | |
tree | fc016d7ab27cfaf0e9a70fdd7a9e57250b198513 /src/lib/repo | |
parent | 509dd24bdcd6c45bd86937fcd1de6fd1fa510441 (diff) |
-rw-r--r-- | src/lib/repo/configure.sh | 7 | ||||
-rw-r--r-- | src/lib/repo/switch.sh | 13 |
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 |