(workDir: string, configSource: string)
| 146 | // --------------------------------------------------------------------------- |
| 147 | |
| 148 | async function initFromConfig(workDir: string, configSource: string): Promise<void> { |
| 149 | if (configExists(workDir)) { |
| 150 | const { overwrite } = await inquirer.prompt([ |
| 151 | { |
| 152 | type: "confirm", |
| 153 | name: "overwrite", |
| 154 | message: `A ${PACK_FILE} file already exists in this directory. Overwrite it?`, |
| 155 | default: false, |
| 156 | }, |
| 157 | ]); |
| 158 | |
| 159 | if (!overwrite) { |
| 160 | console.log(chalk.yellow("Cancelled")); |
| 161 | return; |
| 162 | } |
| 163 | } |
| 164 | |
| 165 | const config = await readConfigSource(configSource); |
| 166 | saveConfig(workDir, config); |
| 167 | |
| 168 | console.log(chalk.blue(`\n Initialize ${config.name} from ${configSource}\n`)); |
| 169 | |
| 170 | installConfiguredSkills(workDir, config); |
| 171 | refreshDescriptionsAndSave(workDir, config); |
| 172 | copyStartTemplates(workDir); |
| 173 | |
| 174 | console.log(chalk.green(`\n ${PACK_FILE} saved`)); |
| 175 | console.log(chalk.green(` start.sh / start.bat created`)); |
| 176 | console.log(chalk.green(` Initialization complete.\n`)); |
| 177 | console.log(chalk.dim(` Run npx @cremini/skillpack run . to start\n`)); |
| 178 | } |
| 179 | |
| 180 | // --------------------------------------------------------------------------- |
| 181 | // Interactive creation mode |
no test coverage detected