curl fallback for mac
This commit is contained in:
parent
20dd93d8f0
commit
ba1984c106
6 changed files with 58 additions and 14 deletions
|
|
@ -10,14 +10,11 @@ handle_macos() {
|
||||||
export LAUNCH_AGENTS_DIR="$HOME/Library/LaunchAgents"
|
export LAUNCH_AGENTS_DIR="$HOME/Library/LaunchAgents"
|
||||||
mkdir -p "$LAUNCH_AGENTS_DIR"
|
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
|
if ! command -v brew &> /dev/null; then
|
||||||
log "${PRIMARY_COLOR}Installing Homebrew...${RESET_COLOR}"
|
log "${PRIMARY_COLOR}Homebrew not found. Proceeding without it...${RESET_COLOR}"
|
||||||
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" || {
|
|
||||||
log_error "Failed to install Homebrew" 1
|
|
||||||
}
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Install LND
|
# Install LND
|
||||||
log "${PRIMARY_COLOR}Installing${RESET_COLOR} ${SECONDARY_COLOR}LND${RESET_COLOR}..."
|
log "${PRIMARY_COLOR}Installing${RESET_COLOR} ${SECONDARY_COLOR}LND${RESET_COLOR}..."
|
||||||
lnd_output=$(install_lnd)
|
lnd_output=$(install_lnd)
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,19 @@ log_error() {
|
||||||
exit $2
|
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=(
|
modules=(
|
||||||
"utils"
|
"utils"
|
||||||
|
|
@ -66,7 +79,7 @@ SCRIPTS_URL="${BASE_URL}/scripts/"
|
||||||
TMP_DIR=$(mktemp -d)
|
TMP_DIR=$(mktemp -d)
|
||||||
|
|
||||||
for module in "${modules[@]}"; do
|
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
|
source "${TMP_DIR}/${module}.sh" || log_error "Failed to source ${module}.sh" 1
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ install_lightning_pub() {
|
||||||
USER_HOME=$HOME
|
USER_HOME=$HOME
|
||||||
USER_NAME=$(whoami)
|
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}"
|
log "${PRIMARY_COLOR}Failed to download Lightning.Pub.${RESET_COLOR}"
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
@ -37,7 +37,7 @@ install_lightning_pub() {
|
||||||
log "Existing installation found. Checking for updates..."
|
log "Existing installation found. Checking for updates..."
|
||||||
|
|
||||||
# Check if update is needed by comparing commit hashes
|
# 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
|
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
|
log_error "GitHub API rate limit exceeded. Please wait a while before trying again." 1
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ install_lnd() {
|
||||||
USER_NAME=$(whoami)
|
USER_NAME=$(whoami)
|
||||||
|
|
||||||
log "Checking latest LND version..."
|
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")
|
LND_VERSION=$(json_value "tag_name" "$api_response")
|
||||||
log "Latest LND version: $LND_VERSION"
|
log "Latest LND version: $LND_VERSION"
|
||||||
|
|
||||||
|
|
@ -51,7 +51,7 @@ install_lnd() {
|
||||||
log "${PRIMARY_COLOR}Downloading${RESET_COLOR} ${SECONDARY_COLOR}LND${RESET_COLOR}..."
|
log "${PRIMARY_COLOR}Downloading${RESET_COLOR} ${SECONDARY_COLOR}LND${RESET_COLOR}..."
|
||||||
|
|
||||||
# Start the download
|
# 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}"
|
log "${PRIMARY_COLOR}Failed to download LND.${RESET_COLOR}"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,9 +13,9 @@ install_nodejs() {
|
||||||
[ -s "${NVM_DIR}/nvm.sh" ] && \. "${NVM_DIR}/nvm.sh"
|
[ -s "${NVM_DIR}/nvm.sh" ] && \. "${NVM_DIR}/nvm.sh"
|
||||||
|
|
||||||
if ! command -v nvm &> /dev/null; then
|
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")
|
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}"
|
export NVM_DIR="${NVM_DIR}"
|
||||||
[ -s "${NVM_DIR}/nvm.sh" ] && \. "${NVM_DIR}/nvm.sh"
|
[ -s "${NVM_DIR}/nvm.sh" ] && \. "${NVM_DIR}/nvm.sh"
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -29,12 +29,19 @@ detect_os_arch() {
|
||||||
}
|
}
|
||||||
|
|
||||||
check_deps() {
|
check_deps() {
|
||||||
for cmd in wget grep stat tar; do
|
for cmd in grep stat tar; do
|
||||||
if ! command -v $cmd &> /dev/null; then
|
if ! command -v $cmd &> /dev/null; then
|
||||||
log "Missing system dependency: $cmd. Install $cmd via your package manager and retry."
|
log "Missing system dependency: $cmd. Install $cmd via your package manager and retry."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
done
|
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
|
if ! command -v sha256sum &> /dev/null && ! command -v shasum &> /dev/null; then
|
||||||
log "Missing system dependency: sha256sum or shasum."
|
log "Missing system dependency: sha256sum or shasum."
|
||||||
exit 1
|
exit 1
|
||||||
|
|
@ -68,4 +75,31 @@ json_value() {
|
||||||
else
|
else
|
||||||
echo "$2" | grep -oP "\"${key}\": \"\\K[^\"]+"
|
echo "$2" | grep -oP "\"${key}\": \"\\K[^\"]+"
|
||||||
fi
|
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
|
||||||
}
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue