replace_spellcheck_languages.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. // Run like this:
  2. // node ... --projectIds ./path/to/file/with/one/projectId/in/each/line
  3. const fs = require('fs')
  4. const { db, ObjectId } = require('../app/src/infrastructure/mongojs')
  5. const minimist = require('minimist')
  6. const argv = minimist(process.argv.slice(2))
  7. const commit = argv.commit !== undefined
  8. if (!argv.projectIds) {
  9. console.error('--projectIds flag is missing')
  10. process.exit(100)
  11. }
  12. if (!commit) {
  13. console.log('DOING DRY RUN. TO SAVE CHANGES PASS --commit')
  14. }
  15. const languages = [
  16. 'am',
  17. 'hy',
  18. 'bn',
  19. 'gu',
  20. 'he',
  21. 'hi',
  22. 'hu',
  23. 'is',
  24. 'kn',
  25. 'ml',
  26. 'mr',
  27. 'or',
  28. 'ss',
  29. 'ta',
  30. 'te',
  31. 'uk',
  32. 'uz',
  33. 'zu',
  34. 'fi'
  35. ]
  36. const projectIds = fs
  37. .readFileSync(argv.projectIds, { encoding: 'utf-8' })
  38. .split('\n')
  39. .filter(Boolean)
  40. function main(callback) {
  41. const query = {
  42. _id: { $in: projectIds.map(ObjectId) },
  43. spellCheckLanguage: { $in: languages }
  44. }
  45. db.projects.update(
  46. query,
  47. { $set: { spellCheckLanguage: '' } },
  48. { multi: true },
  49. (err, result) => {
  50. if (err) {
  51. return callback(err)
  52. }
  53. console.log(`>> Updated projects: ${JSON.stringify(result)}`)
  54. return callback()
  55. }
  56. )
  57. }
  58. if (require.main === module) {
  59. main(err => {
  60. if (err) {
  61. console.error(err)
  62. return process.exit(1)
  63. }
  64. console.log('>> done')
  65. process.exit(0)
  66. })
  67. }