Alias logic altered

master
ettienne 2015-08-07 07:13:18 +00:00
parent 1bdb3717cd
commit 8ff93bc66a
1 changed files with 13 additions and 16 deletions

View File

@ -25,40 +25,37 @@ sub getAliases {
my @files = File::Find::Rule->file()
->name("*.json")
->in(share());
my @results;
my %results;
foreach my $file (@files) {
open my $fh, $file or return;
my $json = do { local $/; <$fh> };
my $data = decode_json($json);
my $filename = File::Basename::fileparse($file);
my $defaultName = $filename;
$defaultName =~ s/-/ /g;
$defaultName =~ s/.json//;
$results{$defaultName} = $filename;
if ($data->{'aliases'}) {
foreach my $alias (@{$data->{'aliases'}}) {
push (@results, $alias);
push (@results, File::Basename::fileparse($file));
$results{$alias} = $filename;
}
}
}
return @results;
return \%results;
}
my %alias = (
getAliases()
);
my $aliases = getAliases();
handle remainder => sub {
# If needed we could jump through a few more hoops to check
# terms against file names.
my $json_path;
open my $fh, share($aliases->{join(' ', split /\s+/o, lc($_))}) or return;
if ($alias{lc($_)}) {
$json_path = share($alias{lc($_)});
} else {
$json_path = share(join('-', split /\s+/o, lc($_) . '.json'));
}
open my $fh, $json_path or return;
my $json = do { local $/; <$fh> };
my $data = decode_json($json);