Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl
- use strict;
- use warnings;
- foreach (@ARGV){
- open my $FHIN, '<', $_;
- open my $FHOUT, '>', $_ . '.pm';
- my @path = split/\//;
- my $package = pop @path;
- print $FHOUT "package CDP::$package;\n\n";
- my ($object, @functions);
- foreach (<$FHIN>) {
- chomp;
- ($object, my $function) = split/\./,$_;
- push @functions, $function;
- }
- print_head($FHOUT);
- # print $FHOUT " $_\n" foreach @functions;
- # print_mid($FHOUT);
- print $FHOUT " $_\n" foreach @functions;
- print_tail($FHOUT);
- foreach my $function (@functions) {
- print $FHOUT 'sub ' . $function . " {\n";
- print $FHOUT ' my $client = shift;' ."\n";
- print $FHOUT ' $client->call(';
- print $FHOUT "\'$object.$function\',";
- print $FHOUT '@_);' ."\n";
- print $FHOUT '}' . "\n\n";
- }
- print $FHOUT "\n1;\n";
- print $FHOUT '__END__' . "\n";;
- close $FHIN;
- close $FHOUT;
- }
- sub print_file {
- my ($FHIN, $FHOUT) = @_;
- foreach (<$FHIN>) {
- print $FHOUT $_;
- }
- }
- sub print_head {
- my $FHOUT = shift;
- open my $FHIN, '<', './template/head';
- print_file $FHIN, $FHOUT;
- }
- sub print_mid {
- warn "In mid";
- my $FHOUT = shift;
- open my $FHIN, '<', './tempalte/mid';
- print_file $FHIN, $FHOUT;
- }
- sub print_tail {
- my $FHOUT = shift;
- open my $FHIN, '<', './template/tail';
- print_file $FHIN, $FHOUT;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement