Skip to content

Commit 3158e07

Browse files
znsoftznsoft
authored andcommitted
macos
1 parent 4cb129b commit 3158e07

File tree

5 files changed

+252
-14
lines changed

5 files changed

+252
-14
lines changed

app.go

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -488,6 +488,59 @@ func (a *App) CheckUpdate(currentVersion string) (UpdateResult, error) {
488488
return UpdateResult{HasUpdate: false, LatestVersion: highestVersion}, nil
489489
}
490490

491+
func (a *App) RecoverCC() error {
492+
a.emitRecoverLog("Starting recovery process...")
493+
494+
home, err := os.UserHomeDir()
495+
if err != nil {
496+
a.emitRecoverLog(fmt.Sprintf("Error getting home dir: %v", err))
497+
return err
498+
}
499+
500+
// Remove ~/.claude directory
501+
claudeDir := filepath.Join(home, ".claude")
502+
a.emitRecoverLog(fmt.Sprintf("Checking directory: %s", claudeDir))
503+
if _, err := os.Stat(claudeDir); !os.IsNotExist(err) {
504+
a.emitRecoverLog("Found .claude directory. Removing...")
505+
if err := os.RemoveAll(claudeDir); err != nil {
506+
a.emitRecoverLog(fmt.Sprintf("Failed to remove .claude directory: %v", err))
507+
return fmt.Errorf("failed to remove .claude directory: %w", err)
508+
}
509+
a.emitRecoverLog("Successfully removed .claude directory.")
510+
} else {
511+
a.emitRecoverLog(".claude directory not found, skipping.")
512+
}
513+
514+
// Remove ~/.claude.json file
515+
claudeJsonPath := filepath.Join(home, ".claude.json")
516+
a.emitRecoverLog(fmt.Sprintf("Checking file: %s", claudeJsonPath))
517+
if _, err := os.Stat(claudeJsonPath); !os.IsNotExist(err) {
518+
a.emitRecoverLog("Found .claude.json file. Removing...")
519+
if err := os.Remove(claudeJsonPath); err != nil && !os.IsNotExist(err) {
520+
a.emitRecoverLog(fmt.Sprintf("Failed to remove .claude.json file: %v", err))
521+
return fmt.Errorf("failed to remove .claude.json file: %w", err)
522+
}
523+
a.emitRecoverLog("Successfully removed .claude.json file.")
524+
} else {
525+
a.emitRecoverLog(".claude.json file not found, skipping.")
526+
}
527+
528+
a.emitRecoverLog("Recovery process completed successfully.")
529+
return nil
530+
}
531+
532+
func (a *App) emitRecoverLog(msg string) {
533+
runtime.EventsEmit(a.ctx, "recover-log", msg)
534+
}
535+
536+
func (a *App) ShowMessage(title, message string) {
537+
runtime.MessageDialog(a.ctx, runtime.MessageDialogOptions{
538+
Type: runtime.InfoDialog,
539+
Title: title,
540+
Message: message,
541+
})
542+
}
543+
491544
// compareVersions returns 1 if v1 > v2, -1 if v1 < v2, 0 if equal
492545
func compareVersions(v1, v2 string) int {
493546
parts1 := strings.Split(v1, ".")

0 commit comments

Comments
 (0)