1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-11-05 04:50:35 +03:00
Files
mariadb-columnstore-engine/net-snmp/net-snmp-5.2.1.2/perl/agent/default_store/gen
2016-01-06 14:08:59 -06:00

117 lines
2.0 KiB
Perl
Executable File

#!/usr/bin/perl
system("grep 'define NETSNMP_DS_' ../../../include/net-snmp/agent/ds_agent.h > ds_agent.h");
system("h2xs -n NetSNMP::agent::default_store -O ds_agent.h");
open(ORIG,"default_store.xs");
open(NEW,"NetSNMP/agent/default_store/default_store.xs");
open(OUT,">default_store_new.xs");
# get up to the include from the original file
while(<ORIG>) {
print OUT;
last if (/include <net-snmp\/agent\/ds_agent.h/);
}
# skip up to the include from the original file
while(<NEW>) {
last if (/include <ds_agent.h>/);
}
# include the entire new file
print OUT <NEW>;
close(OUT);
#
# generate test
#
open(H,"ds_agent.h");
open(ORIG,"test.pl");
open(OUT,">test.pl.new");
while(<ORIG>) {
print OUT;
last if (/\%tests =/);
}
while(<H>) {
if (/define\s+(\w+)\s+(\d+)/) {
printf OUT (" %-40s => %d,\n", "\"$1\"", $2);
$tokenlist .= " $1\n";
}
}
while(<ORIG>) {
last if (/\);/);
}
print OUT;
print OUT <ORIG>;
close(OUT);
#
# modify the perl module itself
#
open(ORIG,"default_store.pm");
open(OUT,">default_store_new.pm");
# first list
while(<ORIG>) {
print OUT;
last if (/\%EXPORT_TAGS =/);
}
print OUT $tokenlist;
while(<ORIG>) {
last if (/\) \] \);/);
}
print OUT;
# second list
while(<ORIG>) {
print OUT;
last if (/\@EXPORT =/);
}
print OUT $tokenlist;
while(<ORIG>) {
last if (/\);/);
}
print OUT;
# last section
while(<ORIG>) {
print OUT;
last if (/head2 Exportable constants/);
}
print OUT "\n";
print OUT $tokenlist;
while(<ORIG>) {
last if (/^\s*$/);
}
print OUT;
# tail end
print OUT <ORIG>;
close(OUT);
#
# install new files
#
print "updated test.pl\n";
rename("test.pl","test.pl.bak");
rename("test.pl.new","test.pl");
print "updated default_store.pm\n";
rename("default_store.pm", "default_store.pm.bak");
rename("default_store_new.pm", "default_store.pm");
print "updated default_store.xs\n";
rename("default_store.xs", "default_store.xs.bak");
rename("default_store_new.xs", "default_store.xs");
#
# remove the temp files.
#
system("rm -rf NetSNMP");
unlink("ds_agent.h");