diff options
Diffstat (limited to '')
| -rwxr-xr-x[-rw-r--r--] | changed_update.pl | 13 | ||||
| -rwxr-xr-x | git-update-changed-param-hook | 38 | 
2 files changed, 46 insertions, 5 deletions
| diff --git a/changed_update.pl b/changed_update.pl index 2e6b733..15f6667 100644..100755 --- a/changed_update.pl +++ b/changed_update.pl @@ -6,8 +6,7 @@ use warnings;  use feature qw/say/;  use DateTime; -my $infile = $ARGV[0] // 'feature-tests/template.pl.copy'; - +my $infile = $ARGV[0] // die "No File provided"; #'feature-tests/template.pl.copy';  my $transform = PPI::Transform::UpdateTimestamp->new    (     updated => DateTime->now, @@ -17,7 +16,10 @@ my $transform = PPI::Transform::UpdateTimestamp->new  my $ret = $transform->file($infile); -say "Return value: " . defined $ret && $ret ? 'success' : 'failure'; +#say "Return value: " .  + +exit (defined $ret && $ret ? 0 : 1); +  package PPI::Transform::UpdateTimestamp; @@ -28,6 +30,7 @@ use warnings;  use PPI;  use PPI::Dumper;  use DateTime; +use Carp qw/carp/;  use base 'PPI::Transform'; @@ -43,7 +46,7 @@ sub new {  	unless ( exists ($self->{updated}) ) {  		#PPI::Exception->throw("Did not provide a valid updated timestamp.");          my $now = DateTime->now(); -        carp "No updated value provided, using $now"; +        carp("No updated value provided, using $now");          $self->set_updated($now);  	} @@ -105,7 +108,7 @@ sub examine_struct {                      if ($val->content eq $self->updated) {                          $ret = 1;                      } -                     +                      say "Thingie: " . $t->content unless $self->quiet;                      say "value set to: " . $val->content unless $self->quiet;                  } diff --git a/git-update-changed-param-hook b/git-update-changed-param-hook new file mode 100755 index 0000000..0407e29 --- /dev/null +++ b/git-update-changed-param-hook @@ -0,0 +1,38 @@ +#!/usr/bin/env perl + +# -*- mode: cperl -*- + + +use strict; +use warnings; +use File::Spec; +use feature qw/say/; + +my $file_cmd = "/usr/bin/file"; +my $git_cmd = "/opt/local/bin/git"; + +my $root_dir = qx/$git_cmd rev-parse --show-toplevel/; +chomp ($root_dir); + +my @changed_files = qx/git status --porcelain -u no/; + +foreach my $file (@changed_files) { +    chomp $file; +    if (is_irssi_script($file)) { +        system(File::Spec->catfile($root_dir, 'changed_update.pl'), $file); +    } +} + + +sub is_irssi_script { +    my ($file) = @_; +    my $full_path = File::Spec->catfile($root_dir, $file); +    return 0 unless -f $full_path; +    my $file_result = system("/usr/bin/grep -s -q '\%IRSSI' 1>/dev/null 2>&1"); +    if ($file_result != 0) { +        return 0; +    } else { +        return 1; +    } +} + | 
