import { unzipWep2, migrateSchema } from './update'
const childProcess = require('child_process')

export async function install (projectName) {
  console.log('Scaffolding WePublish Editor 2...')
  await installDirectus(projectName)
  await installWep2(projectName)
  await unzipWep2(projectName)
  await migrateSchema(projectName)
  console.log(`Start wep2 instance by cd into ./${projectName} and run 'npx directus start'`)
}

async function installDirectus (projectName): Promise<void> {
  try {
    if (!projectName) {
      throw new Error('Missing Project Name!')
    }
    await childProcess
      .execSync(
        `npm init directus-project ${projectName}`,
        {stdio:[0,1,2]}
      )
  } catch (error) {
    console.log(error)
  }
}

async function installWep2 (projectName): Promise<void> {
  try {
    await childProcess
      .execSync(
        'npm install --save @wep2/editor',
        {
          cwd: `./${projectName}`,
          stdio:[0,1,2]
        }
      )
  } catch (error) {
    console.log(error)
  }
}
