Rename to miniSCP; migrate legacy data dirs on boot

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Jokin
2026-07-12 01:53:26 +02:00
co-authored by Claude Fable 5
parent 320080de6d
commit ba0b2434fb
7 changed files with 54 additions and 24 deletions
+10 -9
View File
@@ -1,4 +1,4 @@
# BunSCP
# miniSCP
A cross-platform, dual-panel SFTP/local file manager — a small WinSCP-style
commander built on **Bun**, **Electrobun**, and **Angular**.
@@ -90,7 +90,7 @@ Bun main process (`src/bun/**`, RPC schema) trigger an app relaunch.
## Build a packaged app
```bash
bun run build # ng build (ui/dist) + electrobun build -> build/*/BunSCP*.app
bun run build # ng build (ui/dist) + electrobun build -> build/*/miniSCP*.app
```
The Angular bundle is copied into the app under `views://app`. The macOS icon is
@@ -107,8 +107,9 @@ Everything user-facing reads from **[`src/shared/branding.ts`](src/shared/brandi
```ts
export const BRANDING = {
appName: "BunSCP", // window title, bundle name, app-data folder
identifier: "es.teknes.bunscp",
appName: "miniSCP", // window title, bundle name, app-data folder
identifier: "es.teknes.miniscp",
legacyNames: ["BunSCP"], // previous names; their data dirs migrate on boot
version: "0.1.0",
icon: "assets/icon.iconset",
} as const;
@@ -120,14 +121,14 @@ To change the icon: edit `assets/logo.svg` (app icon) and
tray template image, and the tray progress frames from the SVGs
(`@resvg/resvg-js`, dev-only dependency).
> Renaming `appName` changes the app-data directory, so existing saved
> connections won't be found under the new name — copy `connections.json` across
> if you need them.
> Renaming `appName` changes the app-data directory. Add the old name to
> `legacyNames` and the app moves the previous folder (connections, settings,
> edit temp files) into place on the next boot.
## Where connections are stored
Saved connections live in a plain JSON file in the OS app-data directory
(macOS: `~/Library/Application Support/BunSCP/connections.json`), written with
(macOS: `~/Library/Application Support/miniSCP/connections.json`), written with
`0600` permissions.
> ⚠️ **Passwords are stored in plaintext** in this file (a deliberate v1
@@ -148,7 +149,7 @@ Saved connections live in a plain JSON file in the OS app-data directory
## Same-file protection
Copying a file or folder onto itself would truncate it to zero bytes (the
destination is opened for writing before the source is read). BunSCP blocks
destination is opened for writing before the source is read). miniSCP blocks
this at several layers:
- **Same session / same host**: every connection carries a filesystem identity