summaryrefslogtreecommitdiffstats
path: root/web/lib
diff options
context:
space:
mode:
Diffstat (limited to 'web/lib')
-rw-r--r--web/lib/aur.inc18
1 files changed, 15 insertions, 3 deletions
diff --git a/web/lib/aur.inc b/web/lib/aur.inc
index a6292ca..835b8a8 100644
--- a/web/lib/aur.inc
+++ b/web/lib/aur.inc
@@ -348,11 +348,23 @@ function can_submit_pkg($name="", $sid="") {
# recursive delete directory
#
-function rm_rf($dirname="") {
- if ($dirname != "") {
- exec('rm -rf ' . escapeshellcmd($dirname));
+function rm_tree($dirname) {
+ if (empty($dirname) || !is_dir($dirname)) return;
+
+ foreach (scandir($dirname) as $item) {
+ if ($item != '.' && $item != '..') {
+ $path = $dirname . '/' . $item;
+ if (is_file($path) || is_link($path)) {
+ unlink($path);
+ }
+ else {
+ rm_tree($path);
+ }
+ }
}
+ rmdir($dirname);
+
return;
}