diff options
author | Michael G. Schwern <schwern@pobox.com> | 2012-07-26 17:26:05 -0700 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2012-07-27 22:36:17 +0000 |
commit | 10c2aa5928b5309374bb4328f1c2849cb4ae65cc (patch) | |
tree | 1b68a9b74290241c38952a21f9bd5a03142d1af1 /perl/Git/IndexInfo.pm | |
parent | Load all the modules in one place and before running code. (diff) | |
download | tgif-10c2aa5928b5309374bb4328f1c2849cb4ae65cc.tar.xz |
Move Git::IndexInfo into its own file.
Straight cut & paste. Didn't require any fixing.
Signed-off-by: Eric Wong <normalperson@yhbt.net>
Diffstat (limited to 'perl/Git/IndexInfo.pm')
-rw-r--r-- | perl/Git/IndexInfo.pm | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/perl/Git/IndexInfo.pm b/perl/Git/IndexInfo.pm new file mode 100644 index 0000000000..a43108c985 --- /dev/null +++ b/perl/Git/IndexInfo.pm @@ -0,0 +1,33 @@ +package Git::IndexInfo; +use strict; +use warnings; +use Git qw/command_input_pipe command_close_pipe/; + +sub new { + my ($class) = @_; + my ($gui, $ctx) = command_input_pipe(qw/update-index -z --index-info/); + bless { gui => $gui, ctx => $ctx, nr => 0}, $class; +} + +sub remove { + my ($self, $path) = @_; + if (print { $self->{gui} } '0 ', 0 x 40, "\t", $path, "\0") { + return ++$self->{nr}; + } + undef; +} + +sub update { + my ($self, $mode, $hash, $path) = @_; + if (print { $self->{gui} } $mode, ' ', $hash, "\t", $path, "\0") { + return ++$self->{nr}; + } + undef; +} + +sub DESTROY { + my ($self) = @_; + command_close_pipe($self->{gui}, $self->{ctx}); +} + +1; |