mirror of
https://github.com/Lifeforge-app/lifeforge.git
synced 2026-06-28 06:46:24 +00:00
Former-commit-id: 300e6c1e0854e18ca8f9743b55a39a3f7f3a2bec [formerly 1726d72f3dc439cfab323fb42f1f4fa408245ead] [formerly e478847f0379ece71fe024ca894740b50c1b2596 [formerly bbae20d6f8d156881ced8d8f7caf903d6785c56c]] Former-commit-id: 4ec5432e5e521e7f2bc8d7bfc890ab44fba0ff8d [formerly 5556d79045a913b9ba5fd4a4769c362a67c7f6ec] Former-commit-id: 877383e4305425395d7641c1e3002a302e0a4be6
56 lines
1.7 KiB
TypeScript
56 lines
1.7 KiB
TypeScript
import { execSync } from 'child_process'
|
|
|
|
const PROCESS_ALLOWED = ['build', 'dev', 'types', 'lint']
|
|
|
|
const PROJECTS_ALLOWED = {
|
|
client: 'client',
|
|
server: 'server',
|
|
shared: 'shared',
|
|
ui: 'packages/lifeforge-ui',
|
|
'apps:localization-manager': 'apps/localization-manager',
|
|
'apps:docs': 'apps/docs',
|
|
'apps:api-builder': 'apps/api-builder'
|
|
}
|
|
|
|
const processType = process.argv[2]
|
|
const projectTypes = process.argv.slice(3)
|
|
|
|
if (!PROCESS_ALLOWED.includes(processType)) {
|
|
console.error(
|
|
`Invalid process type: ${processType}. Allowed types are: ${PROCESS_ALLOWED.join(', ')}`
|
|
)
|
|
process.exit(1)
|
|
}
|
|
|
|
if (
|
|
!projectTypes.every(projectType =>
|
|
Object.keys(PROJECTS_ALLOWED).includes(projectType)
|
|
)
|
|
) {
|
|
console.error(
|
|
`Invalid project type: ${projectTypes.find(projectType => !Object.keys(PROJECTS_ALLOWED).includes(projectType))}. Allowed projects are: ${Object.keys(PROJECTS_ALLOWED).join(', ')}`
|
|
)
|
|
process.exit(1)
|
|
}
|
|
|
|
const commands = projectTypes.map(
|
|
projectType => `cd ${PROJECTS_ALLOWED[projectType]} && bun run ${processType}`
|
|
)
|
|
|
|
const finalCommand = `concurrently --kill-others --success first --prefix-name "${projectTypes.join(',')}" --names "${projectTypes.join(
|
|
','
|
|
)}" --prefix-colors "${projectTypes.map(() => 'cyan').join(',')}" ${commands.map(cmd => `"${cmd}"`).join(' ')}`
|
|
try {
|
|
console.log(`Executing command: ${finalCommand}`)
|
|
execSync(finalCommand, { stdio: 'inherit' })
|
|
console.log(
|
|
`${processType.charAt(0).toUpperCase() + processType.slice(1)} completed successfully for ${projectTypes.join(', ')}.`
|
|
)
|
|
} catch (error) {
|
|
console.error(
|
|
`${processType.charAt(0).toUpperCase() + processType.slice(1)} failed for ${projectTypes.join(', ')}.`
|
|
)
|
|
console.error(error)
|
|
process.exit(1)
|
|
}
|