Changeset 3179
- Timestamp:
- 03/04/09 10:54:32 (3 years ago)
- Location:
- trunk/Padre-Plugin-SVK
- Files:
-
- 2 edited
-
Changes (modified) (1 diff)
-
lib/Padre/Plugin/SVK.pm (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Padre-Plugin-SVK/Changes
r3153 r3179 1 1 Revision history for Padre-Plugin-SVK 2 2 3 0.01 3 0.02 4 Add Padre and SVK as dependency 5 Add status of this directory and this project. 6 7 0.01 2009.03.03 4 8 First version, released on an unsuspecting world. 5 9 -
trunk/Padre-Plugin-SVK/lib/Padre/Plugin/SVK.pm
r3153 r3179 9 9 use Padre::Plugin (); 10 10 11 use Capture::Tiny qw(capture_merged); 11 use Capture::Tiny qw(capture_merged); 12 use File::Basename (); 13 use File::Spec; 12 14 13 15 our $VERSION = '0.01'; … … 69 71 'About' => sub { $self->show_about }, 70 72 'Commit' => sub { $self->svk_commit }, 71 'Status' => sub { $self->svk_status }, 73 'Status of File' => sub { $self->svk_status_of_file }, 74 'Status of Dir' => sub { $self->svk_status_of_dir }, 75 'Status of Project' => sub { $self->svk_status_of_project }, 72 76 ]; 73 77 } … … 115 119 116 120 sub svk_status { 121 my ($self, $path) = @_; 122 123 my $main = Padre->ide->wx->main; 124 my $out = capture_merged(sub { system "svk status $path" }); 125 $main->message($out, "SVK Status of $path"); 126 return; 127 } 128 sub svk_status_of_file { 117 129 my ($self) = @_; 118 130 119 131 my $main = Padre->ide->wx->main; 120 132 my $doc = $main->current->document; 121 my $filename = $doc->filename; 122 my $out = capture_merged(sub { system "svk status $filename" }); 123 $main->message($out, "SVK Status of $filename"); 133 return $main->error("No document found") if not $doc; 134 $self->svk_status($doc->filename); 124 135 return; 125 136 } 137 sub svk_status_of_dir { 138 my ($self) = @_; 139 140 my $main = Padre->ide->wx->main; 141 my $doc = $main->current->document; 142 return $main->error("No document found") if not $doc; 143 my $filename = $doc->filename; 144 $self->svk_status(File::Basename::dirname($filename)); 145 146 return; 147 } 148 149 # TODO guess current project 150 sub svk_status_of_project { 151 my ($self) = @_; 152 153 my $main = Padre->ide->wx->main; 154 my $doc = $main->current->document; 155 return $main->error("No document found") if not $doc; 156 my $filename = $doc->filename; 157 return $main->error("File type not yet supported") if not $filename =~ /\.pm$/; 158 my $olddir = File::Basename::dirname($filename); 159 my $dir = File::Basename::dirname($olddir); 160 print "DIR: $olddir\n $dir\n"; 161 while (1) { 162 last if $olddir eq $dir; 163 last if -e File::Spec->catfile($dir, 'Makefile.PL'); 164 last if -e File::Spec->catfile($dir, 'Build.PL'); 165 print "trying $dir\n"; 166 $olddir = $dir; 167 $dir = File::Basename::dirname($dir); 168 } 169 return $main->error("Could not find project root") if $dir eq $olddir; 170 $self->svk_status($dir); 171 172 return; 173 } 174 126 175 127 176 1;
Note: See TracChangeset
for help on using the changeset viewer.
