|
Packit |
fcad23 |
#!/bin/perl
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
# steps:
|
|
Packit |
fcad23 |
# 1) run configure
|
|
Packit |
fcad23 |
# 2) perl local/minimalist/remove-unneeded-modules
|
|
Packit |
fcad23 |
# 3) make depend
|
|
Packit |
fcad23 |
# 4) make
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
use File::Find;
|
|
Packit |
fcad23 |
use Data::Dumper;
|
|
Packit |
fcad23 |
use strict;
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
my %exceptions = qw(
|
|
Packit |
fcad23 |
agent/mibgroup/mibdefs.h 1
|
|
Packit |
fcad23 |
agent/mibgroup/struct.h 1
|
|
Packit |
fcad23 |
agent/mibgroup/agentx/protocol.h 1
|
|
Packit |
fcad23 |
agent/mibgroup/agentx/agentx_config.h 1
|
|
Packit |
fcad23 |
agent/mibgroup/agentx/subagent.h 1
|
|
Packit |
fcad23 |
agent/mibgroup/mib_module_includes.h 1
|
|
Packit |
fcad23 |
agent/mibgroup/mib_module_inits.h 1
|
|
Packit |
fcad23 |
agent/mibgroup/mib_module_dot_conf.h 1
|
|
Packit |
fcad23 |
agent/mibgroup/mib_module_shutdown.h 1
|
|
Packit |
fcad23 |
agent/mibgroup/agent_module_includes.h 1
|
|
Packit |
fcad23 |
agent/mibgroup/agent_module_inits.h 1
|
|
Packit |
fcad23 |
agent/mibgroup/agent_module_dot_conf.h 1
|
|
Packit |
fcad23 |
agent/mibgroup/agent_module_shutdown.h 1
|
|
Packit |
fcad23 |
agent/mibgroup/mibII/vacm_conf.c 1
|
|
Packit |
fcad23 |
agent/mibgroup/snmpv3/usmConf.c 1
|
|
Packit |
fcad23 |
agent/mibgroup/utilities/iquery.c 1
|
|
Packit |
fcad23 |
agent/mibgroup/mibII/vacm_conf.h 1
|
|
Packit |
fcad23 |
agent/mibgroup/snmpv3/usmConf.h 1
|
|
Packit |
fcad23 |
agent/mibgroup/utilities/iquery.h 1
|
|
Packit |
fcad23 |
agent/mibgroup/util_funcs/MIB_STATS_CACHE_TIMEOUT.h 1
|
|
Packit |
fcad23 |
agent/mibgroup/host_res.h 1
|
|
Packit |
fcad23 |
agent/mibgroup/hr_filesys.h 1
|
|
Packit |
fcad23 |
agent/mibgroup/if-mib/ifTable/ifTable_defs.h 1
|
|
Packit |
fcad23 |
agent/mibgroup/ifTable_defs.h 1
|
|
Packit |
fcad23 |
agent/mibgroup/mibII/mibII_common.h 1
|
|
Packit |
fcad23 |
agent/mibgroup/mnttypes.h 1
|
|
Packit |
fcad23 |
agent/mibgroup/utilities/execute.h 1
|
|
Packit |
fcad23 |
);
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
my %opts;
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
LocalGetOptions(\%opts,
|
|
Packit |
fcad23 |
['n|dry-run', "Dry-run, just say what you would do"],
|
|
Packit |
fcad23 |
['v|verbose', "Show what files are being left too"],
|
|
Packit |
fcad23 |
);
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
my $inputMakefile = $ARGV[0] || "agent/mibgroup/Makefile";
|
|
Packit |
fcad23 |
my $inputDir = $ARGV[1] || "agent/mibgroup";
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
my $collecting = 0;
|
|
Packit |
fcad23 |
my (%files, @files);
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
open(I, $inputMakefile);
|
|
Packit |
fcad23 |
while() {
|
|
Packit |
fcad23 |
if (/mib_module_list_c=/) {
|
|
Packit |
fcad23 |
$collecting = 1;
|
|
Packit |
fcad23 |
} elsif ($collecting) {
|
|
Packit |
fcad23 |
if (! /\\\s*$/) {
|
|
Packit |
fcad23 |
$collecting = 0;
|
|
Packit |
fcad23 |
}
|
|
Packit |
fcad23 |
chomp();
|
|
Packit |
fcad23 |
s/\\//;
|
|
Packit |
fcad23 |
s/\s*//g;
|
|
Packit |
fcad23 |
s/\.c//;
|
|
Packit |
fcad23 |
push @files, "agent/mibgroup/$_";
|
|
Packit |
fcad23 |
$files{"agent/mibgroup/$_.c"} = 1;
|
|
Packit |
fcad23 |
$files{"agent/mibgroup/$_.h"} = 1;
|
|
Packit |
fcad23 |
}
|
|
Packit |
fcad23 |
}
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
find(\&remove_files, $inputDir);
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
sub remove_files {
|
|
Packit |
fcad23 |
return if (!/\.[ch]$/);
|
|
Packit |
fcad23 |
return if (/\.h$/); # XXX: we need to delete headers eventually too
|
|
Packit |
fcad23 |
return if (/_constants.h/);
|
|
Packit |
fcad23 |
return if (exists($exceptions{$File::Find::name}));
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
if (!exists($files{$File::Find::name})) {
|
|
Packit |
fcad23 |
Unlink($_, $File::Find::name);
|
|
Packit |
fcad23 |
} elsif ($opts{'v'}) {
|
|
Packit |
fcad23 |
print "Leaving $File::Find::name\n";
|
|
Packit |
fcad23 |
}
|
|
Packit |
fcad23 |
}
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
sub Unlink {
|
|
Packit |
fcad23 |
my ($file, $fullfile) = @_;
|
|
Packit |
fcad23 |
print "Removing $fullfile\n";
|
|
Packit |
fcad23 |
if (!$opts{'n'}) {
|
|
Packit |
fcad23 |
unlink($file);
|
|
Packit |
fcad23 |
if (-f "$file") {
|
|
Packit |
fcad23 |
print "*** FAILED to remove $file\n";
|
|
Packit |
fcad23 |
}
|
|
Packit |
fcad23 |
}
|
|
Packit |
fcad23 |
}
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
sub LocalGetOptions {
|
|
Packit |
fcad23 |
if (eval {require Getopt::GUI::Long;}) {
|
|
Packit |
fcad23 |
import Getopt::GUI::Long;
|
|
Packit |
fcad23 |
# optional configure call
|
|
Packit |
fcad23 |
my @gopts = qw(no_ignore_case no_gui allow_zero);
|
|
Packit |
fcad23 |
if ($Getopt::GUI::Long::VERSION > 0.2) {
|
|
Packit |
fcad23 |
push @gopts, qw(display_help capture_output);
|
|
Packit |
fcad23 |
}
|
|
Packit |
fcad23 |
Getopt::GUI::Long::Configure(@gopts);
|
|
Packit |
fcad23 |
return GetOptions(@_);
|
|
Packit |
fcad23 |
}
|
|
Packit |
fcad23 |
require Getopt::Long;
|
|
Packit |
fcad23 |
import Getopt::Long;
|
|
Packit |
fcad23 |
# optional configure call
|
|
Packit |
fcad23 |
Getopt::Long::Configure(qw(display_help no_ignore_case capture_output));
|
|
Packit |
fcad23 |
GetOptions(LocalOptionsMap(@_));
|
|
Packit |
fcad23 |
}
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
sub LocalOptionsMap {
|
|
Packit |
fcad23 |
my ($st, $cb, @opts) = ((ref($_[0]) eq 'HASH')
|
|
Packit |
fcad23 |
? (1, 1, $_[0]) : (0, 2));
|
|
Packit |
fcad23 |
for (my $i = $st; $i <= $#_; $i += $cb) {
|
|
Packit |
fcad23 |
if ($_[$i]) {
|
|
Packit |
fcad23 |
next if (ref($_[$i]) eq 'ARRAY' && $_[$i][0] =~ /^GUI:/);
|
|
Packit |
fcad23 |
push @opts, ((ref($_[$i]) eq 'ARRAY') ? $_[$i][0] : $_[$i]);
|
|
Packit |
fcad23 |
push @opts, $_[$i+1] if ($cb == 2);
|
|
Packit |
fcad23 |
}
|
|
Packit |
fcad23 |
}
|
|
Packit |
fcad23 |
return @opts;
|
|
Packit |
fcad23 |
}
|