45 lines
1.0 KiB
JavaScript
45 lines
1.0 KiB
JavaScript
// Script: set-all-birthday-visible.cjs
|
|
// Setzt für alle Mitglieder das Flag visibility.showBirthday auf true
|
|
|
|
const fs = require('fs')
|
|
const path = require('path')
|
|
|
|
const membersPath = path.join(__dirname, 'data', 'members.json')
|
|
|
|
let raw
|
|
try {
|
|
raw = fs.readFileSync(membersPath, 'utf8')
|
|
} catch (e) {
|
|
console.error('Fehler beim Lesen von members.json:', e)
|
|
process.exit(1)
|
|
}
|
|
|
|
let members
|
|
try {
|
|
members = JSON.parse(raw)
|
|
} catch (e) {
|
|
console.error('Fehler beim Parsen von members.json:', e)
|
|
process.exit(1)
|
|
}
|
|
|
|
if (!Array.isArray(members)) {
|
|
console.error('members.json ist kein Array!')
|
|
process.exit(1)
|
|
}
|
|
|
|
let changed = 0
|
|
for (const m of members) {
|
|
if (!m.visibility) m.visibility = {}
|
|
if (m.visibility.showBirthday !== true) {
|
|
m.visibility.showBirthday = true
|
|
changed++
|
|
}
|
|
}
|
|
|
|
if (changed > 0) {
|
|
fs.writeFileSync(membersPath, JSON.stringify(members, null, 2), 'utf8')
|
|
console.log(`Flag für ${changed} Mitglieder gesetzt.`)
|
|
} else {
|
|
console.log('Alle Mitglieder hatten das Flag bereits gesetzt.')
|
|
}
|