<% use File::Basename (); # API my $api = gitprep_api; # Git my $git = $self->app->git; # Parameters my $user = param('user'); my $project = param('project'); my $rev_file = param('rev_file'); my ($rev, $file) = $git->parse_rev_path(app->rep_info($user, $project), $rev_file); my $file_base = File::Basename::basename $file; # Blob lines my $lines = $git->blob(app->rep_info($user, $project), $rev, '.gitmodules'); my $submodule_rep_url; my $match; my $file_q = quotemeta $file; for my $line (@$lines) { $line =~ s/\r//; $line =~ s/\n//; if ($match) { if ($line =~ /url += +(.+)/) { $submodule_rep_url = $1; last; } } elsif ($line =~ /path += +$file_q( +|$)/) { $match = 1; }; } # Variables for included template stash id => $rev; stash project => $project; stash rev => $rev; layout 'common' , title => "$project/$file at $rev \x{30fb} $user/$project"; %> %= include '/include/header';
%= include '/include/page_path', type => 'blob', Path => $file;
<%= $file_base %> [submodule]
% if ($submodule_rep_url) { % if ($submodule_rep_url =~ /^http/) { <%= $submodule_rep_url %> % } else { <%= $submodule_rep_url %> % } % }
%= include '/include/footer';