MCPcopy Index your code
hub / github.com/ChatLab/ChatLab / applyPendingDataDirMigration

Function applyPendingDataDirMigration

apps/desktop/main/paths.ts:234–275  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

232}
233
234export function applyPendingDataDirMigration(): { success: boolean; skipped?: boolean; error?: string } {
235 const config = readStorageConfig()
236 const pending = config.pendingDataDirMigration
237 if (!pending) return { success: true, skipped: true }
238
239 const result = runPendingDataDirMigration(pending, {
240 writeUserDataDir(dir) {
241 writeConfigField('data', 'user_data_dir', dir)
242 writeConfigField('data', 'electron_migration_done', true)
243 _userDataDir = dir
244 },
245 clearPendingMigration() {
246 const latest = readStorageConfig()
247 writeStorageConfig({ ...latest, pendingDataDirMigration: undefined })
248 },
249 markPendingDeleteDir(dir) {
250 const latest = readStorageConfig()
251 writeStorageConfig({ ...latest, pendingDeleteDir: dir })
252 },
253 log(message) {
254 writeMigrationLog(getLogsDir(), message, ensureDir)
255 },
256 })
257
258 if (!result.success) {
259 const error = result.errors.join('; ') || '数据目录迁移失败'
260 console.warn('[Paths] Pending data dir migration failed:', error)
261 writeMigrationLog(
262 getLogsDir(),
263 `切换目录迁移失败: 从 ${pending.from} 到 ${pending.to},复制 ${result.copied} 项,跳过 ${result.skipped} 项,错误 ${result.errors.length} 项: ${error}`,
264 ensureDir
265 )
266 return { success: false, error }
267 }
268
269 writeMigrationLog(
270 getLogsDir(),
271 `切换目录迁移成功: 从 ${pending.from} 到 ${pending.to},复制 ${result.copied} 项,跳过 ${result.skipped} 项`,
272 ensureDir
273 )
274 return { success: true }
275}
276
277/**
278 * 清理待删除的旧数据目录(应用启动时调用)

Calls 5

writeMigrationLogFunction · 0.90
readStorageConfigFunction · 0.85
getLogsDirFunction · 0.85
warnMethod · 0.65

Tested by

no test coverage detected