mirror of
https://github.com/tiennm99/ccs.git
synced 2026-10-13 22:15:33 +00:00
feat(bar): one-flow install with quarantine automation and launch handoff
'ccs bar install' previously ended with two manual steps: clearing the Gatekeeper quarantine by hand and running 'ccs bar' separately. Install now detects an existing installation and says so before reinstalling, clears the quarantine attribute itself via execFile with a graceful fallback to the printed hint when xattr fails, and ends with a TTY-aware 'Launch CCS Bar now?' prompt (default yes) that hands off to the existing launch flow. --launch forces the handoff and --no-launch suppresses it for scripted installs; non-TTY runs skip the prompt and print the manual command instead. Closes #1504
This commit is contained in:
1 parent
f743677d5d
commit
4eef3f77a4
4 files changed
+473
-13
No files matched your search
+12
-1
@@ -31,16 +31,27 @@ ccs bar install
|
||||
|
||||
This downloads `CCS-Bar.app.zip` from the floating `ccs-bar-latest` GitHub release and installs `CCS Bar.app` into `~/Applications`. Downloads are restricted to `github.com` and `objects.githubusercontent.com`, and extraction is guarded against zip-slip.
|
||||
|
||||
If `CCS Bar.app` is already installed, the command shows the current version and proceeds as a reinstall.
|
||||
|
||||
After installation, CCS reads the app version directly from the bundle's `Info.plist` and pins it to `~/.ccs/bar/.version`. It then performs a reachability check against the bar API (`GET /api/bar/summary`). A 404 response means the running CCS server predates CCS Bar support — update CCS to a version that includes CCS Bar, then restart `ccs bar`.
|
||||
|
||||
After a successful install, CCS asks whether to launch CCS Bar immediately (default: yes). Pass `--launch` to skip the prompt and launch right away, or `--no-launch` to suppress the prompt entirely:
|
||||
|
||||
```bash
|
||||
ccs bar install --launch # install and launch immediately
|
||||
ccs bar install --no-launch # install, skip launch prompt
|
||||
```
|
||||
|
||||
### Gatekeeper note
|
||||
|
||||
The v1 builds use ad-hoc signing, so the first launch may be blocked by Gatekeeper. Either right-click the app and choose Open, or clear the quarantine attribute:
|
||||
The install command automatically clears the macOS Gatekeeper quarantine attribute (`xattr -dr com.apple.quarantine`) on the downloaded app. If clearing fails for any reason, the command falls back to printing the manual command:
|
||||
|
||||
```bash
|
||||
xattr -dr com.apple.quarantine "$HOME/Applications/CCS Bar.app"
|
||||
```
|
||||
|
||||
Or right-click the app and choose Open.
|
||||
|
||||
## Launch
|
||||
|
||||
```bash
|
||||
|
||||
Reference in new issue
Block a user