diff options
| author | Loek Le Blansch <loek@pipeframe.xyz> | 2024-10-28 15:41:35 +0100 | 
|---|---|---|
| committer | Loek Le Blansch <loek@pipeframe.xyz> | 2024-10-28 15:41:35 +0100 | 
| commit | 3562802cacc8dbd0c155146acfdb8d04c6440009 (patch) | |
| tree | f2139c64c6713d1c59df4b8601c11fca52fa62f5 /frontend/cli.cpp | |
| parent | a070c649ddbe70a22f6265b9f5b48f6bde7eac08 (diff) | |
implement transcript-style log
Diffstat (limited to 'frontend/cli.cpp')
| -rw-r--r-- | frontend/cli.cpp | 21 | 
1 files changed, 12 insertions, 9 deletions
| diff --git a/frontend/cli.cpp b/frontend/cli.cpp index 352de4a..de78bc1 100644 --- a/frontend/cli.cpp +++ b/frontend/cli.cpp @@ -5,31 +5,34 @@  #include <readline/history.h>  #include "cli.h" +#include "frontend/print.h" +#include "strings.h" +#include "cmd.h"  using namespace std; -static void handle_line(const string & line) { -	printf("CMD: %s\n", line.c_str()); -} -  string cli_readline() {  	const char * PROMPT = "> ";  	char * input = readline(PROMPT); -	// ctrl-d -	if (input == NULL) exit(EXIT_SUCCESS); +	SessionLog::get().append(PROMPT); +	if (input == NULL) exit(EXIT_SUCCESS); // ctrl-d  	string out = string(input);  	if (out.size() > 0) add_history(input);  	free(input); +	SessionLog::get().append(out); +	SessionLog::get().append("\n"); +  	return out;  }  void cli_main() {  	while (1) { -		string cmd = cli_readline(); -		if (cmd.size() == 0) continue; -		handle_line(cmd); +		string line = cli_readline(); +		if (line.length() == 0) continue; +		vector<string> argv = split_string(line, " "); +		cmd_handle(argv);  	}  } |