View Javadoc
1   package org.argeo.cli.posix;
2   
3   import java.util.List;
4   
5   import org.apache.commons.cli.CommandLine;
6   import org.apache.commons.cli.Option;
7   import org.apache.commons.cli.Options;
8   import org.argeo.cli.DescribedCommand;
9   
10  public class Echo implements DescribedCommand<String> {
11  
12  	@Override
13  	public Options getOptions() {
14  		Options options = new Options();
15  		options.addOption(Option.builder("n").desc("do not output the trailing newline").build());
16  		return options;
17  	}
18  
19  	@Override
20  	public String getDescription() {
21  		return "Display a line of text";
22  	}
23  
24  	@Override
25  	public String getUsage() {
26  		return "[STRING]...";
27  	}
28  
29  	@Override
30  	public String apply(List<String> args) {
31  		CommandLine cl = toCommandLine(args);
32  
33  		StringBuffer sb = new StringBuffer();
34  		for (String s : cl.getArgList()) {
35  			sb.append(s).append(' ');
36  		}
37  
38  		if (cl.hasOption('n')) {
39  			sb.deleteCharAt(sb.length() - 1);
40  		} else {
41  			sb.setCharAt(sb.length() - 1, '\n');
42  		}
43  		return sb.toString();
44  	}
45  
46  }