@chainwayxyz/phase2cli
Version:
All-in-one interactive command-line for interfacing with zkSNARK Phase 2 Trusted Setup ceremonies
50 lines (39 loc) • 1.56 kB
text/typescript
import { bootstrapCommandExecutionAndServices } from "../lib/services.js"
import { showError } from "../lib/errors.js"
import { askForConfirmation } from "../lib/prompts.js"
import { customSpinner, sleep } from "../lib/utils.js"
import theme from "../lib/theme.js"
import { localPaths } from "../lib/localConfigs.js"
import { deleteDir, directoryExists } from "../lib/files.js"
/**
* Clean command.
*/
const clean = async () => {
try {
// Initialize services.
await bootstrapCommandExecutionAndServices()
const spinner = customSpinner(`Cleaning up...`, "clock")
if (directoryExists(localPaths.output)) {
console.log(theme.text.bold(`${theme.symbols.warning} Be careful, this action is irreversible!`))
const { confirmation } = await askForConfirmation(
"Are you sure you want to continue with the clean up?",
"Yes",
"No"
)
if (confirmation) {
spinner.start()
// Do the clean up.
deleteDir(localPaths.output)
// nb. simulate waiting time for 1s.
await sleep(1000)
spinner.succeed(`Cleanup was successfully completed ${theme.emojis.broom}`)
}
} else {
console.log(`${theme.symbols.info} There is nothing to clean ${theme.emojis.eyes}`)
}
} catch (err: any) {
showError(`Something went wrong: ${err.toString()}`, true)
}
}
export default clean