@flourish/sdk
Version:
The Flourish SDK
61 lines (49 loc) • 1.66 kB
JavaScript
;
const log = require("../../log");
const upgrades = [
require("./1-convert-config-to-yaml"),
require("./2-convert-index-html"),
require("./3-add-build-config"),
require("./4-remove-autoheight-config"),
];
function runUpgrade({ upgrade, title }, template_dir) {
log.info("Running: " + title);
return upgrade(template_dir)
.then((upgraded) => {
if (upgraded) { log.success("Upgrade successful"); }
else { log.info("Upgrade not needed"); }
return upgraded;
});
}
let upgrade_index = 0;
function runUpgrades(template_dir, num_run=0) {
const upgrade = upgrades[upgrade_index];
if (!upgrade) { return Promise.resolve(num_run); }
return runUpgrade(upgrade, template_dir)
.then((upgraded) => {
upgrade_index += 1;
if (upgraded) { num_run += 1; }
})
.then(() => runUpgrades(template_dir, num_run));
}
exports.command = function upgrade(args) {
const template_dir = args._[1] || ".";
runUpgrades(template_dir)
.then((num_upgrades) => {
log.victory("Upgrades completed!");
if (num_upgrades > 0) {
log.warn_bold(`We ran ${num_upgrades} upgrade${num_upgrades == 1 ? "" : "s"} on your template`, "Please check it carefully!");
}
})
.catch((error) => {
if (args.debug) { log.problem("Upgrade failed", error.message, error.stack); }
else { log.problem("Upgrade failed", error.message); }
});
};
exports.help = `
flourish upgrade [template_directory]
Upgrade the template in template_directory, or in the current directory if no
template_directory is specified, to be compatible with the current version of
Flourish.
This is only needed when incompatible changes have been made to Flourish.
`;