Skip to content

Commit 21ea789

Browse files
committed
docker watch compatibility
1 parent e1b4fb9 commit 21ea789

File tree

3 files changed

+24
-412
lines changed

3 files changed

+24
-412
lines changed

cli/source/app.tsx

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,13 @@ import Spinner from 'ink-spinner';
44
import { splitEvery } from 'ramda';
55
import { ReactNode, useCallback, useEffect, useMemo, useState } from 'react';
66

7-
import { AppStates, LogSource, logoText, terminatedText } from './constants.js';
7+
import {
8+
AppStates,
9+
LogSource,
10+
READY_MESSAGES,
11+
logoText,
12+
terminatedText
13+
} from './constants.js';
814
import { useAppContext, AppContextProvider } from './hooks/useAppContext.js';
915
import { useLogsFromAllSources } from './hooks/useLogsFromAllSources.js';
1016
import { getLineLimit } from './utils/line-limit.js';
@@ -95,18 +101,16 @@ const CliUi = () => {
95101
runCommand('docker-compose', ['down'], runCommandOpts);
96102
};
97103

98-
runCommand(
99-
'docker-compose',
100-
['--progress=plain', 'up', '-d'],
101-
runCommandOpts
102-
)
103-
.promise.then(() => {
104-
addLog('\n🚀 Container ready 🚀\n');
105-
setAppState(AppStates.DOCKER_READY);
106-
})
107-
.catch((err) => {
108-
addLog(['❌ Container boot failure ❌', `Error logs: ${err.message}`]);
109-
});
104+
runCommand('docker-compose', ['watch'], runCommandOpts).process?.stdout.on(
105+
'data',
106+
(data) => {
107+
let watch_logs = String(data);
108+
if (watch_logs.includes(READY_MESSAGES[LogSource.DockerWatch])) {
109+
addLog('\n🚀 Container ready 🚀\n');
110+
setAppState(AppStates.DOCKER_READY);
111+
}
112+
}
113+
);
110114

111115
process.on('exit', listener);
112116
return () => {

cli/source/constants.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ export enum LogSource {
2727
Redis,
2828
InitDb,
2929
Postgres,
30-
Cron
30+
Cron,
31+
DockerWatch
3132
}
3233

3334
export type LogEntry = { time: Date; line: ReactNode };
@@ -42,5 +43,6 @@ export const READY_MESSAGES = {
4243
[LogSource.WebServer]: `Server started on http://localhost`,
4344
[LogSource.Postgres]: `database system is ready to accept connections`,
4445
[LogSource.Redis]: `Ready to accept connections`,
45-
[LogSource.InitDb]: `exit 0`
46+
[LogSource.InitDb]: `exit 0`,
47+
[LogSource.DockerWatch]: `watch enabled`
4648
};

0 commit comments

Comments
 (0)