Skip to content

Commit

Permalink
Merge pull request logrhythm#105 from Robert-Weber/shim
Browse files Browse the repository at this point in the history
This accompanies the shim in the Research area, generating the yaml config file and checking what was provided in the remapping file.
  • Loading branch information
weberr13 committed Jan 10, 2014
2 parents 2d6f1da + 57f8083 commit 4f45b20
Show file tree
Hide file tree
Showing 8 changed files with 1,325 additions and 2,622 deletions.
2,790 changes: 218 additions & 2,572 deletions resources/ProtocolDescriptions.csv

Large diffs are not rendered by default.

953 changes: 953 additions & 0 deletions resources/remapping

Large diffs are not rendered by default.

165 changes: 118 additions & 47 deletions scripts/buildDpiMsgLRProto.pl
Original file line number Diff line number Diff line change
Expand Up @@ -2,47 +2,137 @@
#
#
#
use YAML::Any qw(Dump DumpFile);

open qosmosWorkbook, "$ARGV[0]" or die $!;
open previousData, "$ARGV[1]" or die $!;
open filters, "$ARGV[2]" or die $!;
open summaryFile, '>'."$ARGV[3]" or die $!;
seek summaryFile, 0, 0;

my $exludeFilter;
my $includeFilter;
while (<filters>) {
if ($_ =~ m/^(?!#)!(\S+)/ ) {
$excludeFilter .= $1;
} elsif ($_ =~ m/^(?!#)(\S+)/ ) {
$includeFilter .= $1;
sub ReadFilters {
my($filename) = @_;

open filters, "$filename" or die $!;
my $exludeFilter;
my $includeFilter;
while (<filters>) {
if ($_ =~ m/^(?!#)!(\S+)/ ) {
$excludeFilter .= $1;
} elsif ($_ =~ m/^(?!#)(\S+)/ ) {
$includeFilter .= $1;
}
}
close filters;
return ($exludeFilter,$includeFilter);
}
close filters;
#print "Exclude Filter: $excludeFilter \n";
#print "Include Filter: $includeFilter \n";

my @ids;
my @previousFields;
my @previousData;
my @newFields;
my $highest = 1;
my $callbackNames = ",";
while (<previousData>) {
if ($_ =~ m/^(optional|repeated)\s+.*\s+(\w+)\s+=\s+(\d+)\;/) {
push(@ids,$3);
if ( $3 > $highest ) {
$highest = $3;
sub ReadRemappingFile {
my($filename) = @_;

my %renameMapping = ();
open remappingFile, "$filename" or die $!;
while (<remappingFile>) {
if ( $_ =~ m/(\S+)\s+(\S+)/ ) {
$renameMapping{$1} = $2;
}
}
close remappingFile;
return %renameMapping;
}

sub ReadPreviousData {
my($filename) = $_[0];
$highest_ptr = $_[1];
$ids_ptr = $_[2];
$callbackNames_ptr = $_[3];
$previousFields_ptr = $_[4];
$previousData_ptr = $_[5];

$$highest_ptr = 1;
$$callbackNames_ptr = ",";

open previousData, "$filename" or die $!;
while (<previousData>) {
if ($_ =~ m/^(optional|repeated)\s+.*\s+(\w+)\s+=\s+(\d+)\;/) {
push(@$ids_ptr,$3);
if ( $3 > $$highest_ptr ) {
$$highest_ptr = $3;
}
$$callbackNames_ptr .= "$2,";
push(@$previousFields_ptr,$2);
push(@$previousData_ptr,$_);
}
}
close previousData;
}

sub CreateSummaryFile {

my($qosmosFileName,$summaryFileName,$includeFilter,$excludeFilter) = @_;

open qosmosWorkbook, "$qosmosFileName" or die $!;
open summaryFile, '>'."$ARGV[3]" or die $!;
seek summaryFile, 0, 0;

print summaryFile "protocolName,longProtocolName,attributeName,attributeDescription\n";
while (<qosmosWorkbook>) {
if ($_ =~ m/$includeFilter/ && $_ !~ /$excludeFilter/ ) {
my @lineValues = split(/,/,$_);
if ($lineValues[3] eq '' ) {
print summaryFile "base,";
} else {
print summaryFile "$lineValues[3],";
}
if ($lineValues[4] eq '' ) {
print summaryFile "base,";
} else {
print summaryFile "$lineValues[4],";
}
print summaryFile '#'."$lineValues[7],$lineValues[10]\n";
}
}

close qosmosWorkbook;
close summaryFile;
}

sub CheckRenameFile {
my($qosmosFileName,$includeFilter,$excludeFilter,%renameMapping) = @_;

open qosmosWorkbook, "$qosmosFileName" or die $!;

while (<qosmosWorkbook>) {
if ($_ =~ m/$includeFilter/ && $_ !~ /$excludeFilter/ ) {
my @lineValues = split(/,/,$_);
if ( !defined $renameMapping { $lineValues[7] } &&
!defined $renameMapping { "_$lineValues[7]" } ) {
die "Rename file does not account for field $lineValues[7]";
}
}
$callbackNames .= "$2,";
push(@previousFields,$2);
push(@previousData,$_);
}

close qosmosWorkbook;

}

$QosmosWorkBookName = $ARGV[0];
($exludeFilter,$includeFilter) = ReadFilters($ARGV[2]);
(%renameMapping) = ReadRemappingFile($ARGV[4]);
my $renameMap = $ARGV[5];
if ($renameMap eq "" ) {
die "Must name a path to output rename map $ARGV[5] $renameMap" ;
}
close previousData;

#print "$callbackNames\n";
CheckRenameFile($QosmosWorkBookName,$includeFilter,$excludeFilter,%renameMapping);
DumpFile($renameMap,\%renameMapping);
my $highest;
my @ids;
my $callbackNames;
my @previousFields;
my @previousData;
ReadPreviousData($ARGV[1],\$highest, \@ids, \$callbackNames, \@previousFields, \@previousData);
CreateSummaryFile($QosmosWorkBookName,$ARGV[3],$excludeFilter,$includeFilter);

open qosmosWorkbook, "$ARGV[0]" or die $!;
while ( my $line = <qosmosWorkbook>) {
@lineValues = split(/,/,$line);
$field = "$lineValues[7]$lineValues[1]";
Expand All @@ -60,25 +150,6 @@
seek qosmosWorkbook, 0, 0;
#print @previousData;

print summaryFile "protocolName,longProtocolName,attributeName,attributeDescription\n";
while (<qosmosWorkbook>) {
if ($_ =~ m/$includeFilter/ && $_ !~ /$excludeFilter/ ) {
@lineValues = split(/,/,$_);
if ($lineValues[3] eq '' ) {
print summaryFile "base,";
} else {
print summaryFile "$lineValues[3],";
}
if ($lineValues[4] eq '' ) {
print summaryFile "base,";
} else {
print summaryFile "$lineValues[4],";
}
print summaryFile '#'."$lineValues[7],$lineValues[10]\n";
}
}

seek qosmosWorkbook, 0, 0;
while (<qosmosWorkbook>) {
if ($_ =~ m/$includeFilter/ && $_ !~ /$excludeFilter/ ) {
@lineValues = split(/,/,$_);
Expand Down
15 changes: 12 additions & 3 deletions scripts/buildDpiMsgLRProto.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1,13 @@
#!/bin/sh
cat resources/DpiMsgLRproto.protoheader
perl scripts/buildDpiMsgLRProto.pl resources/Qosmos_Protobook.csv protofiles/DpiMsgLRproto.proto.orig resources/ProtocolFilters resources/ProtocolDescriptions.csv | sort -nk 5
cat resources/DpiMsgLRproto.protofooter
set -e
TMPFILE=/tmp/buildDpiMsgLRProto.$BASHPID
TMPFILE2=/tmp/buildDpiMsgLRProto2.$BASHPID

cat resources/DpiMsgLRproto.protoheader > $TMPFILE
perl scripts/buildDpiMsgLRProto.pl resources/Qosmos_Protobook.csv protofiles/DpiMsgLRproto.proto.orig resources/ProtocolFilters resources/ProtocolDescriptions.csv resources/remapping resources/remapping.yaml > $TMPFILE2
sort -nk 5 $TMPFILE2 >> $TMPFILE
cat resources/DpiMsgLRproto.protofooter >> $TMPFILE

cat $TMPFILE
rm $TMPFILE
rm $TMPFILE2
24 changes: 24 additions & 0 deletions scripts/installPerlModules
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/bin/sh

set -e
cd thirdParty
gtar xzf ExtUtils-MakeMaker-6.86.tar.gz
cd ExtUtils-MakeMaker-6.86
perl Makefile.PL
make
make install
cd ..
rm -rf ExtUtils-MakeMaker-6.86
gtar xzf YAML-LibYAML-0.41.tar.gz
cd YAML-LibYAML-0.41
perl Makefile.PL
make
make install
#rm -rf YAML-LibYAML-0.41
cd ..
gtar xzf YAML-0.88.tar.gz
cd YAML-0.88
perl Makefile.PL
make
make install
cd ../..
Binary file added thirdParty/ExtUtils-MakeMaker-6.86.tar.gz
Binary file not shown.
Binary file added thirdParty/YAML-0.88.tar.gz
Binary file not shown.
Binary file added thirdParty/YAML-LibYAML-0.41.tar.gz
Binary file not shown.

0 comments on commit 4f45b20

Please sign in to comment.