-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathg_METAMASTER.pl
38 lines (34 loc) · 1.2 KB
/
g_METAMASTER.pl
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
28
29
30
31
32
33
34
35
36
37
38
#!/usr/local/bin/perl
use strict; use warnings;
use File::Find::Rule;
############################################################
# METAMASTER - scrape metadata-files to metadata masterfiles
############################################### skrp of MKRX
# this process is io intensive
# format of each metadata masterfile => "file-sha metadata-value\n"
# EXAMPLE: "922440e6b538bc9e7dd72b58084d2712cd770f61f370261f5bf6528b5f8d3083 FreeBSD-10.3-RELEASE-amd64-memstick.img\n" >> NAM
# SETUP #############################################
# ARG1 is the metadata directory
my ($metadata_dir) = @ARGV;
die "ARG1 metadata dir" if (!defined $metadata_dir);
my $rule = File::Find::Rule->file()->start($metadata_dir);
my $nmaster = 'NAM';
open(my $nfd, '>>', $nmaster);
my $pmaster = 'PAT';
open(my $pfd, '>>', $pmaster);
my $zmaster = 'SIZ';
open(my $zfd, '>>', $zmaster);
my $emaster = 'ENC';
open(my $efd, '>>', $emaster);
# POPULATE HASH METAFILES ##################
while (defined(my $file = $rule->match)) {
open(my $fd, '<', $file);
my @f = readline $fd;
chomp @f;
my $fsha = $file =~ s%.*\/%%r;
print $nfd "$fsha $f[0]\n";
print $pfd "$fsha $f[1]\n";
print $zfd "$fsha $f[2]\n";
print $efd "$fsha $f[3]\n";
close $fd;
}