48 lines
821 B
Text
48 lines
821 B
Text
let x_padding = hash["padding"] ?? 50;
|
|
|
|
let header = #{
|
|
x_padding: x_padding,
|
|
out: "",
|
|
append: |suffix| {
|
|
this.out += suffix + "\n";
|
|
},
|
|
append_center: |suffix| {
|
|
|
|
let suffix_len = suffix.len();
|
|
let padding = this.x_padding - suffix_len / 2;
|
|
let fill = "";
|
|
fill.pad(padding, " ");
|
|
|
|
this.out += fill + suffix.to_upper() + fill + "\n";
|
|
},
|
|
append_divider: || {
|
|
let divider = "";
|
|
divider.pad(this.x_padding * 2, "─");
|
|
|
|
this.append(divider);
|
|
},
|
|
open_echo: || {
|
|
this.out += "echo -e '\n";
|
|
},
|
|
close_echo: || {
|
|
this.out += "'";
|
|
},
|
|
to_string: || {
|
|
return this.out;
|
|
}
|
|
};
|
|
|
|
header.open_echo();
|
|
|
|
header.append_divider();
|
|
|
|
|
|
params.for_each(|idx| {
|
|
header.append_center(this);
|
|
});
|
|
|
|
header.append_divider();
|
|
header.close_echo();
|
|
|
|
return header.to_string();
|
|
|