#!/usr/bin/env bash # These variable must be set before the main body is called SOLANA_LOCK_FILE="${SOLANA_LOCK_FILE:?}" INSTANCE_NAME="${INSTANCE_NAME:?}" PREEMPTIBLE="${PREEMPTIBLE:?}" SSH_AUTHORIZED_KEYS="${SSH_AUTHORIZED_KEYS:?}" SSH_PRIVATE_KEY_TEXT="${SSH_PRIVATE_KEY_TEXT:?}" SSH_PUBLIC_KEY_TEXT="${SSH_PUBLIC_KEY_TEXT:?}" NETWORK_INFO="${NETWORK_INFO:-"Network info unavailable"}" CREATION_INFO="${CREATION_INFO:-"Creation info unavailable"}" if [[ ! -f "${SOLANA_LOCK_FILE}" ]]; then exec 9>>"${SOLANA_LOCK_FILE}" flock -x -n 9 || ( echo "Failed to acquire lock!" 1>&2 && exit 1 ) SOLANA_USER="${SOLANA_USER:?"SOLANA_USER undefined"}" { echo "export SOLANA_LOCK_USER=${SOLANA_USER}" echo "export SOLANA_LOCK_INSTANCENAME=${INSTANCE_NAME}" echo "export PREEMPTIBLE=${PREEMPTIBLE}" echo "[[ -v SSH_TTY && -f \"${HOME}/.solana-motd\" ]] && cat \"${HOME}/.solana-motd\" 1>&2" } >&9 exec 9>&- cat > /solana-scratch/id_ecdsa < /solana-scratch/id_ecdsa.pub < /solana-scratch/authorized_keys < "${HOME}/.solana-motd" <&- echo "${INSTANCE_NAME} candidate is already ${SOLANA_LOCK_INSTANCENAME}" 1>&2 false fi