export async function createWskdeployProject()

in src/commands/createWskdeployProject.ts [43:78]


export async function createWskdeployProject(): Promise<void> {
    if (!vscode.workspace.workspaceFolders) {
        vscode.window.showErrorMessage('Open a workspace first to create a wskdeploy project.');
        return;
    }
    const workspacePath = vscode.workspace.workspaceFolders[0].uri.fsPath;
    const templateFiles = getTemplateFiles(TemplatePath.Minimal.root);

    try {
        const fileListString = templateFiles.map((f) => `    - ${f}`).join('\n');
        const confirmed = await showConfirmMessage(
            `Are you sure you want to create wskdeploy project in your workspace?\n
    The following file will be created:
${fileListString}`,
            'Create'
        );
        if (!confirmed) {
            return;
        }

        templateFiles.forEach((f) => {
            if (fs.existsSync(resolve(workspacePath, f))) {
                throw new Error(`Failed to create a template file. The ${f} file already exists`);
            }
        });
        templateFiles.forEach(async (f) => {
            const templateFilePath = vscode.Uri.file(path.resolve(TemplatePath.Minimal.root, f));
            const targetFilePath = vscode.Uri.file(path.resolve(workspacePath, f));
            await vscode.workspace.fs.copy(templateFilePath, targetFilePath);
        });
    } catch (e) {
        if (e instanceof Error) {
            vscode.window.showErrorMessage(e.message);
        }
    }
}