mirror of
https://github.com/Lifeforge-app/lifeforge.git
synced 2026-06-27 22:36:06 +00:00
Former-commit-id: dc45f16c7c335c1dda050084ad29f163cae50bd3 [formerly 029c986877960c3ebd8bd49f3fed5d2788004b36] [formerly 76101ad569104c66e9a216449fc6be533f611a4e [formerly d676c74f967b79b8532cef3bb643aa4ade83f1a1]] Former-commit-id: 97e4a67b92d6a620d629cc0e6ac6b0048f89969c [formerly bb86e5f1362ecdeb7f65e2977236ef327a4b4566] Former-commit-id: e0cd35ed6121c2088ae9004ced41c90abc14f2ec
57 lines
1.8 KiB
TypeScript
57 lines
1.8 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',
|
|
'apps:api-explorer': 'apps/api-explorer'
|
|
}
|
|
|
|
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)
|
|
}
|