#!/bin/bash # Oraset 一键安装脚本 # 版本: 4.0.1-Beta set -e # 版本检查 URL VERSION_URL="https://oraset.parlz.com/download/version.txt" PKG_URL_BASE="https://oraset.parlz.com/download/pkg" echo "🚀 开始安装 Oraset..." # 检查系统 if [[ "$OSTYPE" != "darwin"* ]]; then echo "❌ 错误: 此安装脚本仅支持 macOS 系统" exit 1 fi # 检查是否有管理员权限 if [ "$EUID" -ne 0 ]; then echo "⚠️ 需要管理员权限来安装 Oraset" echo "请使用 sudo 运行此脚本,或者输入密码:" sudo -v fi # 检查网络连接 check_network() { if ! curl -s --head --fail "$VERSION_URL" > /dev/null 2>&1; then return 1 fi return 0 } # 获取最新版本号 get_latest_version() { if command -v curl &> /dev/null; then LATEST_VERSION=$(curl -s "$VERSION_URL") elif command -v wget &> /dev/null; then LATEST_VERSION=$(wget -q -O- "$VERSION_URL") else echo "❌ 错误: 需要 curl 或 wget" exit 1 fi echo "$LATEST_VERSION" } echo "🔍 正在检查最新版本..." if check_network; then LATEST_VERSION=$(get_latest_version) if [ -z "$LATEST_VERSION" ]; then echo "⚠️ 无法获取最新版本信息,使用默认版本" LATEST_VERSION="4.0.1-Beta(..26:.6:12)" else echo "✅ 检测到最新版本: $LATEST_VERSION" fi else echo "⚠️ 网络不可用,使用默认版本" LATEST_VERSION="4.0.1-Beta(..26:.6:12)" fi # 创建临时目录 TEMP_DIR=$(mktemp -d) echo "📁 创建临时目录: $TEMP_DIR" # 下载 PKG 文件 PKG_FILE="Oraset-Re+$LATEST_VERSION.pkg" PKG_URL="$PKG_URL_BASE/$PKG_FILE" PKG_PATH="$TEMP_DIR/$PKG_FILE" echo "📥 正在下载 Oraset $LATEST_VERSION..." if command -v curl &> /dev/null; then curl -L -o "$PKG_PATH" "$PKG_URL" elif command -v wget &> /dev/null; then wget -O "$PKG_PATH" "$PKG_URL" else echo "❌ 错误: 需要 curl 或 wget 来下载文件" rm -rf "$TEMP_DIR" exit 1 fi # 检查下载是否成功 if [ ! -f "$PKG_PATH" ]; then echo "❌ 错误: 下载失败" rm -rf "$TEMP_DIR" exit 1 fi echo "✅ 下载完成" # 安装 PKG echo "🔧 正在安装 Oraset..." sudo installer -pkg "$PKG_PATH" -target / # 清理临时文件 rm -rf "$TEMP_DIR" echo "🧹 清理临时文件" # 验证安装 if command -v oraset &> /dev/null; then echo "✅ 安装成功!" echo "" echo "🎉 Oraset $LATEST_VERSION 已成功安装到您的系统" echo "" echo "使用方法:" echo " 查看版本: oraset -v" echo " 运行脚本: oraset your_script.ora" echo "" echo "开始使用 Oraset 吧!" else echo "⚠️ 安装可能未完成,请检查错误信息" echo "您可以尝试手动安装:" echo " sudo installer -pkg $PKG_FILE -target /" exit 1 fi