@calltelemetry/cli 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +5 -4
- package/dist/index.js.map +1 -1
- package/dist/ui/hooks/index.d.ts +1 -0
- package/dist/ui/hooks/index.d.ts.map +1 -1
- package/dist/ui/hooks/index.js +1 -0
- package/dist/ui/hooks/index.js.map +1 -1
- package/dist/ui/hooks/useFinish.d.ts +6 -0
- package/dist/ui/hooks/useFinish.d.ts.map +1 -0
- package/dist/ui/hooks/useFinish.js +18 -0
- package/dist/ui/hooks/useFinish.js.map +1 -0
- package/dist/ui/views/CertsStatusView.d.ts +5 -1
- package/dist/ui/views/CertsStatusView.d.ts.map +1 -1
- package/dist/ui/views/CertsStatusView.js +17 -12
- package/dist/ui/views/CertsStatusView.js.map +1 -1
- package/dist/ui/views/DbBackupView.d.ts +5 -1
- package/dist/ui/views/DbBackupView.d.ts.map +1 -1
- package/dist/ui/views/DbBackupView.js +11 -7
- package/dist/ui/views/DbBackupView.js.map +1 -1
- package/dist/ui/views/DbCompactView.d.ts +5 -1
- package/dist/ui/views/DbCompactView.d.ts.map +1 -1
- package/dist/ui/views/DbCompactView.js +11 -7
- package/dist/ui/views/DbCompactView.js.map +1 -1
- package/dist/ui/views/DbListView.d.ts +5 -1
- package/dist/ui/views/DbListView.d.ts.map +1 -1
- package/dist/ui/views/DbListView.js +15 -10
- package/dist/ui/views/DbListView.js.map +1 -1
- package/dist/ui/views/DbSizeView.d.ts +5 -1
- package/dist/ui/views/DbSizeView.d.ts.map +1 -1
- package/dist/ui/views/DbSizeView.js +13 -8
- package/dist/ui/views/DbSizeView.js.map +1 -1
- package/dist/ui/views/DbStatusView.d.ts +5 -1
- package/dist/ui/views/DbStatusView.d.ts.map +1 -1
- package/dist/ui/views/DbStatusView.js +11 -7
- package/dist/ui/views/DbStatusView.js.map +1 -1
- package/dist/ui/views/DbTablesView.d.ts +3 -2
- package/dist/ui/views/DbTablesView.d.ts.map +1 -1
- package/dist/ui/views/DbTablesView.js +11 -7
- package/dist/ui/views/DbTablesView.js.map +1 -1
- package/dist/ui/views/DiagDatabaseView.d.ts +5 -1
- package/dist/ui/views/DiagDatabaseView.d.ts.map +1 -1
- package/dist/ui/views/DiagDatabaseView.js +11 -7
- package/dist/ui/views/DiagDatabaseView.js.map +1 -1
- package/dist/ui/views/DiagNetworkView.d.ts +5 -1
- package/dist/ui/views/DiagNetworkView.d.ts.map +1 -1
- package/dist/ui/views/DiagNetworkView.js +15 -9
- package/dist/ui/views/DiagNetworkView.js.map +1 -1
- package/dist/ui/views/DiagServiceView.d.ts +5 -1
- package/dist/ui/views/DiagServiceView.d.ts.map +1 -1
- package/dist/ui/views/DiagServiceView.js +11 -7
- package/dist/ui/views/DiagServiceView.js.map +1 -1
- package/dist/ui/views/DockerNetworkView.d.ts +5 -1
- package/dist/ui/views/DockerNetworkView.d.ts.map +1 -1
- package/dist/ui/views/DockerNetworkView.js +13 -8
- package/dist/ui/views/DockerNetworkView.js.map +1 -1
- package/dist/ui/views/DockerPruneView.d.ts +5 -1
- package/dist/ui/views/DockerPruneView.d.ts.map +1 -1
- package/dist/ui/views/DockerPruneView.js +12 -8
- package/dist/ui/views/DockerPruneView.js.map +1 -1
- package/dist/ui/views/DockerStatusView.d.ts +5 -1
- package/dist/ui/views/DockerStatusView.d.ts.map +1 -1
- package/dist/ui/views/DockerStatusView.js +12 -8
- package/dist/ui/views/DockerStatusView.js.map +1 -1
- package/dist/ui/views/JtapiDisableView.d.ts +5 -1
- package/dist/ui/views/JtapiDisableView.d.ts.map +1 -1
- package/dist/ui/views/JtapiDisableView.js +11 -7
- package/dist/ui/views/JtapiDisableView.js.map +1 -1
- package/dist/ui/views/JtapiEnableView.d.ts +5 -1
- package/dist/ui/views/JtapiEnableView.d.ts.map +1 -1
- package/dist/ui/views/JtapiEnableView.js +14 -10
- package/dist/ui/views/JtapiEnableView.js.map +1 -1
- package/dist/ui/views/JtapiStatusView.d.ts +5 -1
- package/dist/ui/views/JtapiStatusView.d.ts.map +1 -1
- package/dist/ui/views/JtapiStatusView.js +15 -9
- package/dist/ui/views/JtapiStatusView.js.map +1 -1
- package/dist/ui/views/JtapiTroubleshootView.d.ts +5 -1
- package/dist/ui/views/JtapiTroubleshootView.d.ts.map +1 -1
- package/dist/ui/views/JtapiTroubleshootView.js +12 -8
- package/dist/ui/views/JtapiTroubleshootView.js.map +1 -1
- package/dist/ui/views/MainMenu.d.ts +3 -2
- package/dist/ui/views/MainMenu.d.ts.map +1 -1
- package/dist/ui/views/MainMenu.js +78 -14
- package/dist/ui/views/MainMenu.js.map +1 -1
- package/dist/ui/views/MigrateHistoryView.d.ts +5 -1
- package/dist/ui/views/MigrateHistoryView.d.ts.map +1 -1
- package/dist/ui/views/MigrateHistoryView.js +11 -7
- package/dist/ui/views/MigrateHistoryView.js.map +1 -1
- package/dist/ui/views/MigrateRollbackView.d.ts +2 -1
- package/dist/ui/views/MigrateRollbackView.d.ts.map +1 -1
- package/dist/ui/views/MigrateRollbackView.js +11 -7
- package/dist/ui/views/MigrateRollbackView.js.map +1 -1
- package/dist/ui/views/MigrateRunView.d.ts +5 -1
- package/dist/ui/views/MigrateRunView.d.ts.map +1 -1
- package/dist/ui/views/MigrateRunView.js +11 -7
- package/dist/ui/views/MigrateRunView.js.map +1 -1
- package/dist/ui/views/MigrateStatusView.d.ts +5 -1
- package/dist/ui/views/MigrateStatusView.d.ts.map +1 -1
- package/dist/ui/views/MigrateStatusView.js +11 -7
- package/dist/ui/views/MigrateStatusView.js.map +1 -1
- package/dist/ui/views/MigrateWatchView.d.ts +2 -1
- package/dist/ui/views/MigrateWatchView.d.ts.map +1 -1
- package/dist/ui/views/MigrateWatchView.js +13 -7
- package/dist/ui/views/MigrateWatchView.js.map +1 -1
- package/dist/ui/views/OfflineListView.d.ts +5 -1
- package/dist/ui/views/OfflineListView.d.ts.map +1 -1
- package/dist/ui/views/OfflineListView.js +16 -11
- package/dist/ui/views/OfflineListView.js.map +1 -1
- package/dist/ui/views/SecretsSetupView.d.ts +5 -1
- package/dist/ui/views/SecretsSetupView.d.ts.map +1 -1
- package/dist/ui/views/SecretsSetupView.js +6 -5
- package/dist/ui/views/SecretsSetupView.js.map +1 -1
- package/dist/ui/views/SecretsStatusView.d.ts +5 -1
- package/dist/ui/views/SecretsStatusView.d.ts.map +1 -1
- package/dist/ui/views/SecretsStatusView.js +18 -11
- package/dist/ui/views/SecretsStatusView.js.map +1 -1
- package/dist/ui/views/ServiceLogsView.d.ts.map +1 -1
- package/dist/ui/views/ServiceLogsView.js +5 -10
- package/dist/ui/views/ServiceLogsView.js.map +1 -1
- package/dist/ui/views/ServicesView.d.ts +2 -1
- package/dist/ui/views/ServicesView.d.ts.map +1 -1
- package/dist/ui/views/ServicesView.js +12 -12
- package/dist/ui/views/ServicesView.js.map +1 -1
- package/dist/ui/views/StatusView.d.ts +5 -1
- package/dist/ui/views/StatusView.d.ts.map +1 -1
- package/dist/ui/views/StatusView.js +12 -8
- package/dist/ui/views/StatusView.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect } from 'react';
|
|
3
|
-
import {
|
|
3
|
+
import { Box, Text, useInput } from 'ink';
|
|
4
4
|
import { composePs } from '../../lib/compose.js';
|
|
5
5
|
import { rpc, rpcOk } from '../../lib/rpc.js';
|
|
6
6
|
import { AppShell, Section, ShellOutput, Spinner, StatusLine } from '../components/index.js';
|
|
7
|
-
import { useAsyncTask } from '../hooks/index.js';
|
|
8
|
-
export function MigrateRunView() {
|
|
9
|
-
const
|
|
7
|
+
import { useAsyncTask, useFinish } from '../hooks/index.js';
|
|
8
|
+
export function MigrateRunView({ onBack }) {
|
|
9
|
+
const finish = useFinish(onBack);
|
|
10
10
|
const readyTask = useAsyncTask(async () => {
|
|
11
11
|
const container = await composePs('web');
|
|
12
12
|
if (!container)
|
|
@@ -43,8 +43,12 @@ export function MigrateRunView() {
|
|
|
43
43
|
}, [readyTask.status]);
|
|
44
44
|
// Exit when done or on error
|
|
45
45
|
const allDone = readyTask.status === 'error' || runTask.status === 'done' || runTask.status === 'error';
|
|
46
|
-
useEffect(() => { if (allDone)
|
|
47
|
-
|
|
48
|
-
|
|
46
|
+
useEffect(() => { if (allDone && !onBack)
|
|
47
|
+
finish(); }, [allDone, onBack, finish]);
|
|
48
|
+
useInput((input, key) => {
|
|
49
|
+
if (onBack && allDone && (input === 'q' || key.escape))
|
|
50
|
+
finish();
|
|
51
|
+
});
|
|
52
|
+
return (_jsxs(AppShell, { command: "ct migrate run", children: [_jsxs(Section, { title: "Run Migrations", children: [readyTask.status === 'pending' && _jsx(Spinner, { label: "Checking web container..." }), readyTask.status === 'error' && _jsx(StatusLine, { status: "fail", label: readyTask.error?.message ?? 'Web container not ready' }), readyTask.status === 'done' && runTask.status === 'pending' && _jsx(Spinner, { label: "Running pending migrations..." }), runTask.status === 'error' && _jsx(StatusLine, { status: "fail", label: runTask.error?.message ?? 'Migration run failed' }), runTask.status === 'done' && runTask.data && _jsx(ShellOutput, { content: runTask.data }), runTask.status === 'done' && _jsx(StatusLine, { status: "ok", label: "Migration run completed" })] }), onBack && allDone && (_jsx(Box, { paddingLeft: 2, paddingTop: 1, children: _jsx(Text, { dimColor: true, children: "Press q to go back" }) }))] }));
|
|
49
53
|
}
|
|
50
54
|
//# sourceMappingURL=MigrateRunView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MigrateRunView.js","sourceRoot":"","sources":["../../../src/ui/views/MigrateRunView.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"MigrateRunView.js","sourceRoot":"","sources":["../../../src/ui/views/MigrateRunView.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAC7F,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAM5D,MAAM,UAAU,cAAc,CAAC,EAAE,MAAM,EAAuB;IAC5D,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAEjC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,IAAI,EAAE;QACxC,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC3E,IAAI,CAAC,MAAM,KAAK,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;QAC3G,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,IAAI,EAAE;QACtC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC;;;;;;;;;;;;;;;;;KAiBxB,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC,EAAE,KAAK,CAAC,CAAC;IAEV,iDAAiD;IACjD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,CAAC,MAAM,KAAK,MAAM;YAAE,OAAO,CAAC,GAAG,EAAE,CAAC;IACjD,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAEvB,6BAA6B;IAC7B,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,KAAK,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC;IACxG,SAAS,CAAC,GAAG,EAAE,GAAG,IAAI,OAAO,IAAI,CAAC,MAAM;QAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAElF,QAAQ,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,IAAI,MAAM,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC;YAAE,MAAM,EAAE,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,MAAC,QAAQ,IAAC,OAAO,EAAC,gBAAgB,aAChC,MAAC,OAAO,IAAC,KAAK,EAAC,gBAAgB,aAC5B,SAAS,CAAC,MAAM,KAAK,SAAS,IAAI,KAAC,OAAO,IAAC,KAAK,EAAC,2BAA2B,GAAG,EAC/E,SAAS,CAAC,MAAM,KAAK,OAAO,IAAI,KAAC,UAAU,IAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,OAAO,IAAI,yBAAyB,GAAI,EAC1H,SAAS,CAAC,MAAM,KAAK,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,KAAC,OAAO,IAAC,KAAK,EAAC,+BAA+B,GAAG,EAChH,OAAO,CAAC,MAAM,KAAK,OAAO,IAAI,KAAC,UAAU,IAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,IAAI,sBAAsB,GAAI,EACnH,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,OAAO,CAAC,IAAI,IAAI,KAAC,WAAW,IAAC,OAAO,EAAE,OAAO,CAAC,IAAI,GAAI,EACnF,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,KAAC,UAAU,IAAC,MAAM,EAAC,IAAI,EAAC,KAAK,EAAC,yBAAyB,GAAG,IAChF,EACT,MAAM,IAAI,OAAO,IAAI,CACpB,KAAC,GAAG,IAAC,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,YAChC,KAAC,IAAI,IAAC,QAAQ,yCAA0B,GACpC,CACP,IACQ,CACZ,CAAC;AACJ,CAAC"}
|
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
interface MigrateStatusViewProps {
|
|
2
|
+
onBack?: () => void;
|
|
3
|
+
}
|
|
4
|
+
export declare function MigrateStatusView({ onBack }: MigrateStatusViewProps): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
export {};
|
|
2
6
|
//# sourceMappingURL=MigrateStatusView.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MigrateStatusView.d.ts","sourceRoot":"","sources":["../../../src/ui/views/MigrateStatusView.tsx"],"names":[],"mappings":"AA8DA,wBAAgB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"MigrateStatusView.d.ts","sourceRoot":"","sources":["../../../src/ui/views/MigrateStatusView.tsx"],"names":[],"mappings":"AA8DA,UAAU,sBAAsB;IAC9B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,iBAAiB,CAAC,EAAE,MAAM,EAAE,EAAE,sBAAsB,2CA6CnE"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect } from 'react';
|
|
3
|
-
import {
|
|
3
|
+
import { Box, Text, useInput } from 'ink';
|
|
4
4
|
import { composePs } from '../../lib/compose.js';
|
|
5
5
|
import { rpc, rpcOk } from '../../lib/rpc.js';
|
|
6
6
|
import { AppShell, Section, StatusLine, ShellOutput, Spinner } from '../components/index.js';
|
|
7
|
-
import { useAsyncTask } from '../hooks/index.js';
|
|
7
|
+
import { useAsyncTask, useFinish } from '../hooks/index.js';
|
|
8
8
|
const MIGRATION_STATUS_RPC = `
|
|
9
9
|
alias Cdrcisco.Repo
|
|
10
10
|
import Ecto.Query
|
|
@@ -59,8 +59,8 @@ const MIGRATION_STATUS_RPC = `
|
|
|
59
59
|
IO.puts("::pending_count=error")
|
|
60
60
|
end
|
|
61
61
|
`;
|
|
62
|
-
export function MigrateStatusView() {
|
|
63
|
-
const
|
|
62
|
+
export function MigrateStatusView({ onBack }) {
|
|
63
|
+
const finish = useFinish(onBack);
|
|
64
64
|
const readyTask = useAsyncTask(async () => {
|
|
65
65
|
const container = await composePs('web');
|
|
66
66
|
if (!container)
|
|
@@ -81,8 +81,12 @@ export function MigrateStatusView() {
|
|
|
81
81
|
// Exit when done
|
|
82
82
|
const allDone = (readyTask.status === 'error') ||
|
|
83
83
|
(statusTask.status === 'done' || statusTask.status === 'error');
|
|
84
|
-
useEffect(() => { if (allDone)
|
|
85
|
-
|
|
86
|
-
|
|
84
|
+
useEffect(() => { if (allDone && !onBack)
|
|
85
|
+
finish(); }, [allDone, onBack, finish]);
|
|
86
|
+
useInput((input, key) => {
|
|
87
|
+
if (onBack && allDone && (input === 'q' || key.escape))
|
|
88
|
+
finish();
|
|
89
|
+
});
|
|
90
|
+
return (_jsxs(AppShell, { command: "ct migrate status", children: [_jsxs(Section, { title: "Migration Status", children: [readyTask.status === 'pending' && _jsx(Spinner, { label: "Checking web container..." }), readyTask.status === 'error' && _jsx(StatusLine, { status: "fail", label: readyTask.error?.message ?? 'Web container not ready' }), statusTask.status === 'pending' && _jsx(Spinner, { label: "Querying migration status..." }), statusTask.status === 'error' && _jsx(StatusLine, { status: "fail", label: "Failed to query migrations" }), statusTask.status === 'done' && statusTask.data && _jsx(ShellOutput, { content: statusTask.data })] }), onBack && allDone && (_jsx(Box, { paddingLeft: 2, paddingTop: 1, children: _jsx(Text, { dimColor: true, children: "Press q to go back" }) }))] }));
|
|
87
91
|
}
|
|
88
92
|
//# sourceMappingURL=MigrateStatusView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MigrateStatusView.js","sourceRoot":"","sources":["../../../src/ui/views/MigrateStatusView.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"MigrateStatusView.js","sourceRoot":"","sources":["../../../src/ui/views/MigrateStatusView.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAC7F,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqD5B,CAAC;AAMF,MAAM,UAAU,iBAAiB,CAAC,EAAE,MAAM,EAA0B;IAClE,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAEjC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,IAAI,EAAE;QACxC,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC3D,IAAI,CAAC,MAAM,KAAK,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,IAAI,EAAE;QACzC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAC/C,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxE,CAAC,EAAE,KAAK,CAAC,CAAC;IAEV,yBAAyB;IACzB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,CAAC,MAAM,KAAK,MAAM;YAAE,UAAU,CAAC,GAAG,EAAE,CAAC;IACpD,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAEvB,iBAAiB;IACjB,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,MAAM,KAAK,OAAO,CAAC;QAC9B,CAAC,UAAU,CAAC,MAAM,KAAK,MAAM,IAAI,UAAU,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC;IAChF,SAAS,CAAC,GAAG,EAAE,GAAG,IAAI,OAAO,IAAI,CAAC,MAAM;QAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAElF,QAAQ,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,IAAI,MAAM,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC;YAAE,MAAM,EAAE,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,MAAC,QAAQ,IAAC,OAAO,EAAC,mBAAmB,aACnC,MAAC,OAAO,IAAC,KAAK,EAAC,kBAAkB,aAC9B,SAAS,CAAC,MAAM,KAAK,SAAS,IAAI,KAAC,OAAO,IAAC,KAAK,EAAC,2BAA2B,GAAG,EAC/E,SAAS,CAAC,MAAM,KAAK,OAAO,IAAI,KAAC,UAAU,IAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,OAAO,IAAI,yBAAyB,GAAI,EAC1H,UAAU,CAAC,MAAM,KAAK,SAAS,IAAI,KAAC,OAAO,IAAC,KAAK,EAAC,8BAA8B,GAAG,EACnF,UAAU,CAAC,MAAM,KAAK,OAAO,IAAI,KAAC,UAAU,IAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,4BAA4B,GAAG,EAChG,UAAU,CAAC,MAAM,KAAK,MAAM,IAAI,UAAU,CAAC,IAAI,IAAI,KAAC,WAAW,IAAC,OAAO,EAAE,UAAU,CAAC,IAAI,GAAI,IACrF,EACT,MAAM,IAAI,OAAO,IAAI,CACpB,KAAC,GAAG,IAAC,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,YAChC,KAAC,IAAI,IAAC,QAAQ,yCAA0B,GACpC,CACP,IACQ,CACZ,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
interface MigrateWatchViewProps {
|
|
2
2
|
interval: number;
|
|
3
|
+
onBack?: () => void;
|
|
3
4
|
}
|
|
4
|
-
export declare function MigrateWatchView({ interval }: MigrateWatchViewProps): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
export declare function MigrateWatchView({ interval, onBack }: MigrateWatchViewProps): import("react/jsx-runtime").JSX.Element;
|
|
5
6
|
export {};
|
|
6
7
|
//# sourceMappingURL=MigrateWatchView.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MigrateWatchView.d.ts","sourceRoot":"","sources":["../../../src/ui/views/MigrateWatchView.tsx"],"names":[],"mappings":"AA6DA,UAAU,qBAAqB;IAC7B,QAAQ,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"MigrateWatchView.d.ts","sourceRoot":"","sources":["../../../src/ui/views/MigrateWatchView.tsx"],"names":[],"mappings":"AA6DA,UAAU,qBAAqB;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,qBAAqB,2CAgD3E"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect, useRef } from 'react';
|
|
3
|
-
import {
|
|
3
|
+
import { Box, Text, useInput } from 'ink';
|
|
4
4
|
import { rpc } from '../../lib/rpc.js';
|
|
5
5
|
import { AppShell, Section, ShellOutput, Spinner, StatusLine } from '../components/index.js';
|
|
6
|
-
import { usePolling } from '../hooks/index.js';
|
|
6
|
+
import { usePolling, useFinish } from '../hooks/index.js';
|
|
7
7
|
const MIGRATION_STATUS_RPC = `
|
|
8
8
|
alias Cdrcisco.Repo
|
|
9
9
|
import Ecto.Query
|
|
@@ -58,8 +58,8 @@ const MIGRATION_STATUS_RPC = `
|
|
|
58
58
|
IO.puts("::pending_count=error")
|
|
59
59
|
end
|
|
60
60
|
`;
|
|
61
|
-
export function MigrateWatchView({ interval }) {
|
|
62
|
-
const
|
|
61
|
+
export function MigrateWatchView({ interval, onBack }) {
|
|
62
|
+
const finish = useFinish(onBack);
|
|
63
63
|
const stoppedRef = useRef(false);
|
|
64
64
|
const { data, error, stop } = usePolling(async () => {
|
|
65
65
|
const output = await rpc(MIGRATION_STATUS_RPC);
|
|
@@ -70,14 +70,20 @@ export function MigrateWatchView({ interval }) {
|
|
|
70
70
|
const pendingLine = lines.find(l => l.startsWith('::pending_count='));
|
|
71
71
|
const pendingCount = pendingLine?.split('=')[1];
|
|
72
72
|
const displayContent = lines.filter(l => !l.startsWith('::')).join('\n');
|
|
73
|
+
const watchDone = pendingCount === '0' && stoppedRef.current;
|
|
73
74
|
// Auto-stop when no pending migrations remain
|
|
74
75
|
useEffect(() => {
|
|
75
76
|
if (pendingCount === '0' && !stoppedRef.current) {
|
|
76
77
|
stoppedRef.current = true;
|
|
77
78
|
stop();
|
|
78
|
-
|
|
79
|
+
if (!onBack)
|
|
80
|
+
finish();
|
|
79
81
|
}
|
|
80
|
-
}, [pendingCount, stop,
|
|
81
|
-
|
|
82
|
+
}, [pendingCount, stop, onBack, finish]);
|
|
83
|
+
useInput((input, key) => {
|
|
84
|
+
if (onBack && watchDone && (input === 'q' || key.escape))
|
|
85
|
+
finish();
|
|
86
|
+
});
|
|
87
|
+
return (_jsxs(AppShell, { command: "ct migrate watch", children: [_jsxs(Section, { title: `Watch Migrations (interval: ${interval / 1000}s)`, children: [!data && !error && _jsx(Spinner, { label: "Polling migration status..." }), error && _jsx(StatusLine, { status: "warn", label: `Error: ${error.message}` }), data && displayContent && _jsx(ShellOutput, { content: displayContent }), pendingCount === '0' && _jsx(StatusLine, { status: "ok", label: "All migrations are up to date. Exiting watch mode." }), data && pendingCount !== '0' && pendingCount !== 'error' && (_jsx(Text, { dimColor: true, children: ` Next refresh in ${interval / 1000}s... Press Ctrl+C to stop.` }))] }), onBack && watchDone && (_jsx(Box, { paddingLeft: 2, paddingTop: 1, children: _jsx(Text, { dimColor: true, children: "Press q to go back" }) }))] }));
|
|
82
88
|
}
|
|
83
89
|
//# sourceMappingURL=MigrateWatchView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MigrateWatchView.js","sourceRoot":"","sources":["../../../src/ui/views/MigrateWatchView.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"MigrateWatchView.js","sourceRoot":"","sources":["../../../src/ui/views/MigrateWatchView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
interface OfflineListViewProps {
|
|
2
|
+
onBack?: () => void;
|
|
3
|
+
}
|
|
4
|
+
export declare function OfflineListView({ onBack }: OfflineListViewProps): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
export {};
|
|
2
6
|
//# sourceMappingURL=OfflineListView.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OfflineListView.d.ts","sourceRoot":"","sources":["../../../src/ui/views/OfflineListView.tsx"],"names":[],"mappings":"AAQA,wBAAgB,eAAe,
|
|
1
|
+
{"version":3,"file":"OfflineListView.d.ts","sourceRoot":"","sources":["../../../src/ui/views/OfflineListView.tsx"],"names":[],"mappings":"AAQA,UAAU,oBAAoB;IAC5B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,oBAAoB,2CAgE/D"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect } from 'react';
|
|
3
|
-
import {
|
|
3
|
+
import { Box, Text, useInput } from 'ink';
|
|
4
4
|
import { existsSync, readFileSync } from 'node:fs';
|
|
5
5
|
import { execa } from 'execa';
|
|
6
6
|
import { getPaths } from '../../lib/paths.js';
|
|
7
7
|
import { AppShell, Section, StatusLine, Spinner, KeyValue } from '../components/index.js';
|
|
8
|
-
import { useAsyncTask } from '../hooks/index.js';
|
|
9
|
-
export function OfflineListView() {
|
|
10
|
-
const
|
|
8
|
+
import { useAsyncTask, useFinish } from '../hooks/index.js';
|
|
9
|
+
export function OfflineListView({ onBack }) {
|
|
10
|
+
const finish = useFinish(onBack);
|
|
11
11
|
const { composeFile } = getPaths();
|
|
12
12
|
const listTask = useAsyncTask(async () => {
|
|
13
13
|
if (!existsSync(composeFile)) {
|
|
@@ -35,13 +35,18 @@ export function OfflineListView() {
|
|
|
35
35
|
}
|
|
36
36
|
return { images: results, total: images.length };
|
|
37
37
|
});
|
|
38
|
+
const listDone = listTask.status === 'done' || listTask.status === 'error';
|
|
38
39
|
useEffect(() => {
|
|
39
|
-
if (
|
|
40
|
-
|
|
41
|
-
}, [
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
40
|
+
if (listDone && !onBack)
|
|
41
|
+
finish();
|
|
42
|
+
}, [listDone, onBack, finish]);
|
|
43
|
+
useInput((input, key) => {
|
|
44
|
+
if (onBack && listDone && (input === 'q' || key.escape))
|
|
45
|
+
finish();
|
|
46
|
+
});
|
|
47
|
+
return (_jsxs(AppShell, { command: "ct offline list", children: [_jsxs(Section, { title: "Images in docker-compose.yml", children: [listTask.status === 'pending' && _jsx(Spinner, { label: "Inspecting images..." }), listTask.status === 'error' && _jsx(StatusLine, { status: "fail", label: listTask.error?.message ?? 'Failed' }), listTask.status === 'done' && listTask.data && (_jsxs(_Fragment, { children: [_jsx(KeyValue, { items: listTask.data.images.map(item => ({
|
|
48
|
+
key: item.key,
|
|
49
|
+
value: item.value === 'not downloaded' ? `\u2718 ${item.value}` : `\u2714 ${item.value}`,
|
|
50
|
+
})) }), _jsx(StatusLine, { status: "info", label: `Total images: ${listTask.data.total}` })] }))] }), onBack && listDone && (_jsx(Box, { paddingLeft: 2, paddingTop: 1, children: _jsx(Text, { dimColor: true, children: "Press q to go back" }) }))] }));
|
|
46
51
|
}
|
|
47
52
|
//# sourceMappingURL=OfflineListView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OfflineListView.js","sourceRoot":"","sources":["../../../src/ui/views/OfflineListView.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"OfflineListView.js","sourceRoot":"","sources":["../../../src/ui/views/OfflineListView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
interface SecretsSetupViewProps {
|
|
2
|
+
onBack?: () => void;
|
|
3
|
+
}
|
|
4
|
+
export declare function SecretsSetupView({ onBack }: SecretsSetupViewProps): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
export {};
|
|
2
6
|
//# sourceMappingURL=SecretsSetupView.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SecretsSetupView.d.ts","sourceRoot":"","sources":["../../../src/ui/views/SecretsSetupView.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SecretsSetupView.d.ts","sourceRoot":"","sources":["../../../src/ui/views/SecretsSetupView.tsx"],"names":[],"mappings":"AAUA,UAAU,qBAAqB;IAC7B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,gBAAgB,CAAC,EAAE,MAAM,EAAE,EAAE,qBAAqB,2CA0KjE"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useState, useEffect } from 'react';
|
|
3
|
-
import { Text, Box
|
|
3
|
+
import { Text, Box } from 'ink';
|
|
4
4
|
import { AppShell, Section, StatusLine, Divider, SelectMenu, Confirm, TextInput } from '../components/index.js';
|
|
5
5
|
import { SECRET_CATALOG, SECRET_GROUPS, getSecrets, writeEnvFile, writeSecretsOverlay } from '../../lib/secrets.js';
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
import { useFinish } from '../hooks/index.js';
|
|
7
|
+
export function SecretsSetupView({ onBack }) {
|
|
8
|
+
const finish = useFinish(onBack);
|
|
8
9
|
const [phase, setPhase] = useState('intro');
|
|
9
10
|
const [values, setValues] = useState(() => getSecrets());
|
|
10
11
|
const [currentGroup, setCurrentGroup] = useState(null);
|
|
@@ -21,10 +22,10 @@ export function SecretsSetupView() {
|
|
|
21
22
|
// Exit after done
|
|
22
23
|
useEffect(() => {
|
|
23
24
|
if (phase === 'done' || phase === 'error') {
|
|
24
|
-
const timer = setTimeout(() =>
|
|
25
|
+
const timer = setTimeout(() => finish(), 200);
|
|
25
26
|
return () => clearTimeout(timer);
|
|
26
27
|
}
|
|
27
|
-
}, [phase,
|
|
28
|
+
}, [phase, finish]);
|
|
28
29
|
const groupItems = [
|
|
29
30
|
...SECRET_GROUPS.map(g => ({
|
|
30
31
|
label: g,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SecretsSetupView.js","sourceRoot":"","sources":["../../../src/ui/views/SecretsSetupView.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"SecretsSetupView.js","sourceRoot":"","sources":["../../../src/ui/views/SecretsSetupView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
interface SecretsStatusViewProps {
|
|
2
|
+
onBack?: () => void;
|
|
3
|
+
}
|
|
4
|
+
export declare function SecretsStatusView({ onBack }: SecretsStatusViewProps): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
export {};
|
|
2
6
|
//# sourceMappingURL=SecretsStatusView.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SecretsStatusView.d.ts","sourceRoot":"","sources":["../../../src/ui/views/SecretsStatusView.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SecretsStatusView.d.ts","sourceRoot":"","sources":["../../../src/ui/views/SecretsStatusView.tsx"],"names":[],"mappings":"AAOA,UAAU,sBAAsB;IAC9B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,iBAAiB,CAAC,EAAE,MAAM,EAAE,EAAE,sBAAsB,2CA8DnE"}
|
|
@@ -1,19 +1,26 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect } from 'react';
|
|
3
|
-
import { Text,
|
|
3
|
+
import { Box, Text, useInput } from 'ink';
|
|
4
4
|
import { AppShell, Section, SubSection, StatusLine, KeyValue } from '../components/index.js';
|
|
5
5
|
import { SECRET_CATALOG, SECRET_GROUPS, getSecrets, getEnvFilePath, isCustomized, countOverrides } from '../../lib/secrets.js';
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
import { useFinish } from '../hooks/index.js';
|
|
7
|
+
export function SecretsStatusView({ onBack }) {
|
|
8
|
+
const finish = useFinish(onBack);
|
|
8
9
|
const secrets = getSecrets();
|
|
9
10
|
const envPath = getEnvFilePath();
|
|
10
11
|
const customized = isCustomized();
|
|
11
12
|
const overrideCount = countOverrides();
|
|
12
13
|
useEffect(() => {
|
|
13
|
-
//
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
// Auto-exit only when running standalone
|
|
15
|
+
if (!onBack) {
|
|
16
|
+
const timer = setTimeout(() => finish(), 100);
|
|
17
|
+
return () => clearTimeout(timer);
|
|
18
|
+
}
|
|
19
|
+
}, [onBack, finish]);
|
|
20
|
+
useInput((input, key) => {
|
|
21
|
+
if (onBack && (input === 'q' || key.escape))
|
|
22
|
+
finish();
|
|
23
|
+
});
|
|
17
24
|
const getStatus = (key, defaultValue) => {
|
|
18
25
|
const value = secrets[key] ?? '';
|
|
19
26
|
if (!value && !defaultValue)
|
|
@@ -28,9 +35,9 @@ export function SecretsStatusView() {
|
|
|
28
35
|
const tag = value !== defaultValue ? '(customized)' : '(default)';
|
|
29
36
|
return `${key} ${display} ${tag}`;
|
|
30
37
|
};
|
|
31
|
-
return (
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
38
|
+
return (_jsxs(AppShell, { command: "ct secrets", children: [_jsxs(Section, { title: "Secrets Configuration", children: [_jsx(KeyValue, { items: [
|
|
39
|
+
{ key: 'Source', value: envPath },
|
|
40
|
+
{ key: 'Status', value: customized ? `Customized (${overrideCount} override${overrideCount !== 1 ? 's' : ''})` : 'Using defaults' },
|
|
41
|
+
] }), SECRET_GROUPS.map((group) => (_jsx(SubSection, { title: group, children: SECRET_CATALOG.filter(d => d.group === group).map(def => (_jsx(StatusLine, { status: getStatus(def.key, def.defaultValue), label: getLabel(def.key, def.defaultValue, def.sensitive) }, def.key))) }, group))), _jsx(Text, { dimColor: true, children: "\n Run 'ct secrets setup' to configure" })] }), onBack && (_jsx(Box, { paddingLeft: 2, paddingTop: 1, children: _jsx(Text, { dimColor: true, children: "Press q to go back" }) }))] }));
|
|
35
42
|
}
|
|
36
43
|
//# sourceMappingURL=SecretsStatusView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SecretsStatusView.js","sourceRoot":"","sources":["../../../src/ui/views/SecretsStatusView.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"SecretsStatusView.js","sourceRoot":"","sources":["../../../src/ui/views/SecretsStatusView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceLogsView.d.ts","sourceRoot":"","sources":["../../../src/ui/views/ServiceLogsView.tsx"],"names":[],"mappings":"AAMA,UAAU,oBAAoB;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAeD,wBAAgB,eAAe,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,oBAAoB,
|
|
1
|
+
{"version":3,"file":"ServiceLogsView.d.ts","sourceRoot":"","sources":["../../../src/ui/views/ServiceLogsView.tsx"],"names":[],"mappings":"AAMA,UAAU,oBAAoB;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAeD,wBAAgB,eAAe,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,oBAAoB,2CA+M9E"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useState, useEffect, useCallback, useMemo } from 'react';
|
|
3
|
-
import { Box, Text,
|
|
3
|
+
import { Box, Text, useInput, useStdout } from 'ink';
|
|
4
4
|
import InkTextInput from 'ink-text-input';
|
|
5
5
|
import { AppShell, Section, Spinner } from '../components/index.js';
|
|
6
|
-
import { useComposeLogs } from '../hooks/index.js';
|
|
6
|
+
import { useComposeLogs, useFinish } from '../hooks/index.js';
|
|
7
7
|
function highlightLine(line, search) {
|
|
8
8
|
if (!search)
|
|
9
9
|
return line;
|
|
@@ -13,7 +13,7 @@ function highlightLine(line, search) {
|
|
|
13
13
|
return (_jsxs(_Fragment, { children: [line.slice(0, idx), _jsx(Text, { backgroundColor: "yellow", color: "black", children: line.slice(idx, idx + search.length) }), line.slice(idx + search.length)] }));
|
|
14
14
|
}
|
|
15
15
|
export function ServiceLogsView({ service, tail, onBack }) {
|
|
16
|
-
const
|
|
16
|
+
const finish = useFinish(onBack);
|
|
17
17
|
const { stdout } = useStdout();
|
|
18
18
|
const { lines, isRunning, start, stop } = useComposeLogs(service, tail ?? 200);
|
|
19
19
|
// Scroll state
|
|
@@ -85,13 +85,8 @@ export function ServiceLogsView({ service, tail, onBack }) {
|
|
|
85
85
|
}
|
|
86
86
|
// Normal mode
|
|
87
87
|
if (input === 'q' || key.escape) {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
}
|
|
91
|
-
else {
|
|
92
|
-
stop();
|
|
93
|
-
exit();
|
|
94
|
-
}
|
|
88
|
+
stop();
|
|
89
|
+
finish();
|
|
95
90
|
return;
|
|
96
91
|
}
|
|
97
92
|
if (input === 'f') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceLogsView.js","sourceRoot":"","sources":["../../../src/ui/views/ServiceLogsView.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACzE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"ServiceLogsView.js","sourceRoot":"","sources":["../../../src/ui/views/ServiceLogsView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
interface ServicesViewProps {
|
|
2
2
|
action?: 'start' | 'stop' | 'restart';
|
|
3
3
|
service?: string;
|
|
4
|
+
onBack?: () => void;
|
|
4
5
|
}
|
|
5
|
-
export declare function ServicesView({ action, service }: ServicesViewProps): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export declare function ServicesView({ action, service, onBack }: ServicesViewProps): import("react/jsx-runtime").JSX.Element;
|
|
6
7
|
export {};
|
|
7
8
|
//# sourceMappingURL=ServicesView.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServicesView.d.ts","sourceRoot":"","sources":["../../../src/ui/views/ServicesView.tsx"],"names":[],"mappings":"AAoBA,UAAU,iBAAiB;IACzB,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"ServicesView.d.ts","sourceRoot":"","sources":["../../../src/ui/views/ServicesView.tsx"],"names":[],"mappings":"AAoBA,UAAU,iBAAiB;IACzB,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAsWD,wBAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,iBAAiB,2CAK1E"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import React, { useState, useEffect, useCallback } from 'react';
|
|
3
|
-
import { Box, Text,
|
|
3
|
+
import { Box, Text, useInput } from 'ink';
|
|
4
4
|
import { AppShell, Section, StepList, Spinner } from '../components/index.js';
|
|
5
|
-
import { usePolling, useStepRunner } from '../hooks/index.js';
|
|
5
|
+
import { usePolling, useStepRunner, useFinish } from '../hooks/index.js';
|
|
6
6
|
import { getServiceList, startService, stopService, restartService, startAllServices, stopAllServices, } from '../../lib/services.js';
|
|
7
7
|
import { ServiceLogsView } from './ServiceLogsView.js';
|
|
8
8
|
/* ------------------------------------------------------------------ */
|
|
9
9
|
/* Non-interactive (one-shot) mode */
|
|
10
10
|
/* ------------------------------------------------------------------ */
|
|
11
|
-
function OneShotView({ action, service }) {
|
|
12
|
-
const
|
|
11
|
+
function OneShotView({ action, service, onBack }) {
|
|
12
|
+
const finish = useFinish(onBack);
|
|
13
13
|
const steps = [
|
|
14
14
|
{
|
|
15
15
|
label: 'Check service',
|
|
@@ -46,8 +46,8 @@ function OneShotView({ action, service }) {
|
|
|
46
46
|
}, [run]);
|
|
47
47
|
useEffect(() => {
|
|
48
48
|
if (isDone)
|
|
49
|
-
|
|
50
|
-
}, [isDone,
|
|
49
|
+
finish();
|
|
50
|
+
}, [isDone, finish]);
|
|
51
51
|
return (_jsx(AppShell, { command: `ct services ${action} ${service}`, children: _jsx(Section, { title: `${action.charAt(0).toUpperCase() + action.slice(1)} Service`, children: _jsx(StepList, { steps: states }) }) }));
|
|
52
52
|
}
|
|
53
53
|
/* ------------------------------------------------------------------ */
|
|
@@ -125,8 +125,8 @@ function TableFooter({ columns }) {
|
|
|
125
125
|
'\u2518';
|
|
126
126
|
return _jsx(Text, { children: bottom });
|
|
127
127
|
}
|
|
128
|
-
function InteractiveView() {
|
|
129
|
-
const
|
|
128
|
+
function InteractiveView({ onBack }) {
|
|
129
|
+
const finish = useFinish(onBack);
|
|
130
130
|
const [phase, setPhase] = useState('list');
|
|
131
131
|
const [cursor, setCursor] = useState(0);
|
|
132
132
|
const [actionState, setActionState] = useState(null);
|
|
@@ -199,7 +199,7 @@ function InteractiveView() {
|
|
|
199
199
|
executeAction('Stopping all services...', () => stopAllServices().then(() => { }));
|
|
200
200
|
}
|
|
201
201
|
else if (input === 'q' || key.escape) {
|
|
202
|
-
|
|
202
|
+
finish();
|
|
203
203
|
}
|
|
204
204
|
});
|
|
205
205
|
// Clamp cursor when list changes
|
|
@@ -228,10 +228,10 @@ function InteractiveView() {
|
|
|
228
228
|
/* ------------------------------------------------------------------ */
|
|
229
229
|
/* Export */
|
|
230
230
|
/* ------------------------------------------------------------------ */
|
|
231
|
-
export function ServicesView({ action, service }) {
|
|
231
|
+
export function ServicesView({ action, service, onBack }) {
|
|
232
232
|
if (action && service) {
|
|
233
|
-
return _jsx(OneShotView, { action: action, service: service });
|
|
233
|
+
return _jsx(OneShotView, { action: action, service: service, onBack: onBack });
|
|
234
234
|
}
|
|
235
|
-
return _jsx(InteractiveView, {});
|
|
235
|
+
return _jsx(InteractiveView, { onBack: onBack });
|
|
236
236
|
}
|
|
237
237
|
//# sourceMappingURL=ServicesView.js.map
|