Commit | Line | Data |
8e25eb98 |
1 | package BuildStem; |
4536f655 |
2 | |
3 | use strict; |
8e25eb98 |
4 | use warnings; |
4536f655 |
5 | |
4536f655 |
6 | use Config; |
8e25eb98 |
7 | use File::Basename; |
8 | use File::Spec; |
9 | use IO::File; |
4536f655 |
10 | |
8e25eb98 |
11 | use Module::Build; |
4536f655 |
12 | |
8e25eb98 |
13 | use vars qw(@ISA); |
14 | @ISA = qw(Module::Build); |
4536f655 |
15 | |
4536f655 |
16 | |
17 | sub process_script_files { |
4536f655 |
18 | my ( $self ) = @_ ; |
8e25eb98 |
19 | my $files = $self->find_script_files(); |
20 | return unless keys %$files; |
21 | |
22 | my $script_dir = File::Spec->catdir($self->blib, 'script'); |
23 | my $demo_dir = File::Spec->catdir($self->blib, 'demo'); |
24 | File::Path::mkpath( $script_dir ); |
25 | File::Path::mkpath( $demo_dir ); |
26 | |
27 | foreach my $file (keys %$files) { |
28 | my $dest_dir = $file =~ /_demo$/ ? $demo_dir : $script_dir ; |
29 | my $result = $self->copy_if_modified($file, $dest_dir, 'flatten') or next; |
30 | $self->fix_shebang_line($result) if $self->is_unixish(); |
31 | $self->make_executable($result); |
32 | if ( $result =~ /(?:run_stem$)|(?:_demo$)/ ) { |
33 | my $result2 = $self->copy_if_modified($result, $self->base_dir(), 'flatten') or next; |
34 | $self->add_to_cleanup($result2); |
4536f655 |
35 | } |
36 | } |
8e25eb98 |
37 | return 1; |
4536f655 |
38 | } |
39 | |
8e25eb98 |
40 | sub process_conf_files { |
4536f655 |
41 | my ( $self ) = @_ ; |
8e25eb98 |
42 | my $files = $self->_find_file_by_type('stem','conf'); |
43 | return unless keys %$files; |
4536f655 |
44 | |
8e25eb98 |
45 | my $conf_dir = File::Spec->catdir($self->blib, 'conf'); |
46 | File::Path::mkpath( $conf_dir ); |
4536f655 |
47 | |
8e25eb98 |
48 | foreach my $file (keys %$files) { |
49 | my $result = $self->copy_if_modified($file, $conf_dir, 'flatten') or next; |
50 | $self->fix_shebang_line($result) if $self->is_unixish(); |
4536f655 |
51 | } |
8e25eb98 |
52 | return 1; |
4536f655 |
53 | } |
54 | |
8e25eb98 |
55 | sub find_binary { |
56 | my ( $self, $prog ) = @_ ; |
57 | if ( $self->do_system( "which $prog >/dev/null" ) ) { |
58 | return `which $prog` ; |
4536f655 |
59 | } |
4536f655 |
60 | return; |
61 | } |
62 | |
4536f655 |
63 | |
8e25eb98 |
64 | 1; |