import builder from 'electron-builder'
import yaml from 'js-yaml'
import url from 'node:url'
import path from 'node:path'
import fs from 'node:fs'
import { buildTargetListMapByPlatform, osPlatformToBuildCommandMap } from './vars/os.mjs'

const __dirname = url.fileURLToPath(new URL('.', import.meta.url))

const getBuilderConfig = () => {
  return yaml.load(fs.readFileSync(path.join(__dirname, '../electron-builder.yml'), 'utf8'))
}

export default async function makeDistForCurrentPlatform() {
  const buildTargets = buildTargetListMapByPlatform[process.platform]
  const platformKeyForBuildParameter = osPlatformToBuildCommandMap[process.platform]
  if (!buildTargets?.length || !platformKeyForBuildParameter) {
    console.log('Cannot build for current platform')
    process.exit(1)
  }
  const buildParameter = {
    config: getBuilderConfig()
  }
  buildParameter[platformKeyForBuildParameter] = buildTargets.map((it) => `${it}:${process.arch}`)

  return await builder.build(buildParameter)
}

makeDistForCurrentPlatform()
