1 package io.github.magwas.coder.command;
2
3 import java.io.IOException;
4 import java.nio.file.Files;
5 import java.nio.file.Path;
6 import java.util.List;
7
8 import org.springframework.stereotype.Service;
9
10 @Service
11 public class SystemInstructionsCommandService implements ProcessingStepService {
12
13 @Override
14 public ProcessingContextData apply(ProcessingContextData context, List<String> args) {
15 if (args.size() < 2)
16 return new ProcessingContextData(500, "usage: systemInstructions filename*", context.meta());
17 StringBuilder sb = new StringBuilder();
18 for (String file : args.subList(1, args.size())) {
19 try {
20 Path instructionsFile = Path.of(System.getProperty("user.home"), ".coder", file);
21 if (Files.exists(instructionsFile)) {
22 sb.append(Files.readString(instructionsFile)).append("\n");
23 }
24 } catch (IOException e) {
25 return new ProcessingContextData(500, "not found: " + file, context.meta());
26 }
27 }
28 return new ProcessingContextData(200, sb.toString().trim(), context.meta());
29 }
30 }