DenReg/cli/commands/init.ts
Fabian Stamm 0bee324519
All checks were successful
continuous-integration/drone/push Build is passing
QOL improvements or CLI
2020-07-31 19:45:14 +02:00

55 lines
1.4 KiB
TypeScript

import { Cliffy, Path, FS } from "../deps.ts";
import {
getMeta,
setMeta,
IMeta,
getConfig,
isInteractive,
} from "../global.ts";
export default async function init() {
let existing = {};
try {
existing = await getMeta();
} catch (err) {}
let meta: IMeta = {
name: Path.basename(Deno.cwd()).toLowerCase().replace(/\s+/g, "-"),
version: "0.0.1",
description: "",
author: getConfig("author"),
contributors: [],
files: ["**/*.ts", "**/*.js", "README.md"],
...existing,
};
if (isInteractive()) {
meta.name = await Cliffy.Input.prompt({
message: "What's the name of your package?",
default: meta.name,
});
meta.description = await Cliffy.Input.prompt({
message: "What's the description of your package?",
default: meta.description,
});
meta.author = await Cliffy.Input.prompt({
message: "Who's the author of your package?",
default: meta.author,
});
if (!(await FS.exists("README.md"))) {
const res = await Cliffy.Confirm.prompt({
message: "Autogenerate README?",
default: true,
});
if (res) {
await Deno.writeFile(
"README.md",
new TextEncoder().encode(meta.description || "")
);
}
}
}
await setMeta(meta);
}