<?php /* svnbrowse - simple SVN browser Copyright (C) 2018 Ian Cowburn This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ require 'config.php'; require 'common.php'; $url = Sanatise($_REQUEST['u']); $name = Sanatise($_REQUEST['n']); $path = Sanatise($_REQUEST['p']); ?> <html> <head> <title><?php echo $name;?></title> <link href="css/main.css" rel="stylesheet" id="stylelink"> </head> <body> <h3 class="left"><?php echo $name;?></h3> <?php global $config; if ($path == '/') { echo '<div class="right">'; echo '<a href="index.php">(Parent)</a>'; echo '</div>'; } else { echo '<div class="right">'; echo '<a href="browse.php'; echo '?u=', $url; echo '&n=', $name; echo '&p=', dirname($path); echo '" title="Parent Directory">'; echo '(Parent)</a>'; echo '</div>'; } $cmd = $config['svn'] . ' ls --non-interactive ' . '--username=' . $config['username'] . ' ' . '--password=' . $config['password'] . ' ' . escapeshellarg($url . $path); $proc = popen($cmd, 'r'); while (($line = fgets($proc)) !== false) { $line = trim($line); $is_dir = EndsWith($line, '/'); echo '<div class="right">'; if ($is_dir) { echo '<a href="browse.php'; echo '?u=', $url; echo '&n=', $name; echo '&p=', $path, $line; echo '" title="', $line, '">'; echo $line, '</a>'; } else { echo '<a href="cat.php'; echo '?u=', $url . $path . $line; echo '" title="', $line, '">'; echo $line, '</a>'; } echo ' (<a href="log.php'; echo '?u=', $url . $path . $line; echo '">log</a>)'; echo '</div>'; } pclose($proc); ?> </body> </html>