mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-02-01 08:13:37 +00:00
fix(init): show Playwright browser download progress
The Playwright chromium installation was running silently, causing the script to appear frozen at "Checking Playwright browsers..." for several minutes during first-time setup. Change stdio from 'ignore' to 'inherit' so users can see download progress and understand what's happening.
This commit is contained in:
22
init.mjs
22
init.mjs
@@ -59,7 +59,11 @@ function printHeader() {
|
|||||||
*/
|
*/
|
||||||
function execCommand(command, options = {}) {
|
function execCommand(command, options = {}) {
|
||||||
try {
|
try {
|
||||||
return execSync(command, { encoding: 'utf8', stdio: 'pipe', ...options }).trim();
|
return execSync(command, {
|
||||||
|
encoding: 'utf8',
|
||||||
|
stdio: 'pipe',
|
||||||
|
...options,
|
||||||
|
}).trim();
|
||||||
} catch {
|
} catch {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -94,7 +98,7 @@ function getProcessesOnPort(port) {
|
|||||||
try {
|
try {
|
||||||
const output = execCommand(`lsof -ti:${port}`);
|
const output = execCommand(`lsof -ti:${port}`);
|
||||||
if (output) {
|
if (output) {
|
||||||
output.split('\n').forEach(pid => {
|
output.split('\n').forEach((pid) => {
|
||||||
const parsed = parseInt(pid.trim(), 10);
|
const parsed = parseInt(pid.trim(), 10);
|
||||||
if (parsed > 0) pids.add(parsed);
|
if (parsed > 0) pids.add(parsed);
|
||||||
});
|
});
|
||||||
@@ -158,7 +162,7 @@ async function killPort(port) {
|
|||||||
* Sleep for a given number of milliseconds
|
* Sleep for a given number of milliseconds
|
||||||
*/
|
*/
|
||||||
function sleep(ms) {
|
function sleep(ms) {
|
||||||
return new Promise(resolve => setTimeout(resolve, ms));
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -291,7 +295,7 @@ async function main() {
|
|||||||
const playwright = crossSpawn(
|
const playwright = crossSpawn(
|
||||||
'npx',
|
'npx',
|
||||||
['playwright', 'install', 'chromium'],
|
['playwright', 'install', 'chromium'],
|
||||||
{ stdio: 'ignore', cwd: path.join(__dirname, 'apps', 'ui') }
|
{ stdio: 'inherit', cwd: path.join(__dirname, 'apps', 'ui') }
|
||||||
);
|
);
|
||||||
playwright.on('close', () => resolve());
|
playwright.on('close', () => resolve());
|
||||||
playwright.on('error', () => resolve());
|
playwright.on('error', () => resolve());
|
||||||
@@ -344,7 +348,9 @@ async function main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Start server in background
|
// Start server in background
|
||||||
const logStream = fs.createWriteStream(path.join(__dirname, 'logs', 'server.log'));
|
const logStream = fs.createWriteStream(
|
||||||
|
path.join(__dirname, 'logs', 'server.log')
|
||||||
|
);
|
||||||
serverProcess = runNpm(['run', 'dev:server'], {
|
serverProcess = runNpm(['run', 'dev:server'], {
|
||||||
stdio: ['ignore', 'pipe', 'pipe'],
|
stdio: ['ignore', 'pipe', 'pipe'],
|
||||||
});
|
});
|
||||||
@@ -377,7 +383,10 @@ async function main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
log('✓ Server is ready!', 'green');
|
log('✓ Server is ready!', 'green');
|
||||||
log(`The application will be available at: http://localhost:3007`, 'green');
|
log(
|
||||||
|
`The application will be available at: http://localhost:3007`,
|
||||||
|
'green'
|
||||||
|
);
|
||||||
console.log('');
|
console.log('');
|
||||||
|
|
||||||
// Start web app
|
// Start web app
|
||||||
@@ -411,4 +420,3 @@ main().catch((err) => {
|
|||||||
cleanup();
|
cleanup();
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user