@maximousprime/docebo-cli
Version:
Simple Docebo migration CLI
100 lines (86 loc) • 2.64 kB
JavaScript
import arg from "arg";
import { input, confirm } from "@inquirer/prompts";
import showInitHelp from "./help/show-init-help.js";
import saveInputToEnvFile from "./utils/save-input-to-env.js";
// lets add one final step for the usert to confirm the inputs
function parseArgumentsIntoOptions(rawArgs) {
const args = arg(
{
"--platform-url": String,
"--api-token": String,
"--confirm": Boolean,
"--help": Boolean,
"-p": "--platform-url",
"-a": "--api-token",
"-c": "--confirm",
"-h": "--help",
},
{
argv: rawArgs.slice(2),
}
);
return {
platformUrl: args["--platform-url"],
apiToken: args["--api-token"],
confirm: args["--confirm"],
help: args["--help"],
};
}
const promptForPlatformUrl = async () => {
const platformUrl = await input({
message: "Please enter platform url",
});
return platformUrl;
};
const promptForApiToken = async () => {
const apiToken = await input({
message: "Please enter your API token",
});
return apiToken;
};
const promptForConfirmation = async () => {
const confirmation = await confirm({
message: "Does this look correct?",
});
return confirmation;
};
const initMigration = async (args) => {
let options = parseArgumentsIntoOptions(args);
// Show help if requested
if (options.help) {
showInitHelp();
return;
}
options.platformUrl = await promptForPlatformUrl();
options.apiToken = await promptForApiToken();
console.log({
platformUrl: options.platformUrl,
apiToken: options.apiToken,
});
options.confirmation = await promptForConfirmation();
if (options.confirmation) {
console.log("✅ migration project initiated");
saveInputToEnvFile(options.platformUrl, "PLATFORM_URL");
saveInputToEnvFile(options.apiToken, "API_TOKEN");
console.log("✅ .env file created with PLATFORM_URL");
console.log("✅ API_TOKEN added to .env file");
console.log("✅ migration project initiated");
console.log("");
console.log("🚀 Next steps:");
console.log(
"1. To start migration, run: npx @maximousprime/jb_docebo_migration_cli start-migration"
);
console.log(
"2. For help, run: npx @maximousprime/jb_docebo_migration_cli docebo-help"
);
console.log("");
console.log("💡 Tip: You can also install globally for easier use:");
console.log(" npm install -g @maximousprime/jb_docebo_migration_cli");
console.log(
" Then use: start-migration, init-docebo-migration, docebo-help"
);
} else {
console.log("Exiting the process");
}
};
export default initMigration;