chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
import { spawn } from 'node:child_process'
|
||||
|
||||
import { PNPM_RUNTIME_BIN_PATH } from '@/constants'
|
||||
import { RuntimeHelper } from '@/helpers/runtime-helper'
|
||||
|
||||
import { setupConsola } from './setup-ui'
|
||||
|
||||
const POST_SETUP_ACTIONS = [
|
||||
{
|
||||
label: 'Start me now',
|
||||
value: 'start-me-now'
|
||||
},
|
||||
{
|
||||
label: 'Finish',
|
||||
value: 'finish'
|
||||
}
|
||||
]
|
||||
|
||||
async function runLeonStartCommand() {
|
||||
const startCommand = process.platform === 'win32'
|
||||
? {
|
||||
command: 'cmd.exe',
|
||||
args: ['/c', PNPM_RUNTIME_BIN_PATH, 'start']
|
||||
}
|
||||
: {
|
||||
command: PNPM_RUNTIME_BIN_PATH,
|
||||
args: ['start']
|
||||
}
|
||||
|
||||
await new Promise((resolve, reject) => {
|
||||
const child = spawn(startCommand.command, startCommand.args, {
|
||||
cwd: process.cwd(),
|
||||
env: {
|
||||
...RuntimeHelper.getManagedNodeEnvironment(process.env),
|
||||
LEON_OPEN_BROWSER: 'true'
|
||||
},
|
||||
stdio: 'inherit',
|
||||
windowsHide: true
|
||||
})
|
||||
|
||||
child.once('error', reject)
|
||||
child.once('exit', (code, signal) => {
|
||||
if (signal) {
|
||||
process.kill(process.pid, signal)
|
||||
return
|
||||
}
|
||||
|
||||
if ((code ?? 0) !== 0) {
|
||||
reject(new Error(`Leon exited with code ${code ?? 0}`))
|
||||
return
|
||||
}
|
||||
|
||||
resolve(undefined)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
export default async function postSetup() {
|
||||
if (
|
||||
process.env['IS_DOCKER'] === 'true' ||
|
||||
!process.stdin.isTTY ||
|
||||
!process.stdout.isTTY
|
||||
) {
|
||||
return
|
||||
}
|
||||
|
||||
const nextAction = await setupConsola.prompt('What do you want to do next?', {
|
||||
type: 'select',
|
||||
options: POST_SETUP_ACTIONS,
|
||||
initialValue: POST_SETUP_ACTIONS[1].value,
|
||||
cancel: 'default'
|
||||
})
|
||||
|
||||
if (nextAction !== 'start-me-now') {
|
||||
return
|
||||
}
|
||||
|
||||
await runLeonStartCommand()
|
||||
}
|
||||
Reference in New Issue
Block a user