// Remove a project. Careful! There's no undo.

import { rmdirSync } from "fs"
import { DEFAULT_PROJECT } from "@/config"
import { projectDir, projects, projectName } from "@/project"
import { disconnectSneaker } from "@/sneaker"
import load from "./load"

export default async function (project: string, confirm = false) {
  if (!projects().includes(project)) throw `no ${project} project`
  if (project === DEFAULT_PROJECT) throw `can't delete ${DEFAULT_PROJECT} project`
  if (!confirm) throw `> Are you POSITIVE?\n> Run again with 'true' at the end:\n\n$ rmproject ${project} true`

  const isCurrent = projectName() === project
  if (isCurrent) load("root")

  await disconnectSneaker(project)

  rmdirSync(projectDir(project), { recursive: true })

  return `${project} deleted`
}