From 58fd1dd11b1e86bc2a63d4950b27e7ac52c292b3 Mon Sep 17 00:00:00 2001 From: Slava <20563034+veaceslavdoina@users.noreply.github.com> Date: Mon, 18 Nov 2024 21:41:16 +0200 Subject: [PATCH] Make scripts more flexible, robust and wrappable --- generate.sh | 5 +++-- index.html | 2 +- install.sh | 11 ++++++----- run.sh | 46 +++++++++++++++++----------------------------- 4 files changed, 27 insertions(+), 37 deletions(-) diff --git a/generate.sh b/generate.sh index 30f073a..5d49571 100644 --- a/generate.sh +++ b/generate.sh @@ -11,10 +11,11 @@ MODE=${MODE:-remote} PROGRESS_MARK="\033[0;36m\u2022\033[0m" PASS_MARK="\033[0;32m\u2714\033[0m" FAIL_MARK="\033[0;31m\u2718\033[0m" +SCRIPT_URL="${SCRIPT_URL:-https://get.codex.storage/generate.sh}" # Help -if [[ $1 == *"h"* ]] ; then - COMMAND="curl -s https://get.codex.storage/generate.sh" +if [[ $1 == *"help"* ]] ; then + COMMAND="curl -s ${SCRIPT_URL}" echo -e " \e[33mGenerate private key for Ethereum wallet\e[0m\n \e[33mUsage:\e[0m diff --git a/index.html b/index.html index 1ad248a..196d0b1 100644 --- a/index.html +++ b/index.html @@ -14,7 +14,7 @@
diff --git a/install.sh b/install.sh index 9eb7281..efc8ea8 100644 --- a/install.sh +++ b/install.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -e -# Install Codex on Linux, macOS, and Windows(msys2) +# Install Codex on Linux, macOS, and Windows (msys2) # Variables VERSION=${VERSION:-latest} @@ -19,10 +19,11 @@ TEMP_DIR="${TEMP_DIR:-.}" PROGRESS_MARK="\033[0;36m\u2022\033[0m" PASS_MARK="\033[0;32m\u2714\033[0m" FAIL_MARK="\033[0;31m\u2718\033[0m" +SCRIPT_URL="${SCRIPT_URL:-https://get.codex.storage/install.sh}" # Help -if [[ $1 == *"h"* ]] ; then - COMMAND="curl -s https://get.codex.storage/install.sh" +if [[ $1 == *"help"* ]] ; then + COMMAND="curl -s ${SCRIPT_URL}" echo -e " \e[33mInstall Codex\e[0m\n \e[33mUsage:\e[0m @@ -193,6 +194,7 @@ for BINARY in "${BINARIES[@]}"; do # Install message="Installing ${BINARY_NAME} to ${INSTALL_PATH}" show_progress "${message}" + [[ -d "${INSTALL_PATH}" ]] && show_fail "${message}" "Installation path ${INSTALL_PATH} is a directory" if ! (mkdir -p "${INSTALL_DIR}" && install -m 755 "${TEMP_DIR}/${BINARY_NAME}" "${INSTALL_PATH}") 2> /dev/null; then $(sudo -n true 2>/dev/null) || TRIM=2 sudo mkdir -p "${INSTALL_DIR}" && sudo install -m 755 "${TEMP_DIR}/${BINARY_NAME}" "${INSTALL_PATH}" @@ -240,7 +242,6 @@ if [[ ${#dependencies[@]} -ne 0 ]]; then fi # Path -[[ "${INSTALL_DIR}" == "." ]] && INSTALL_DIR=$(pwd) -if [[ $PATH != *"${INSTALL_DIR}"* ]]; then +if [[ "${INSTALL_DIR}" != "." && "${PATH}" != *"${INSTALL_DIR}"* ]]; then echo -e " Note: Please add install directory '"${INSTALL_DIR}"' to your PATH\n" fi diff --git a/run.sh b/run.sh index 4d20d21..e258f45 100644 --- a/run.sh +++ b/run.sh @@ -9,7 +9,8 @@ CIRDL_BINARY="${CIRDL_BINARY:-cirdl}" PROGRESS_MARK="\033[0;36m\u2022\033[0m" PASS_MARK="\033[0;32m\u2714\033[0m" FAIL_MARK="\033[0;31m\u2718\033[0m" -NETWORK="${NETWORK:-testnet}" +SCRIPT_URL="${SCRIPT_URL:-https://get.codex.storage/run.sh}" +SCRIPT_BASE_URL=$(sed 's/\/[a-z.]\+$//'<<<"${SCRIPT_URL}") # Disable argument conversion to Windows path export MSYS_NO_PATHCONV=1 @@ -25,18 +26,16 @@ export CODEX_BLOCK_TTL="${CODEX_BLOCK_TTL:-30d}" export CODEX_LOG_LEVEL="${CODEX_LOG_LEVEL:-info}" export CODEX_ETH_PRIVATE_KEY="${CODEX_ETH_PRIVATE_KEY:-eth.key}" export CODEX_ETH_PROVIDER="${CODEX_ETH_PROVIDER:-https://rpc.testnet.codex.storage}" -# export CODEX_MARKETPLACE_ADDRESS="${CODEX_MARKETPLACE_ADDRESS:-}" +[[ -n "${CODEX_MARKETPLACE_ADDRESS}" ]] && export CODEX_MARKETPLACE_ADDRESS="${CODEX_MARKETPLACE_ADDRESS}" # Help if [[ $1 == *"help"* ]] ; then - COMMAND="curl -s https://get.codex.storage/run.sh" + COMMAND="curl -s ${SCRIPT_URL}" echo -e " \e[33mRun Codex\e[0m\n \e[33mUsage:\e[0m ${COMMAND} | bash - ${COMMAND} | CODEX_NAT=1.2.3.4 bash ${COMMAND} | CODEX_LOG_LEVEL=debug bash - ${COMMAND} | CODEX_DATA_DIR=./data CODEX_NAT=1.2.3.4 bash ${COMMAND} | CODEX_DATA_DIR=./data CODEX_NAT=1.2.3.4 bash -s -- --log-level=debug ${COMMAND} | bash -s help @@ -86,7 +85,7 @@ show_start "Running Codex..." message="Checking if Codex is installed" show_progress "${message}" if ! command -v ${CODEX_BINARY} &> /dev/null; then - show_fail "Checking if Codex is installed" "Please install Codex first by running 'curl -s https://get.codex.storage/install.sh | bash'" + show_fail "Checking if Codex is installed" "Please install Codex first by running 'curl -s ${SCRIPT_BASE_URL}/install.sh | bash'" fi show_pass "${message}" @@ -94,7 +93,7 @@ show_pass "${message}" message="Checking private key" show_progress "${message}" if [[ ! -f ${CODEX_ETH_PRIVATE_KEY} ]]; then - show_fail "Checking private key" "Please generate private key by running 'curl -s https://get.codex.storage/generate.sh | bash' + show_fail "Checking private key" "Please generate private key by running 'curl -s ${SCRIPT_BASE_URL}/generate.sh | bash' or set the CODEX_ETH_PRIVATE_KEY environment variable to the path of the Ethereum private key file." fi show_pass "${message}" @@ -132,28 +131,17 @@ fi # Network message="Defining network specific settings" show_progress "${message}" && show_pass "${message}" -case ${NETWORK} in - testnet) - bootstrap_nodes=( - --bootstrap-node=spr:CiUIAhIhAiJvIcA_ZwPZ9ugVKDbmqwhJZaig5zKyLiuaicRcCGqLEgIDARo8CicAJQgCEiECIm8hwD9nA9n26BUoNuarCEllqKDnMrIuK5qJxFwIaosQ3d6esAYaCwoJBJ_f8zKRAnU6KkYwRAIgM0MvWNJL296kJ9gWvfatfmVvT-A7O2s8Mxp8l9c8EW0CIC-h-H-jBVSgFjg3Eny2u33qF7BDnWFzo7fGfZ7_qc9P - --bootstrap-node=spr:CiUIAhIhAyUvcPkKoGE7-gh84RmKIPHJPdsX5Ugm_IHVJgF-Mmu_EgIDARo8CicAJQgCEiEDJS9w-QqgYTv6CHzhGYog8ck92xflSCb8gdUmAX4ya78QoemesAYaCwoJBES39Q2RAnVOKkYwRAIgLi3rouyaZFS_Uilx8k99ySdQCP1tsmLR21tDb9p8LcgCIG30o5YnEooQ1n6tgm9fCT7s53k6XlxyeSkD_uIO9mb3 - --bootstrap-node=spr:CiUIAhIhA6_j28xa--PvvOUxH10wKEm9feXEKJIK3Z9JQ5xXgSD9EgIDARo8CicAJQgCEiEDr-PbzFr74--85TEfXTAoSb195cQokgrdn0lDnFeBIP0QzOGesAYaCwoJBK6Kf1-RAnVEKkcwRQIhAPUH5nQrqG4OW86JQWphdSdnPA98ErQ0hL9OZH9a4e5kAiBBZmUl9KnhSOiDgU3_hvjXrXZXoMxhGuZ92_rk30sNDA - --bootstrap-node=spr:CiUIAhIhA7E4DEMer8nUOIUSaNPA4z6x0n9Xaknd28Cfw9S2-cCeEgIDARo8CicAJQgCEiEDsTgMQx6vydQ4hRJo08DjPrHSf1dqSd3bwJ_D1Lb5wJ4Qt_CesAYaCwoJBEDhWZORAnVYKkYwRAIgFNzhnftocLlVHJl1onuhbSUM7MysXPV6dawHAA0DZNsCIDRVu9gnPTH5UkcRXLtt7MLHCo4-DL-RCMyTcMxYBXL0 - --bootstrap-node=spr:CiUIAhIhAzZn3JmJab46BNjadVnLNQKbhnN3eYxwqpteKYY32SbOEgIDARo8CicAJQgCEiEDNmfcmYlpvjoE2Np1Wcs1ApuGc3d5jHCqm14phjfZJs4QrvWesAYaCwoJBKpA-TaRAnViKkcwRQIhANuMmZDD2c25xzTbKSirEpkZYoxbq-FU_lpI0K0e4mIVAiBfQX4yR47h1LCnHznXgDs6xx5DLO5q3lUcicqUeaqGeg - --bootstrap-node=spr:CiUIAhIhAgybmRwboqDdUJjeZrzh43sn5mp8jt6ENIb08tLn4x01EgIDARo8CicAJQgCEiECDJuZHBuioN1QmN5mvOHjeyfmanyO3oQ0hvTy0ufjHTUQh4ifsAYaCwoJBI_0zSiRAnVsKkcwRQIhAJCb_z0E3RsnQrEePdJzMSQrmn_ooHv6mbw1DOh5IbVNAiBbBJrWR8eBV6ftzMd6ofa5khNA2h88OBhMqHCIzSjCeA - --bootstrap-node=spr:CiUIAhIhAntGLadpfuBCD9XXfiN_43-V3L5VWgFCXxg4a8uhDdnYEgIDARo8CicAJQgCEiECe0Ytp2l-4EIP1dd-I3_jf5XcvlVaAUJfGDhry6EN2dgQsIufsAYaCwoJBNEmoCiRAnV2KkYwRAIgXO3bzd5VF8jLZG8r7dcLJ_FnQBYp1BcxrOvovEa40acCIDhQ14eJRoPwJ6GKgqOkXdaFAsoszl-HIRzYcXKeb7D9 - ) - export CODEX_ETH_PROVIDER="https://rpc.testnet.codex.storage" - ;; - workshop) - bootstrap_nodes=( - --bootstrap-node=spr:CiUIAhIhAnBsex_7L5xKJQpmAuOtubQEtKsgCOXE2vaJoTJXrprbEgIDARo8CicAJQgCEiECcGx7H_svnEolCmYC4625tAS0qyAI5cTa9omhMleumtsQnbm0tAYaCwoJBMCoWP2RAh-aKkcwRQIhANjwAV9DGFe4zcMUEHjuTsGWAPc7WB7uoSS86HATwouqAiA8dFhsALCSLsQbSOPF1j7NF643oEmPEJAwU9dIwjM6TA \ - ) - export CODEX_ETH_PROVIDER="https://rpc.testnet.codex.storage" - ;; - *) show_fail "Unknown network" "Please set the NETWORK environment variable to 'testnet'." - ;; -esac +if [[ "$@" != *"--bootstrap-node"* ]]; then + bootstrap_nodes=( + --bootstrap-node=spr:CiUIAhIhAiJvIcA_ZwPZ9ugVKDbmqwhJZaig5zKyLiuaicRcCGqLEgIDARo8CicAJQgCEiECIm8hwD9nA9n26BUoNuarCEllqKDnMrIuK5qJxFwIaosQ3d6esAYaCwoJBJ_f8zKRAnU6KkYwRAIgM0MvWNJL296kJ9gWvfatfmVvT-A7O2s8Mxp8l9c8EW0CIC-h-H-jBVSgFjg3Eny2u33qF7BDnWFzo7fGfZ7_qc9P + --bootstrap-node=spr:CiUIAhIhAyUvcPkKoGE7-gh84RmKIPHJPdsX5Ugm_IHVJgF-Mmu_EgIDARo8CicAJQgCEiEDJS9w-QqgYTv6CHzhGYog8ck92xflSCb8gdUmAX4ya78QoemesAYaCwoJBES39Q2RAnVOKkYwRAIgLi3rouyaZFS_Uilx8k99ySdQCP1tsmLR21tDb9p8LcgCIG30o5YnEooQ1n6tgm9fCT7s53k6XlxyeSkD_uIO9mb3 + --bootstrap-node=spr:CiUIAhIhA6_j28xa--PvvOUxH10wKEm9feXEKJIK3Z9JQ5xXgSD9EgIDARo8CicAJQgCEiEDr-PbzFr74--85TEfXTAoSb195cQokgrdn0lDnFeBIP0QzOGesAYaCwoJBK6Kf1-RAnVEKkcwRQIhAPUH5nQrqG4OW86JQWphdSdnPA98ErQ0hL9OZH9a4e5kAiBBZmUl9KnhSOiDgU3_hvjXrXZXoMxhGuZ92_rk30sNDA + --bootstrap-node=spr:CiUIAhIhA7E4DEMer8nUOIUSaNPA4z6x0n9Xaknd28Cfw9S2-cCeEgIDARo8CicAJQgCEiEDsTgMQx6vydQ4hRJo08DjPrHSf1dqSd3bwJ_D1Lb5wJ4Qt_CesAYaCwoJBEDhWZORAnVYKkYwRAIgFNzhnftocLlVHJl1onuhbSUM7MysXPV6dawHAA0DZNsCIDRVu9gnPTH5UkcRXLtt7MLHCo4-DL-RCMyTcMxYBXL0 + --bootstrap-node=spr:CiUIAhIhAzZn3JmJab46BNjadVnLNQKbhnN3eYxwqpteKYY32SbOEgIDARo8CicAJQgCEiEDNmfcmYlpvjoE2Np1Wcs1ApuGc3d5jHCqm14phjfZJs4QrvWesAYaCwoJBKpA-TaRAnViKkcwRQIhANuMmZDD2c25xzTbKSirEpkZYoxbq-FU_lpI0K0e4mIVAiBfQX4yR47h1LCnHznXgDs6xx5DLO5q3lUcicqUeaqGeg + --bootstrap-node=spr:CiUIAhIhAgybmRwboqDdUJjeZrzh43sn5mp8jt6ENIb08tLn4x01EgIDARo8CicAJQgCEiECDJuZHBuioN1QmN5mvOHjeyfmanyO3oQ0hvTy0ufjHTUQh4ifsAYaCwoJBI_0zSiRAnVsKkcwRQIhAJCb_z0E3RsnQrEePdJzMSQrmn_ooHv6mbw1DOh5IbVNAiBbBJrWR8eBV6ftzMd6ofa5khNA2h88OBhMqHCIzSjCeA + --bootstrap-node=spr:CiUIAhIhAntGLadpfuBCD9XXfiN_43-V3L5VWgFCXxg4a8uhDdnYEgIDARo8CicAJQgCEiECe0Ytp2l-4EIP1dd-I3_jf5XcvlVaAUJfGDhry6EN2dgQsIufsAYaCwoJBNEmoCiRAnV2KkYwRAIgXO3bzd5VF8jLZG8r7dcLJ_FnQBYp1BcxrOvovEa40acCIDhQ14eJRoPwJ6GKgqOkXdaFAsoszl-HIRzYcXKeb7D9 + ) +fi # Show Codex parameters message="Codex parameters:"