curl fallback for mac

This commit is contained in:
shocknet-justin 2025-11-26 12:39:56 -05:00
parent 20dd93d8f0
commit ba1984c106
6 changed files with 58 additions and 14 deletions

View file

@ -10,12 +10,9 @@ handle_macos() {
export LAUNCH_AGENTS_DIR="$HOME/Library/LaunchAgents"
mkdir -p "$LAUNCH_AGENTS_DIR"
# Install Homebrew if needed
# Install Homebrew if needed (skipped if not found, we don't force it)
if ! command -v brew &> /dev/null; then
log "${PRIMARY_COLOR}Installing Homebrew...${RESET_COLOR}"
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" || {
log_error "Failed to install Homebrew" 1
}
log "${PRIMARY_COLOR}Homebrew not found. Proceeding without it...${RESET_COLOR}"
fi
# Install LND

View file

@ -28,6 +28,19 @@ log_error() {
exit $2
}
# Helper to download files using wget or curl
download() {
local url="$1"
local dest="$2"
if command -v wget &> /dev/null; then
wget -q "$url" -O "$dest"
elif command -v curl &> /dev/null; then
curl -sL "$url" -o "$dest"
else
log_error "Neither wget nor curl found. Please install one." 1
fi
}
modules=(
"utils"
@ -66,7 +79,7 @@ SCRIPTS_URL="${BASE_URL}/scripts/"
TMP_DIR=$(mktemp -d)
for module in "${modules[@]}"; do
wget -q "${SCRIPTS_URL}${module}.sh" -O "${TMP_DIR}/${module}.sh" || log_error "Failed to download ${module}.sh" 1
download "${SCRIPTS_URL}${module}.sh" "${TMP_DIR}/${module}.sh" || log_error "Failed to download ${module}.sh" 1
source "${TMP_DIR}/${module}.sh" || log_error "Failed to source ${module}.sh" 1
done

View file

@ -19,7 +19,7 @@ install_lightning_pub() {
USER_HOME=$HOME
USER_NAME=$(whoami)
wget -q $REPO_URL -O $USER_HOME/lightning_pub.tar.gz > /dev/null 2>&1 || {
download "$REPO_URL" "$USER_HOME/lightning_pub.tar.gz" > /dev/null 2>&1 || {
log "${PRIMARY_COLOR}Failed to download Lightning.Pub.${RESET_COLOR}"
return 1
}
@ -37,7 +37,7 @@ install_lightning_pub() {
log "Existing installation found. Checking for updates..."
# Check if update is needed by comparing commit hashes
API_RESPONSE=$(wget -qO- "https://api.github.com/repos/${REPO}/commits/${BRANCH}" 2>&1 | tee /tmp/api_response.log)
API_RESPONSE=$(download_stdout "https://api.github.com/repos/${REPO}/commits/${BRANCH}" 2>&1 | tee /tmp/api_response.log)
if grep -q '"message"[[:space:]]*:[[:space:]]*"API rate limit exceeded"' <<< "$API_RESPONSE"; then
log_error "GitHub API rate limit exceeded. Please wait a while before trying again." 1
fi

View file

@ -9,7 +9,7 @@ install_lnd() {
USER_NAME=$(whoami)
log "Checking latest LND version..."
local api_response=$(wget -qO- https://api.github.com/repos/lightningnetwork/lnd/releases/latest)
local api_response=$(download_stdout "https://api.github.com/repos/lightningnetwork/lnd/releases/latest")
LND_VERSION=$(json_value "tag_name" "$api_response")
log "Latest LND version: $LND_VERSION"
@ -51,7 +51,7 @@ install_lnd() {
log "${PRIMARY_COLOR}Downloading${RESET_COLOR} ${SECONDARY_COLOR}LND${RESET_COLOR}..."
# Start the download
wget -q $LND_URL -O $USER_HOME/lnd.tar.gz || {
download "$LND_URL" "$USER_HOME/lnd.tar.gz" || {
log "${PRIMARY_COLOR}Failed to download LND.${RESET_COLOR}"
exit 1
}

View file

@ -13,9 +13,9 @@ install_nodejs() {
[ -s "${NVM_DIR}/nvm.sh" ] && \. "${NVM_DIR}/nvm.sh"
if ! command -v nvm &> /dev/null; then
local nvm_api=$(wget -qO- https://api.github.com/repos/nvm-sh/nvm/releases/latest)
local nvm_api=$(download_stdout "https://api.github.com/repos/nvm-sh/nvm/releases/latest")
NVM_VERSION=$(json_value "tag_name" "$nvm_api")
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/install.sh | bash > /dev/null 2>&1
download_stdout "https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/install.sh" | bash > /dev/null 2>&1
export NVM_DIR="${NVM_DIR}"
[ -s "${NVM_DIR}/nvm.sh" ] && \. "${NVM_DIR}/nvm.sh"
fi

View file

@ -29,12 +29,19 @@ detect_os_arch() {
}
check_deps() {
for cmd in wget grep stat tar; do
for cmd in grep stat tar; do
if ! command -v $cmd &> /dev/null; then
log "Missing system dependency: $cmd. Install $cmd via your package manager and retry."
exit 1
fi
done
# Check for wget or curl (one is required)
if ! command -v wget &> /dev/null && ! command -v curl &> /dev/null; then
log "Missing system dependency: wget or curl. Install via your package manager and retry."
exit 1
fi
if ! command -v sha256sum &> /dev/null && ! command -v shasum &> /dev/null; then
log "Missing system dependency: sha256sum or shasum."
exit 1
@ -69,3 +76,30 @@ json_value() {
echo "$2" | grep -oP "\"${key}\": \"\\K[^\"]+"
fi
}
# Download file (wget or curl)
download() {
local url="$1"
local dest="$2"
if command -v wget &> /dev/null; then
wget -q "$url" -O "$dest"
elif command -v curl &> /dev/null; then
curl -sL "$url" -o "$dest"
else
log "Error: Neither wget nor curl found."
return 1
fi
}
# Download to stdout (wget or curl)
download_stdout() {
local url="$1"
if command -v wget &> /dev/null; then
wget -qO- "$url"
elif command -v curl &> /dev/null; then
curl -sL "$url"
else
log "Error: Neither wget nor curl found."
return 1
fi
}