fiora/packages/bin/scripts/fixUsersAvatar.ts
碎碎酱 1dbe1195fd
Add fiora command and update scripts (#417)
* Add fiora command

* Update scripts and docs

* Support i18n
2021-07-20 21:07:14 +08:00

51 lines
1.5 KiB
TypeScript

import chalk from 'chalk';
import inquirer from 'inquirer';
import User from '@fiora/database/mongoose/models/user';
import initMongoDB from '@fiora/database/mongoose/initMongoDB';
export async function fixUsersAvatar(
searchValue: string,
replaceValue: string,
) {
searchValue = searchValue || 'fioraavatar';
replaceValue = replaceValue || 'fiora/avatar';
await initMongoDB();
const users = await User.find({ avatar: { $regex: 'fioraavatar' } });
if (users.length) {
console.log(chalk.red('Oh No!'), "Some user's avatar is wrong");
users.forEach((user) => {
console.log(user._id, user.username, user.avatar);
});
const shouldFix = await inquirer.prompt({
type: 'confirm',
name: 'result',
message: 'Confirm to fix?',
});
if (shouldFix.result) {
await Promise.all(
users.map((user) => {
user.avatar = user.avatar.replace(
searchValue,
replaceValue,
);
return user.save();
}),
);
console.log(chalk.green('Congratulations! Fixed!'));
}
} else {
console.log(chalk.green('OK!'), "All user's avatar is corrent");
}
}
async function run() {
const searchValue = process.argv[3];
const replaceValue = process.argv[4];
await fixUsersAvatar(searchValue, replaceValue);
process.exit(0);
}
export default run;