diff --git a/src/cli/commands/manage.ts b/src/cli/commands/manage.ts index 022c872..ae4967a 100644 --- a/src/cli/commands/manage.ts +++ b/src/cli/commands/manage.ts @@ -79,17 +79,35 @@ interface ListAppsOptions { } export async function listApps(options: ListAppsOptions) { - const apps: App[] | undefined = await get('/api/apps') - if (!apps) return + const allApps: App[] | undefined = await get('/api/apps') + if (!allApps) return - const filtered = apps.filter((app) => { - if (options.all) return true - if (options.tools) return app.tool - return !app.tool - }) + if (options.all) { + const apps = allApps.filter((app) => !app.tool) + const tools = allApps.filter((app) => app.tool) - for (const app of filtered) { - console.log(`${STATE_ICONS[app.state] ?? '◯'} ${app.name}`) + if (apps.length > 0) { + console.log('apps:') + for (const app of apps) { + console.log(` ${STATE_ICONS[app.state] ?? '◯'} ${app.name}`) + } + } + if (tools.length > 0) { + if (apps.length > 0) console.log() + console.log('tools:') + for (const tool of tools) { + console.log(` ${STATE_ICONS[tool.state] ?? '◯'} ${tool.name}`) + } + } + } else { + const filtered = allApps.filter((app) => { + if (options.tools) return app.tool + return !app.tool + }) + + for (const app of filtered) { + console.log(`${STATE_ICONS[app.state] ?? '◯'} ${app.name}`) + } } }