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 39 40 41 42 43 44 45 46 47
|
#!/usr/bin/env perl
use strict;
use warnings;
use lib 'inc';
use lib 'lib';
use FFI::Probe;
use FFI::Probe::Runner;
use FFI::Probe::Runner::Builder;
use My::BuildConfig;
use File::Temp;
use Path::Tiny qw( path );
my $dir = FFI::Temp->newdir;
my $data_filename = path( $dir, 'probe.pl' );
my $log_filename = path( $dir, 'config.log' );
my $probe = FFI::Probe->new(
runner => do {
my $builder = FFI::Probe::Runner::Builder->new;
my $exe = $builder->exe;
FFI::Probe::Runner->new( exe => $exe );
},
log => "$log_filename",
data_filename => "$data_filename",
alien => [My::BuildConfig->new->get('alien')->{class}],
cflags => ['-Iinclude'],
);
my $name = shift @ARGV;
$name ||= 'recordvalue'; # this is what I am strugling with right this minute.
my $fn = "inc/probe/$name.c";
my $code = do {
my $fh;
open $fh, '<', $fn;
local $/;
<$fh>;
};
my $value = $probe->check($name, $code);
$probe->save;
print "[log]\n";
print $log_filename->slurp;
print "[data]\n";
print $data_filename->slurp;
|