X-Git-Url: http://git.plutz.net/?a=blobdiff_plain;f=pages%2Ftree.sh;fp=pages%2Ftree.sh;h=40a50ccde00e3b2a1504e2195ac2d98c0402f756;hb=47b905d14103c01625d16fe557e63e34317c6453;hp=0000000000000000000000000000000000000000;hpb=8d127fe6a7ae92a34d8885a945a36dca1b47211e;p=serve0 diff --git a/pages/tree.sh b/pages/tree.sh new file mode 100755 index 0000000..40a50cc --- /dev/null +++ b/pages/tree.sh @@ -0,0 +1,45 @@ +#!/bin/zsh + +# Copyright 2014, 2015 Paul Hänsch +# +# This file is part of Serve0. +# +# Serve0 is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Serve0 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with Serve0. If not, see . + +. $_EXEC/pages/common.sh + +directory="$(invalidate "${_GET[d]}" '(.*/)?\.\.(/.*)?|' /)" + +filelist(){ + debug "Filelist with dir = $directory" + + [ -n "${directory#/}" ] && printf %s ".." + + find -L "${treeroot%/}/${directory#/}" -mindepth 1 -maxdepth 1 -type d \ + | sort \ + | while read dir; do + name="${dir##*/}" + printf %s "$(htmlsafe "$name")" + done + + find -L "${treeroot%/}/${directory#/}" -mindepth 1 -maxdepth 1 -type f \ + | sort \ + | while read file; do + name="${file##*/}" + printf %s\\n "$name" |egrep -q "$file_pattern" && \ + printf %s "$(htmlsafe "$name")" \ + || printf %s "$(htmlsafe "$name")" + done +} +