diff options
author | Ian C <ianc@noddybox.co.uk> | 2018-11-30 16:09:34 +0000 |
---|---|---|
committer | Ian C <ianc@noddybox.co.uk> | 2018-11-30 16:09:34 +0000 |
commit | 6a4bc3d04eca64d9db794b427e6377c8f9a673f6 (patch) | |
tree | 6fcb5228fc1285b877e17bb7c7ff7dfdd81417cd /browse.php | |
parent | a11d6faa7cc1f08c349bf424f8ee8b390dc04f34 (diff) |
Initial working version.
Diffstat (limited to 'browse.php')
-rw-r--r-- | browse.php | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/browse.php b/browse.php new file mode 100644 index 0000000..2b00c60 --- /dev/null +++ b/browse.php @@ -0,0 +1,103 @@ +<?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> |