Add update check functionality
Implement version checking and update notifications in the GUI
This commit is contained in:
@@ -42,8 +42,12 @@ deps: ## install frontend deps (npm ci)
|
||||
targets: ## add rust targets for the universal build
|
||||
rustup target add aarch64-apple-darwin x86_64-apple-darwin
|
||||
|
||||
.PHONY: bump
|
||||
bump: ## increment the patch version in tauri.conf.json (single source of truth)
|
||||
@node -e "const f='$(APP_DIR)/src-tauri/tauri.conf.json';const fs=require('fs');const j=JSON.parse(fs.readFileSync(f));const p=j.version.split('.').map(Number);p[2]=(p[2]||0)+1;j.version=p.join('.');fs.writeFileSync(f, JSON.stringify(j,null,2)+'\n');console.log('version → '+j.version)"
|
||||
|
||||
.PHONY: dmg
|
||||
dmg: targets ## build the universal (Intel + Apple Silicon) .dmg — UNSIGNED
|
||||
dmg: bump targets ## bump version + build the universal (Intel + Apple Silicon) .dmg — UNSIGNED
|
||||
# Tauri's universal build needs BOTH the per-arch sidecars (resolved during each
|
||||
# arch sub-build) AND a fat spaceshd-universal-apple-darwin (copied into the final
|
||||
# bundle — Tauri does not lipo sidecars itself). spaceshd ships inside
|
||||
@@ -60,7 +64,7 @@ dmg: targets ## build the universal (Intel + Apple Silicon) .dmg — UNSIGNED
|
||||
@echo "→ $(DMG_DIR)" && ls -lh $(DMG_DIR)/*.dmg
|
||||
|
||||
.PHONY: dmg-native
|
||||
dmg-native: ## build a .dmg for the current arch only (faster)
|
||||
dmg-native: bump ## bump version + build a .dmg for the current arch only (faster)
|
||||
cargo build --release -p spaceshd
|
||||
rm -rf $(SIDECAR_DIR) && mkdir -p $(SIDECAR_DIR) # avoid stale sidecars poisoning the bundle
|
||||
cp target/release/spaceshd $(SIDECAR_DIR)/spaceshd-$(NATIVE_TRIPLE)
|
||||
@@ -130,10 +134,14 @@ landing-push: landing-image ## tag & push the landing image to the registry
|
||||
# ---- Prod deploy ----
|
||||
|
||||
.PHONY: deploy-dmg
|
||||
deploy-dmg: dmg ## upload the universal .dmg to the prod download dir (stable spacesh.dmg)
|
||||
deploy-dmg: dmg ## upload the .dmg + update manifest (latest.json) to the prod download dir
|
||||
@VER=$$(node -p "require('./$(APP_DIR)/src-tauri/tauri.conf.json').version"); \
|
||||
printf '{"version":"%s","url":"https://spaceshell.ru/download/spacesh.dmg"}\n' "$$VER" > /tmp/spacesh-latest.json; \
|
||||
echo "manifest version → $$VER"
|
||||
ssh $(SSH_OPTS) $(SSH_USER)@$(SSH_HOST) "mkdir -p $(SSH_REMOTE_DIR)/download"
|
||||
scp $(SSH_OPTS) $(DMG_DIR)/*.dmg "$(SSH_USER)@$(SSH_HOST):$(SSH_REMOTE_DIR)/download/spacesh.dmg"
|
||||
@echo "Uploaded → https://spaceshell.ru/download/spacesh.dmg"
|
||||
scp $(SSH_OPTS) /tmp/spacesh-latest.json "$(SSH_USER)@$(SSH_HOST):$(SSH_REMOTE_DIR)/download/latest.json"
|
||||
@echo "Uploaded → https://spaceshell.ru/download/spacesh.dmg + latest.json"
|
||||
|
||||
.PHONY: deploy-stack
|
||||
deploy-stack: ## sync compose+proxy.conf to prod and pull/up (manual; CI does this on push)
|
||||
|
||||
Reference in New Issue
Block a user