blob: 97a068c61f8ed7efecfcd60ae9bf17778c88160d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
#! /usr/bin/env raku
unit sub MAIN ($dir1 where $dir1.IO.d && $dir1.IO.r = 'dir_a',
$dir2 where $dir2.IO.d && $dir2.IO.r = 'dir_b',
$dir3 where $dir3.IO.d && $dir3.IO.r = 'dir_c',
);
my %dir1 = $dir1.IO.dir.map({ .d ?? .basename ~ '/' !! .basename }).Set;
my %dir2 = $dir2.IO.dir.map({ .d ?? .basename ~ '/' !! .basename }).Set;
my %dir3 = $dir3.IO.dir.map({ .d ?? .basename ~ '/' !! .basename }).Set;
my %all = %dir1 (|) %dir2 (|) %dir3;
my $max-length = (%all.keys>>.chars.max, $dir1.chars, $dir2.chars, $dir3.chars).max;
say "{ $dir1.fmt("%-{$max-length}s") } | { $dir2.fmt("%-{$max-length}s") } | { $dir3.fmt("%-{$max-length}s") }";
say "-" x $max-length * 3 + 6;
for sort keys %all -> $file
{
next if %dir1{$file} && %dir2{$file} && %dir3{$file};
say "{ (%dir1{$file} ?? $file !! '').fmt("%-{$max-length}s") } | "
~ "{ (%dir2{$file} ?? $file !! '').fmt("%-{$max-length}s") } | "
~ "{ (%dir3{$file} ?? $file !! '').fmt("%-{$max-length}s") }";
}
|