skip notes dir in manifest
[urisagit/Stem.git] / BuildStem.pm
1 package BuildStem;
2
3 use strict;
4 use warnings;
5
6 use Config;
7 use File::Basename;
8 use File::Spec;
9 use IO::File;
10
11 use Module::Build;
12
13 use vars qw(@ISA);
14 @ISA = qw(Module::Build);
15
16
17 sub process_script_files {
18         my ( $self ) = @_ ;
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         my $demo_run_dir = File::Spec->catdir($self->base_dir(), 'demo');
33                 if ( $result =~ /(?:run_stem$)|(?:_demo$)/ ) {
34                         my $result2 = $self->copy_if_modified($result, $demo_run_dir, 'flatten') or next;
35                         $self->add_to_cleanup($result2);
36                 }
37         }
38         return 1;
39 }
40
41 sub process_conf_files {
42         my ( $self ) = @_ ;
43         my $files = $self->_find_file_by_type('stem','conf');
44         return unless keys %$files;
45
46         my $conf_dir = File::Spec->catdir($self->blib, 'conf');
47         File::Path::mkpath( $conf_dir );
48
49         foreach my $file (keys %$files) {
50                 my $result = $self->copy_if_modified($file, $conf_dir, 'flatten') or next;
51                 $self->fix_shebang_line($result) if $self->is_unixish();
52         }
53         return 1;
54 }
55
56 sub find_binary {
57         my ( $self, $prog ) = @_ ;
58         if ( $self->do_system( "which $prog >/dev/null" ) ) {
59                 return `which $prog` ;
60         }
61         return;
62 }
63
64
65 1;