lsp-cli 0.1.6

Command-line tool for talking to Language Server Protocol (LSP) servers from the terminal.
install_node() {
    local tool_dir="$env_dir/node"
    local index_url="https://nodejs.org/dist/index.json"
    local resolved_version
    resolved_version=$(curl -fsSL "$index_url" \
        | grep -o "\"version\":\"v${NODE_VERSION}\.[0-9]*\.[0-9]*\"" \
        | head -n1 \
        | sed -E 's/.*"v([0-9.]+)".*/\1/' || true)
    if [[ -z "$resolved_version" ]]; then
        echo "download-dev-env: could not resolve latest node ${NODE_VERSION}.x from $index_url" >&2
        exit 1
    fi
    if is_up_to_date "$tool_dir" "$resolved_version"; then
        echo "node $resolved_version already installed, skipping"
        return
    fi
    echo "Installing node $resolved_version..."
    local archive="$tmp_dir/node.tar.xz"
    curl -fsSL -o "$archive" "https://nodejs.org/dist/v${resolved_version}/node-v${resolved_version}-${os}-${arch}.tar.xz"
    rm -rf "$tool_dir"
    mkdir -p "$tool_dir"
    tar -xJf "$archive" -C "$tool_dir" --strip-components=1
    echo "$resolved_version" > "$(version_stamp "$tool_dir")"
    link "$tool_dir/bin/node" node
    link "$tool_dir/bin/npm" npm
    link "$tool_dir/bin/npx" npx
}