// Shell command can have control codes. Some of these mean colours.
function convertTerminalCodeToHtml(line) {
let htmlline = "";
let open_spans = 0;
for(let i = 0; i < line.length; i++) {
if(line[i] == '\033') {
let code = line[++i]
if(code == '[') {
// This means it's a colour
let colour_code = "";
for(i++; i < line.length && line[i] != 'm'; i++) {
colour_code += line[i];
}
colour_code = parseInt(colour_code);
if(colour_code === 0) {
for(let i = 0; i < open_spans; i++) {
htmlline += "";
}
open_spans = 0;
}
else if(colour_code >= 30 && colour_code <= 37) {
htmlline += '';
open_spans++;
}
else if(colour_code >= 90 && colour_code <= 97) {
htmlline += '';
open_spans++;
}
}
}
else if(line[i] == '<') {
htmlline += "<"
}
else if(line[i] == '>') {
htmlline += ">"
}
else if(line[i] == '&') {
htmlline += "&"
}
else {
htmlline += line[i];
}
}
for(let i = 0; i < open_spans; i++) {
htmlline += "";
}
return htmlline
}
// Shell command can have control codes. Some of these mean colours.
function convertDaemonedCodeToHtml(line) {
let htmlline = "";
let open_spans = 0;
for(let i = 0; i < line.length; i++) {
if(line[i] == '^') {
let code = line[++i]
for(let i = 0; i < open_spans; i++) {
htmlline += "";
}
open_spans = 0;
if(code == 'N') {
htmlline += '';
open_spans++;
}
else {
let colour_code = parseInt(code);
if(colour_code >= 0) {
htmlline += '';
open_spans++;
}
}
}
else if(line[i] == '<') {
htmlline += "<"
}
else if(line[i] == '>') {
htmlline += ">"
}
else if(line[i] == '&') {
htmlline += "&"
}
else {
htmlline += line[i];
}
}
for(let i = 0; i < open_spans; i++) {
htmlline += "";
}
return htmlline
}