From 0b3fba44a4626eedc0180b0621f1ac8f73aca2c0 Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Sat, 14 Feb 2026 15:50:37 +0100 Subject: [PATCH] =?UTF-8?q?F=C3=BCge=20Skript=20zum=20Aufteilen=20von=20Na?= =?UTF-8?q?men=20in=20firstName=20und=20lastName=20f=C3=BCr=20Benutzer=20h?= =?UTF-8?q?inzu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/split-names-in-users.js | 45 +++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 scripts/split-names-in-users.js diff --git a/scripts/split-names-in-users.js b/scripts/split-names-in-users.js new file mode 100644 index 0000000..cb698bc --- /dev/null +++ b/scripts/split-names-in-users.js @@ -0,0 +1,45 @@ +#!/usr/bin/env node +// Script: split-names-in-users.js +// Splittet das Feld "name" in firstName und lastName für alle User in users.json, falls noch nicht vorhanden. +// Backup wird automatisch angelegt. + +const fs = require('fs') +const path = require('path') + +const usersPath = path.join(__dirname, '../server/data/users.json') +const backupPath = usersPath + '.bak.' + new Date().toISOString().replace(/[:.]/g, '-') + +function extractNames(name) { + if (!name || typeof name !== 'string') return { firstName: '', lastName: '' } + const parts = name.trim().split(/\s+/) + if (parts.length === 1) return { firstName: parts[0], lastName: '' } + return { firstName: parts[0], lastName: parts.slice(1).join(' ') } +} + +function main() { + if (!fs.existsSync(usersPath)) { + console.error('users.json nicht gefunden:', usersPath) + process.exit(1) + } + const users = JSON.parse(fs.readFileSync(usersPath, 'utf8')) + let changed = false + + for (const user of users) { + if ((!user.firstName || !user.lastName) && user.name) { + const { firstName, lastName } = extractNames(user.name) + if (!user.firstName) user.firstName = firstName + if (!user.lastName) user.lastName = lastName + changed = true + } + } + + if (changed) { + fs.copyFileSync(usersPath, backupPath) + fs.writeFileSync(usersPath, JSON.stringify(users, null, 2)) + console.log('Felder firstName/lastName ergänzt. Backup:', backupPath) + } else { + console.log('Keine Änderungen nötig. Alle Namen bereits gesplittet.') + } +} + +main()