View Javadoc
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  }