reset_rolling_build_update_notification.mjs 966 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import { scriptRunner } from './lib/ScriptRunner.mjs'
  2. import { db } from '../app/src/infrastructure/mongodb.mjs'
  3. import minimist from 'minimist'
  4. const argv = minimist(process.argv.slice(2))
  5. async function resetTutorials() {
  6. const commit = argv.commit !== undefined
  7. const users = await db.users
  8. .find(
  9. {
  10. 'completedTutorials.rolling-compile-image-changed.state': 'completed',
  11. },
  12. { readPreference: 'secondaryPreferred' }
  13. )
  14. .toArray()
  15. if (!commit) {
  16. console.log(
  17. `would have removed rolling-compile-image-changed tutorial for ${users.length} users`
  18. )
  19. return
  20. }
  21. await db.users.updateMany(
  22. { _id: { $in: users.map(user => user._id) } },
  23. {
  24. $unset: { 'completedTutorials.rolling-compile-image-changed': '' },
  25. }
  26. )
  27. console.log(`updated ${users.length} users`)
  28. }
  29. try {
  30. await scriptRunner(resetTutorials)
  31. process.exit(0)
  32. } catch (error) {
  33. console.error(error)
  34. process.exit(1)
  35. }