Skip to content

Commit f9ef730

Browse files
committed
refactor(studio-bridge): rename linux auth to linux inject-credentials
The old name was ambiguous — both CLIs had "auth" commands doing completely different things. The new name describes what it actually does: inject a .ROBLOSECURITY cookie into Wine's Credential Manager.
1 parent 0e9f490 commit f9ef730

8 files changed

Lines changed: 17 additions & 17 deletions

File tree

.github/workflows/studio-linux-e2e.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ jobs:
5555

5656
- name: Inject authentication
5757
if: ${{ env.ROBLOSECURITY != '' }}
58-
run: studio-bridge linux auth --verbose
58+
run: studio-bridge linux inject-credentials --verbose
5959
env:
6060
ROBLOSECURITY: ${{ secrets.ROBLOSECURITY }}
6161

docs/testing/testing.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ Studio can run headlessly on Linux via Wine, enabling E2E tests in devcontainers
211211
```bash
212212
# One-time setup
213213
studio-bridge linux setup --install-deps
214-
studio-bridge linux auth # reads $ROBLOSECURITY env var
214+
studio-bridge linux inject-credentials # reads $ROBLOSECURITY env var
215215

216216
# Run tests the same as on Windows/macOS
217217
nevermore test

tools/studio-bridge/src/cli/cli.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ import { serveCommand } from '../commands/serve/serve.js';
4040
import { mcpCommand } from '../commands/mcp/mcp.js';
4141
import { terminalCommand } from '../commands/terminal/terminal.js';
4242
import { linuxSetupCommand } from '../commands/linux/setup/setup.js';
43-
import { linuxAuthCommand } from '../commands/linux/auth/auth.js';
43+
import { linuxInjectCredentialsCommand } from '../commands/linux/inject-credentials/inject-credentials.js';
4444
import { linuxStatusCommand } from '../commands/linux/status/status.js';
4545

4646
// ---------------------------------------------------------------------------
@@ -69,7 +69,7 @@ registry.register(terminalCommand);
6969

7070
// Linux commands
7171
registry.register(linuxSetupCommand);
72-
registry.register(linuxAuthCommand);
72+
registry.register(linuxInjectCredentialsCommand);
7373
registry.register(linuxStatusCommand);
7474

7575
// ---------------------------------------------------------------------------

tools/studio-bridge/src/commands/linux/auth/auth.ts renamed to tools/studio-bridge/src/commands/linux/inject-credentials/inject-credentials.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/**
2-
* `linux auth` — inject .ROBLOSECURITY cookie into Wine's Credential Manager
3-
* so Studio can authenticate.
2+
* `linux inject-credentials` — inject .ROBLOSECURITY cookie into Wine's
3+
* Credential Manager so Studio can authenticate.
44
*/
55

66
import { defineCommand } from '../../framework/define-command.js';
@@ -42,7 +42,7 @@ function readStdinAsync(): Promise<string> {
4242
// Handler
4343
// ---------------------------------------------------------------------------
4444

45-
export async function authHandlerAsync(args: AuthArgs): Promise<AuthResult> {
45+
export async function injectCredentialsHandlerAsync(args: AuthArgs): Promise<AuthResult> {
4646
try {
4747
const envError = await checkLinuxEnvironmentAsync();
4848
if (envError) {
@@ -87,7 +87,7 @@ export async function authHandlerAsync(args: AuthArgs): Promise<AuthResult> {
8787
// Inject credentials
8888
await linux.injectCredentialsAsync({ cookie, config });
8989

90-
OutputHelper.info('Authentication complete.');
90+
OutputHelper.info('Credentials injected.');
9191
OutputHelper.hint(
9292
'Next: run "studio-bridge process launch" to start Studio'
9393
);
@@ -104,9 +104,9 @@ export async function authHandlerAsync(args: AuthArgs): Promise<AuthResult> {
104104
// Command definition
105105
// ---------------------------------------------------------------------------
106106

107-
export const linuxAuthCommand = defineCommand<AuthArgs, AuthResult>({
107+
export const linuxInjectCredentialsCommand = defineCommand<AuthArgs, AuthResult>({
108108
group: 'linux',
109-
name: 'auth',
109+
name: 'inject-credentials',
110110
description: 'Inject .ROBLOSECURITY cookie into Wine Credential Manager (within Docker image or Linux with Wine)',
111111
category: 'infrastructure',
112112
safety: 'none',
@@ -117,5 +117,5 @@ export const linuxAuthCommand = defineCommand<AuthArgs, AuthResult>({
117117
'Cookie value (or "-" to read from stdin). Falls back to $ROBLOSECURITY env var or interactive prompt.',
118118
}),
119119
},
120-
handler: async (args) => authHandlerAsync(args),
120+
handler: async (args) => injectCredentialsHandlerAsync(args),
121121
});

tools/studio-bridge/src/commands/linux/setup/setup.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ export async function setupHandlerAsync(args: SetupArgs): Promise<SetupResult> {
108108

109109
OutputHelper.info('Linux setup complete.');
110110
OutputHelper.hint(
111-
'Next: run "studio-bridge linux auth" to inject credentials'
111+
'Next: run "studio-bridge linux inject-credentials" to inject credentials'
112112
);
113113

114114
return { success: true, summary: `Studio ${version} installed and configured` };

tools/studio-bridge/src/docker/docker-delegator.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ describe('buildDockerRunArgsAsync', () => {
8686
expect(args).toContain('ghcr.io/quenty/nevermore-studio-linux:latest');
8787
// Inner command should include auth then run
8888
const bashCmd = args[args.length - 1];
89-
expect(bashCmd).toContain('studio-bridge linux auth');
89+
expect(bashCmd).toContain('studio-bridge linux inject-credentials');
9090
expect(bashCmd).toContain('studio-bridge process run');
9191
expect(bashCmd).toContain('--timeout 120000');
9292
expect(bashCmd).not.toContain('--verbose');

tools/studio-bridge/src/docker/docker-delegator.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ export async function buildDockerRunArgsAsync(
165165
}
166166

167167
const innerArgs = [
168-
'studio-bridge', 'linux', 'auth',
168+
'studio-bridge', 'linux', 'inject-credentials',
169169
'&&',
170170
'studio-bridge', 'process', 'run',
171171
'--file', scriptFilePath,

tools/studio-bridge/src/linux/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ All can be installed via `studio-bridge linux setup --install-deps` on Debian/Ub
2121
studio-bridge linux setup --install-deps
2222

2323
# Inject authentication (reads $ROBLOSECURITY env var)
24-
studio-bridge linux auth
24+
studio-bridge linux inject-credentials
2525

2626
# Verify everything is ready
2727
studio-bridge linux status
@@ -78,7 +78,7 @@ Studio expects three entries in Windows Credential Manager:
7878
2. `https://www.roblox.com:RobloxStudioAuthCookies``.ROBLOSECURITY` (cookie name)
7979
3. `https://www.roblox.com:RobloxStudioAuth.ROBLOSECURITY{userId}` → the cookie value
8080

81-
The `linux auth` command:
81+
The `linux inject-credentials` command:
8282
1. Resolves the cookie via `getRobloxCookieAsync()` (env var → Wine cred store → interactive prompt)
8383
2. Fetches the user ID from `users.roblox.com/v1/users/authenticated`
8484
3. Compiles `write-cred.c` with MinGW (one-time)
@@ -109,7 +109,7 @@ Install Wine dependencies and Roblox Studio.
109109
| `--skip-shaders` | Skip shader patching |
110110
| `--force` | Force reinstall even if same version exists |
111111

112-
### `studio-bridge linux auth`
112+
### `studio-bridge linux inject-credentials`
113113

114114
Inject .ROBLOSECURITY cookie into Wine Credential Manager.
115115

0 commit comments

Comments
 (0)