Fix key file permissions on Windows (msys2)

This commit is contained in:
Slava 2024-11-12 21:38:31 +02:00
parent 26d5d242b1
commit 4ea7dd2598
No known key found for this signature in database
GPG Key ID: 351E7AA9BD0DFEB8
2 changed files with 69 additions and 39 deletions

View File

@ -79,16 +79,31 @@ show_pass "${message}"
# Permissions
message="Setting private key file permissions"
show_progress "${message}"
case "$(uname -s)" in
Linux*) OS="linux" ;;
Darwin*) OS="darwin" ;;
CYGWIN*|MINGW*|MSYS*) OS="windows" ;;
*) show_fail "${message}" "Unsupported OS: $(uname)" ;;
esac
if [[ $OS == "windows" ]]; then
if ! (icacls "${key_file}" /inheritance:r /grant:r `whoami`:F) >/dev/null 2>&1; then
show_fail "${message}" "Failed to set private key file permissions"
fi
show_pass "Setting private key file permissions"
else
if ! (chmod 600 "${key_file}") >/dev/null 2>&1; then
show_fail "${message}" "Failed to set private key file permissions"
fi
show_pass "${message}"
fi
# Show
address=$(cat ${address_file})
echo
echo -e " - private key - \e[90m${PWD}/\e[0m\e[94m${key_file}\e[0m"
echo -e " - address - \e[90m${PWD}/\e[0m\e[94m${address_file}\e[0m - \e[94m${address}\e[0m\n"
echo -e " - private key file - \e[90m${PWD}/\e[0m\e[94m${key_file}\e[0m"
echo -e " - address file - \e[90m${PWD}/\e[0m\e[94m${address_file}\e[0m"
echo -e " - address - \e[0m\e[94m${address}\e[0m\n"
}
# Generate locally

33
run.sh
View File

@ -11,6 +11,9 @@ PASS_MARK="\033[0;32m\u2714\033[0m"
FAIL_MARK="\033[0;31m\u2718\033[0m"
NETWORK="${NETWORK:-testnet}"
# Disable argument conversion to Windows path
export MSYS_NO_PATHCONV=1
export CODEX_DATA_DIR="${CODEX_DATA_DIR:-./codex-data}"
export CODEX_STORAGE_QUOTA="${CODEX_STORAGE_QUOTA:-10g}"
export CODEX_NAT="${CODEX_NAT:-$(curl -s https://ip.codex.storage)}"
@ -97,22 +100,34 @@ fi
show_pass "${message}"
# Check private key permissions
message="Checking private key permissions"
message="Checking private key file permissions"
show_progress "${message}"
case $(uname) in
Linux) permissions=$(stat -c %a ${CODEX_ETH_PRIVATE_KEY}) ;;
Darwin) permissions=$(stat -f "%OLp" ${CODEX_ETH_PRIVATE_KEY}) ;;
CYGWIN*|MINGW*|MSYS*) permissions=$(stat -c %a ${CODEX_ETH_PRIVATE_KEY}) ;;
case "$(uname -s)" in
Linux*) permissions=$(stat -c %a ${CODEX_ETH_PRIVATE_KEY}) ;;
Darwin*) permissions=$(stat -f "%OLp" ${CODEX_ETH_PRIVATE_KEY}) ;;
CYGWIN*|MINGW*|MSYS*) permissions=$(icacls ${CODEX_ETH_PRIVATE_KEY}); OS="windows" ;;
*) show_fail "${message}" "Unsupported OS: $(uname)" ;;
esac
if [[ ${permissions} != "600" ]]; then
chmod 600 ${CODEX_ETH_PRIVATE_KEY}
show_pass "Setting private key permissions"
if [[ $OS == "windows" ]]; then
if ! grep "`whoami`:(F)" <<<"${permissions}" &> /dev/null; then
if ! (icacls "${CODEX_ETH_PRIVATE_KEY}" /inheritance:r /grant:r `whoami`:F) >/dev/null 2>&1; then
show_fail "${message}" "Failed to set private key file permissions"
fi
show_pass "Setting private key file permissions"
else
show_pass "${message}"
fi
else
if [[ ${permissions} != "600" ]]; then
if ! (chmod 600 "${CODEX_ETH_PRIVATE_KEY}") >/dev/null 2>&1; then
show_fail "${message}" "Failed to set private key file permissions"
fi
show_pass "Setting private key file permissions"
else
show_pass "${message}"
fi
fi
# Network
message="Defining network specific settings"