path := filepath.Join(dir, "config.json")
data, err := os.ReadFile(path)
if errors.Is(err, os.ErrNotExist) {
- return createAgent(dir)
+ agent, err := createAgent(dir)
+ if err != nil {
+ return agent, fmt.Errorf("create agent: %w", err)
+ }
+
+ return agent, nil
}
if err != nil {
config, err := defaultAgentConfig()
if err != nil {
- return nil, err
+ return nil, fmt.Errorf("prepare agent defaults: %w", err)
}
decoder := json.NewDecoder(bytes.NewReader(data))
func createAgent(dir string) (*Agent, error) {
config, err := defaultAgentConfig()
if err != nil {
- return nil, err
+ return nil, fmt.Errorf("prepare agent defaults: %w", err)
+ }
+
+ agent, err := writeAgent(dir, config)
+ if err != nil {
+ return agent, fmt.Errorf("write new agent: %w", err)
}
- return writeAgent(dir, config)
+ return agent, nil
}
// defaultAgentConfig returns the settings of a new agent, without an ID. The