MCPcopy Create free account
hub / github.com/alecthomas/devtodo2 / save

Method save

mcp/server.go:78–106  ·  view source on GitHub ↗
(tasks devtodo2.TaskList)

Source from the content-addressed store, hash-verified

76}
77
78func (s *Server) save(tasks devtodo2.TaskList) error {
79 path := s.file
80 previous := path + "~"
81 temp := path + "~~"
82
83 f, err := os.Create(temp)
84 if err != nil {
85 return fmt.Errorf("create temp file: %w", err)
86 }
87
88 if err := devtodo2.NewJSONIO().Serialize(f, tasks); err != nil {
89 f.Close()
90 os.Remove(temp)
91 return fmt.Errorf("serialize: %w", err)
92 }
93
94 if err := f.Close(); err != nil {
95 os.Remove(temp)
96 return fmt.Errorf("close temp file: %w", err)
97 }
98
99 if _, err := os.Stat(path); err == nil {
100 if err := os.Rename(path, previous); err != nil {
101 return fmt.Errorf("backup: %w", err)
102 }
103 }
104
105 return os.Rename(temp, path)
106}
107
108func (s *Server) registerTools() {
109 type ListArgs struct {

Callers 6

handleAddMethod · 0.95
handleDoneMethod · 0.95
handleUndoneMethod · 0.95
handleEditMethod · 0.95
handleRemoveMethod · 0.95
handleReparentMethod · 0.95

Calls 3

NewJSONIOFunction · 0.92
CreateMethod · 0.65
SerializeMethod · 0.65

Tested by

no test coverage detected