Newer
Older
/* eslint-disable import/no-extraneous-dependencies */
import type { PackageManager } from "./helpers/get-pkg-manager";
import { tryGitInit } from "./helpers/git";
import { isFolderEmpty } from "./helpers/is-folder-empty";
import { getOnline } from "./helpers/is-online";
import { isWriteable } from "./helpers/is-writeable";
import { makeDir } from "./helpers/make-dir";
import type {
TemplateEngine,
TemplateFramework,
TemplateType,
} from "./templates";
import { installPythonTemplate, installTemplate } from "./templates";
Marcus Schiesser
committed
framework,
engine,
appPath,
packageManager,
eslint,
}: {
template: TemplateType;
Marcus Schiesser
committed
framework: TemplateFramework;
engine: TemplateEngine;
appPath: string;
packageManager: PackageManager;
eslint: boolean;
if (!(await isWriteable(path.dirname(root)))) {
console.error(
"The application path is not writable, please check folder permissions and try again.",
);
"It is likely you do not have write permissions for this folder.",
);
process.exit(1);
const useYarn = packageManager === "yarn";
const isOnline = !useYarn || (await getOnline());
console.log(`Creating a new LlamaIndex app in ${green(root)}.`);
console.log();
if (framework === "fastapi") {
await installPythonTemplate({ appName, root, template, framework });
} else {
await installTemplate({
appName,
root,
template,
framework,
engine,
ui,
packageManager,
isOnline,
eslint,
});
}
console.log("Initialized a git repository.");
console.log();
console.log(`${green("Success!")} Created ${appName} at ${appPath}`);
console.log();