fix: SSH permissions test failing in Linux containers
Use if/else for stat format detection instead of || which can fail under set -e. Remove run wrapper for apply_ssh_config. Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -449,19 +449,27 @@ SSHEOF
|
|||||||
source_functions
|
source_functions
|
||||||
AUTO_YES=true
|
AUTO_YES=true
|
||||||
|
|
||||||
run apply_ssh_config
|
apply_ssh_config
|
||||||
assert_success
|
|
||||||
|
|
||||||
# Check directory exists with correct mode
|
# Check directory exists with correct mode
|
||||||
[ -d "${TEST_HOME}/.ssh" ]
|
[ -d "${TEST_HOME}/.ssh" ]
|
||||||
[ -f "${TEST_HOME}/.ssh/config" ]
|
[ -f "${TEST_HOME}/.ssh/config" ]
|
||||||
|
|
||||||
|
# stat format differs: macOS uses -f '%Lp', Linux uses -c '%a'
|
||||||
local dir_perms
|
local dir_perms
|
||||||
dir_perms="$(stat -f '%Lp' "${TEST_HOME}/.ssh" 2>/dev/null || stat -c '%a' "${TEST_HOME}/.ssh" 2>/dev/null)"
|
if stat -f '%Lp' "${TEST_HOME}/.ssh" >/dev/null 2>&1; then
|
||||||
|
dir_perms="$(stat -f '%Lp' "${TEST_HOME}/.ssh")"
|
||||||
|
else
|
||||||
|
dir_perms="$(stat -c '%a' "${TEST_HOME}/.ssh")"
|
||||||
|
fi
|
||||||
[ "$dir_perms" = "700" ]
|
[ "$dir_perms" = "700" ]
|
||||||
|
|
||||||
local file_perms
|
local file_perms
|
||||||
file_perms="$(stat -f '%Lp' "${TEST_HOME}/.ssh/config" 2>/dev/null || stat -c '%a' "${TEST_HOME}/.ssh/config" 2>/dev/null)"
|
if stat -f '%Lp' "${TEST_HOME}/.ssh/config" >/dev/null 2>&1; then
|
||||||
|
file_perms="$(stat -f '%Lp' "${TEST_HOME}/.ssh/config")"
|
||||||
|
else
|
||||||
|
file_perms="$(stat -c '%a' "${TEST_HOME}/.ssh/config")"
|
||||||
|
fi
|
||||||
[ "$file_perms" = "600" ]
|
[ "$file_perms" = "600" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user