nose-pluto/bin/rmdir.ts
2025-09-29 21:18:39 -07:00

27 lines
725 B
TypeScript

// Remove a directory, and all its children.
import { rmdirSync, readdirSync } from "fs"
import { join } from "path"
import { projectDir } from "@/project"
import { sessionGet } from "@/session"
export default function (path: string) {
let target = ""
if (path.endsWith("/")) path = path.slice(0, path.length - 1)
const root = sessionGet("cwd") || projectDir()
for (const file of readdirSync(root, { withFileTypes: true }))
if (file.name === path) {
if (file.isFile())
return { error: "Use `rm` to remove files" }
target = file.name
break
}
if (!target)
return { error: `${path} not found` }
rmdirSync(join(root, path), { recursive: true })
return `${path} removed`
}