|
const { spawn } = require('child_process'); |
|
const path = require('path'); |
|
|
|
console.log('π Starting Lin Development Environment...'); |
|
console.log('==========================================\n'); |
|
|
|
|
|
console.log('π§ Starting Backend Server...'); |
|
const backend = spawn('python', ['app.py'], { |
|
cwd: path.join(__dirname, 'backend'), |
|
stdio: 'inherit', |
|
shell: true |
|
}); |
|
|
|
|
|
console.log('π¨ Starting Frontend Development Server...'); |
|
const frontend = spawn('npm', ['run', 'dev'], { |
|
cwd: path.join(__dirname, 'frontend'), |
|
stdio: 'inherit', |
|
shell: true |
|
}); |
|
|
|
|
|
backend.on('close', (code) => { |
|
console.log(`Backend process exited with code ${code}`); |
|
frontend.kill(); |
|
}); |
|
|
|
frontend.on('close', (code) => { |
|
console.log(`Frontend process exited with code ${code}`); |
|
backend.kill(); |
|
}); |
|
|
|
|
|
process.on('SIGINT', () => { |
|
console.log('\nπ Shutting down development servers...'); |
|
backend.kill(); |
|
frontend.kill(); |
|
process.exit(0); |
|
}); |
|
|
|
process.on('SIGTERM', () => { |
|
console.log('\nπ Shutting down development servers...'); |
|
backend.kill(); |
|
frontend.kill(); |
|
process.exit(0); |
|
}); |