|
|
|
// Native
|
|
|
|
const { join } = require("path");
|
|
|
|
|
|
|
|
// Packages
|
|
|
|
const fs = require("fs-promise");
|
|
|
|
const chalk = require("chalk");
|
|
|
|
|
|
|
|
// Ours
|
|
|
|
const { error } = require("./error");
|
|
|
|
const readMetaData = require("./read-metadata");
|
|
|
|
const NowAlias = require("./alias");
|
|
|
|
|
|
|
|
exports.assignAlias = async (autoAlias, token, deployment, apiUrl, debug) => {
|
|
|
|
const aliases = new NowAlias(apiUrl, token, { debug });
|
|
|
|
console.log(
|
|
|
|
`> Assigning alias ${chalk.bold.underline(autoAlias)} to deployment...`
|
|
|
|
);
|
|
|
|
|
|
|
|
// Assign alias
|
|
|
|
await aliases.set(String(deployment), String(autoAlias));
|
|
|
|
};
|
|
|
|
|
|
|
|
exports.reAlias = async (token, host, help, exit, apiUrl, debug, alias) => {
|
|
|
|
const path = process.cwd();
|
|
|
|
|
|
|
|
const configFiles = {
|
|
|
|
pkg: join(path, "package.json"),
|
|
|
|
nowJSON: join(path, "now.json")
|
|
|
|
};
|
|
|
|
|
|
|
|
if (!fs.existsSync(configFiles.pkg) && !fs.existsSync(configFiles.nowJSON)) {
|
|
|
|
error(
|
|
|
|
`Couldn't find a now.json or package.json file with an alias list in it`
|
|
|
|
);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
const { nowConfig, name } = await readMetaData(path, {
|
|
|
|
deploymentType: "npm", // hard coding settings…
|
|
|
|
quiet: true // `quiet`
|
|
|
|
});
|
|
|
|
|
|
|
|
if (!host) {
|
|
|
|
const lastAlias = await alias.last(name);
|
|
|
|
host = lastAlias.url;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!nowConfig) {
|
|
|
|
help();
|
|
|
|
return exit(0);
|
|
|
|
}
|
|
|
|
|
|
|
|
let pointers = [];
|
|
|
|
|
|
|
|
if (nowConfig.alias) {
|
|
|
|
const value = nowConfig.alias;
|
|
|
|
|
|
|
|
if (typeof value === "string") {
|
|
|
|
pointers.push(value);
|
|
|
|
} else if (Array.isArray(value)) {
|
|
|
|
pointers = pointers.concat(nowConfig.alias);
|
|
|
|
} else {
|
|
|
|
error(`Property ${chalk.grey("aliases")} is not a valid array or string`);
|
|
|
|
return exit(1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (nowConfig.aliases && Array.isArray(nowConfig.aliases)) {
|
|
|
|
console.log(
|
|
|
|
`${chalk.red("Deprecated!")} The property ${chalk.grey("aliases")} will be ` +
|
|
|
|
`removed from the config file soon.`
|
|
|
|
);
|
|
|
|
console.log("Read more about the new way here: http://bit.ly/2l2v5Fg\n");
|
|
|
|
|
|
|
|
pointers = pointers.concat(nowConfig.aliases);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (pointers.length === 0) {
|
|
|
|
help();
|
|
|
|
return exit(0);
|
|
|
|
}
|
|
|
|
|
|
|
|
for (const pointer of pointers) {
|
|
|
|
await exports.assignAlias(pointer, token, host, apiUrl, debug);
|
|
|
|
}
|
|
|
|
};
|