Checksumcolor: Difference between revisions

Content added Content deleted
(Added Go)
(→‎{{header|Perl 6}}: Add a Perl 6 example)
Line 214: Line 214:
<span style="color:#A00">b25</span><span style="color:#AA0">9b2</span><span style="color:#A00">936</span><span style="color:#AA0">bb4</span><span style="color:#A00">600</span><span style="color:#0AA">9be</span><span style="color:#0A0">3f5</span><span style="color:#AA0">cc0</span><span style="color:#0A0">6a12c3</span>2d coreutils-8.30.tar.gz
<span style="color:#A00">b25</span><span style="color:#AA0">9b2</span><span style="color:#A00">936</span><span style="color:#AA0">bb4</span><span style="color:#A00">600</span><span style="color:#0AA">9be</span><span style="color:#0A0">3f5</span><span style="color:#AA0">cc0</span><span style="color:#0A0">6a12c3</span>2d coreutils-8.30.tar.gz
<span style="color:#00A">03c</span><span style="color:#A00">f26420</span><span style="color:#AA0">de5</span><span style="color:#00A">66c306</span><span style="color:#A00">d34</span><span style="color:#0AA">0df</span><span style="color:#00A">52f</span><span style="color:#0AA">6cc</span>d7 coreutils-8.31.tar.gz
<span style="color:#00A">03c</span><span style="color:#A00">f26420</span><span style="color:#AA0">de5</span><span style="color:#00A">66c306</span><span style="color:#A00">d34</span><span style="color:#0AA">0df</span><span style="color:#00A">52f</span><span style="color:#0AA">6cc</span>d7 coreutils-8.31.tar.gz

=={{header|Perl 6}}==
{{works with|Rakudo|2019.03}}
To determine the colors, rather than breaking the md5sum into groups of 3 characters, (which leaves two lonely character at the end), I elected to replicate the first 5 characters onto the end, then for each character, used it and the 5 characters following as a true-color index. I also added an option to output as HTML code for ease of pasting in here.

<lang perl6>unit sub MAIN ($mode = 'ANSI');

if $*OUT.t or $mode eq 'HTML' {
say '<div style="background-color:black;">' if $mode eq 'HTML';

while my $line = get() {
my $cs = $line.words[0];
my $css = $cs ~ $cs.substr(0,5);
given $mode {
when 'ANSI' {
print "\e[48;5;232m";
.print for $css.comb.rotor(6 => -5)>>.map({ ($^a, $^b).join })\
.map( { sprintf "\e[38;2;%d;%d;%dm", |$_».parse-base(16) } ) Z~ $css.comb;
say "\e[0m {$line.words[1..*]}";
}
when 'HTML' {
print "$_\</span>" for $css.comb.rotor(6 => -5)\
.map( { sprintf "<span style=\"color:#%s;\">", $_.join } ) Z~ $css.comb;
say " <span style=\"color:#ffffff\">{$line.words[1..*]}</span>";
say '</br>';
}
default { say $line; }
}
}

say '</div>' if $mode eq 'HTML';
} else {
.say while $_ = get();
}</lang>

Can't really show the ANSI output directly so show the HTML output. Essentially identical.

{{out}}
<pre>md5sum *.p6 | perl6 checksum-color.p6 HTML > checksum-color.html</pre>
yields:

<div style="background-color:black;">
<span style="color:#0f59c9;">0</span><span style="color:#f59c93;">f</span><span style="color:#59c935;">5</span><span style="color:#9c9355;">9</span><span style="color:#c93551;">c</span><span style="color:#935511;">9</span><span style="color:#355117;">3</span><span style="color:#551175;">5</span><span style="color:#511754;">5</span><span style="color:#117540;">1</span><span style="color:#17540f;">1</span><span style="color:#7540fb;">7</span><span style="color:#540fb2;">5</span><span style="color:#40fb26;">4</span><span style="color:#0fb263;">0</span><span style="color:#fb263b;">f</span><span style="color:#b263b6;">b</span><span style="color:#263b6c;">2</span><span style="color:#63b6c6;">6</span><span style="color:#3b6c6c;">3</span><span style="color:#b6c6c4;">b</span><span style="color:#6c6c4d;">6</span><span style="color:#c6c4d1;">c</span><span style="color:#6c4d1c;">6</span><span style="color:#c4d1cf;">c</span><span style="color:#4d1cf1;">4</span><span style="color:#d1cf19;">d</span><span style="color:#1cf190;">1</span><span style="color:#cf190f;">c</span><span style="color:#f190f5;">f</span><span style="color:#190f59;">1</span><span style="color:#90f59c;">9</span> <span style="color:#ffffff">checksum-color (another copy).p6</span>
<br>
<span style="color:#0f59c9;">0</span><span style="color:#f59c93;">f</span><span style="color:#59c935;">5</span><span style="color:#9c9355;">9</span><span style="color:#c93551;">c</span><span style="color:#935511;">9</span><span style="color:#355117;">3</span><span style="color:#551175;">5</span><span style="color:#511754;">5</span><span style="color:#117540;">1</span><span style="color:#17540f;">1</span><span style="color:#7540fb;">7</span><span style="color:#540fb2;">5</span><span style="color:#40fb26;">4</span><span style="color:#0fb263;">0</span><span style="color:#fb263b;">f</span><span style="color:#b263b6;">b</span><span style="color:#263b6c;">2</span><span style="color:#63b6c6;">6</span><span style="color:#3b6c6c;">3</span><span style="color:#b6c6c4;">b</span><span style="color:#6c6c4d;">6</span><span style="color:#c6c4d1;">c</span><span style="color:#6c4d1c;">6</span><span style="color:#c4d1cf;">c</span><span style="color:#4d1cf1;">4</span><span style="color:#d1cf19;">d</span><span style="color:#1cf190;">1</span><span style="color:#cf190f;">c</span><span style="color:#f190f5;">f</span><span style="color:#190f59;">1</span><span style="color:#90f59c;">9</span> <span style="color:#ffffff">checksum-color (copy).p6</span>
<br>
<span style="color:#0f59c9;">0</span><span style="color:#f59c93;">f</span><span style="color:#59c935;">5</span><span style="color:#9c9355;">9</span><span style="color:#c93551;">c</span><span style="color:#935511;">9</span><span style="color:#355117;">3</span><span style="color:#551175;">5</span><span style="color:#511754;">5</span><span style="color:#117540;">1</span><span style="color:#17540f;">1</span><span style="color:#7540fb;">7</span><span style="color:#540fb2;">5</span><span style="color:#40fb26;">4</span><span style="color:#0fb263;">0</span><span style="color:#fb263b;">f</span><span style="color:#b263b6;">b</span><span style="color:#263b6c;">2</span><span style="color:#63b6c6;">6</span><span style="color:#3b6c6c;">3</span><span style="color:#b6c6c4;">b</span><span style="color:#6c6c4d;">6</span><span style="color:#c6c4d1;">c</span><span style="color:#6c4d1c;">6</span><span style="color:#c4d1cf;">c</span><span style="color:#4d1cf1;">4</span><span style="color:#d1cf19;">d</span><span style="color:#1cf190;">1</span><span style="color:#cf190f;">c</span><span style="color:#f190f5;">f</span><span style="color:#190f59;">1</span><span style="color:#90f59c;">9</span> <span style="color:#ffffff">checksum-color.p6</span>
<br>
<span style="color:#bbd8a9;">b</span><span style="color:#bd8a92;">b</span><span style="color:#d8a92c;">d</span><span style="color:#8a92c3;">8</span><span style="color:#a92c32;">a</span><span style="color:#92c326;">9</span><span style="color:#2c326c;">2</span><span style="color:#c326c8;">c</span><span style="color:#326c8a;">3</span><span style="color:#26c8a3;">2</span><span style="color:#6c8a35;">6</span><span style="color:#c8a35e;">c</span><span style="color:#8a35e8;">8</span><span style="color:#a35e80;">a</span><span style="color:#35e80d;">3</span><span style="color:#5e80d2;">5</span><span style="color:#e80d2d;">e</span><span style="color:#80d2d7;">8</span><span style="color:#0d2d71;">0</span><span style="color:#d2d71a;">d</span><span style="color:#2d71ab;">2</span><span style="color:#d71ab8;">d</span><span style="color:#71ab89;">7</span><span style="color:#1ab890;">1</span><span style="color:#ab8902;">a</span><span style="color:#b8902c;">b</span><span style="color:#8902cd;">8</span><span style="color:#902cdb;">9</span><span style="color:#02cdbb;">0</span><span style="color:#2cdbbd;">2</span><span style="color:#cdbbd8;">c</span><span style="color:#dbbd8a;">d</span> <span style="color:#ffffff">something-competely-different.p6</span>
<br>
</div>