1
0
mirror of https://github.com/tw93/Mole.git synced 2026-02-14 17:02:26 +00:00

🐛 update

This commit is contained in:
Tw93
2025-10-05 21:13:42 +08:00
parent 997f19d67e
commit 79b1f53c7a
2 changed files with 19 additions and 10 deletions

View File

@@ -30,7 +30,7 @@
- On mission-critical Macs, wait for Mole to mature, safety first - On mission-critical Macs, wait for Mole to mature, safety first
- 如果这台 Mac 对你非常重要,建议等 Mole 更成熟时来使用,安全第一 - 如果这台 Mac 对你非常重要,建议等 Mole 更成熟时来使用,安全第一
- I'm not very tech-savvy Check [小白使用指南](./GUIDE.md) - I'm not very tech-savvyCheck [小白使用指南](./GUIDE.md)
**Install:** **Install:**

27
mole
View File

@@ -147,24 +147,26 @@ update_mole() {
exit 0 exit 0
fi fi
# Download and run installer silently # Download and run installer with progress
echo -e "${BLUE}→${NC} Downloading latest version..."
local installer_url="https://raw.githubusercontent.com/tw93/mole/main/install.sh" local installer_url="https://raw.githubusercontent.com/tw93/mole/main/install.sh"
local tmp_installer local tmp_installer
tmp_installer="$(mktemp)" || { log_error "Update failed"; exit 1; } tmp_installer="$(mktemp)" || { log_error "Update failed"; exit 1; }
# Download installer silently # Download installer with progress
if command -v curl >/dev/null 2>&1; then if command -v curl >/dev/null 2>&1; then
curl -fsSL --connect-timeout 10 --max-time 60 "$installer_url" -o "$tmp_installer" 2>/dev/null || { if ! curl -fsSL --connect-timeout 10 --max-time 60 "$installer_url" -o "$tmp_installer" 2>&1; then
rm -f "$tmp_installer" rm -f "$tmp_installer"
log_error "Update failed. Check network connection." log_error "Update failed. Check network connection."
exit 1 exit 1
} fi
elif command -v wget >/dev/null 2>&1; then elif command -v wget >/dev/null 2>&1; then
wget --timeout=10 --tries=3 -qO "$tmp_installer" "$installer_url" 2>/dev/null || { if ! wget --timeout=10 --tries=3 -qO "$tmp_installer" "$installer_url" 2>&1; then
rm -f "$tmp_installer" rm -f "$tmp_installer"
log_error "Update failed. Check network connection." log_error "Update failed. Check network connection."
exit 1 exit 1
} fi
else else
rm -f "$tmp_installer" rm -f "$tmp_installer"
log_error "curl or wget required" log_error "curl or wget required"
@@ -179,19 +181,26 @@ update_mole() {
local install_dir local install_dir
install_dir="$(cd "$(dirname "$mole_path")" && pwd)" install_dir="$(cd "$(dirname "$mole_path")" && pwd)"
# Run installer quietly and get new version echo -e "${BLUE}→${NC} Installing update..."
if "$tmp_installer" --prefix "$install_dir" --config "$HOME/.config/mole" --update >/dev/null 2>&1; then
# Run installer with visible output (but capture for error handling)
local install_output
if install_output=$("$tmp_installer" --prefix "$install_dir" --config "$HOME/.config/mole" --update 2>&1); then
echo "$install_output" | grep -Ev "^$" || true
local new_version local new_version
new_version=$("$mole_path" --version 2>/dev/null | awk 'NF {print $NF}' || echo "") new_version=$("$mole_path" --version 2>/dev/null | awk 'NF {print $NF}' || echo "")
echo -e "${GREEN}✓${NC} Updated to latest version (${new_version:-unknown})" echo -e "${GREEN}✓${NC} Updated to latest version (${new_version:-unknown})"
else else
if "$tmp_installer" --prefix "$install_dir" --config "$HOME/.config/mole" >/dev/null 2>&1; then # Retry without --update flag
if install_output=$("$tmp_installer" --prefix "$install_dir" --config "$HOME/.config/mole" 2>&1); then
echo "$install_output" | grep -Ev "^$" || true
local new_version local new_version
new_version=$("$mole_path" --version 2>/dev/null | awk 'NF {print $NF}' || echo "") new_version=$("$mole_path" --version 2>/dev/null | awk 'NF {print $NF}' || echo "")
echo -e "${GREEN}✓${NC} Updated to latest version (${new_version:-unknown})" echo -e "${GREEN}✓${NC} Updated to latest version (${new_version:-unknown})"
else else
rm -f "$tmp_installer" rm -f "$tmp_installer"
log_error "Update failed" log_error "Update failed"
echo "$install_output" | tail -10 >&2 # Show last 10 lines of error
exit 1 exit 1
fi fi
fi fi