- if [ "$mode" = browse ]; then
- [ -d "$_DATA/$ITEM/.index" -a \! "$_DATA/$ITEM" -ot "$_DATA/$ITEM/.index/meta" ] \
- && dir="$_DATA/$ITEM" . "$_EXEC/update_meta.sh"
- (cd "$_DATA/$ITEM";
- find ./ -type d \! -name .index -mindepth 1 -maxdepth 1 \
- -exec stat -c '%Y %n' '{}' +
- find ./ -type f -mindepth 1 -maxdepth 1 \
- -exec stat -c '%Y %n' '{}' +
- )
- elif [ "$mode" = index ]; then
- find "$_DATA/$ITEM" -type d -name .index \
- | while d="$(line)"; do
- [ ! "${d%/.index}" -ot "$d/meta" ] \
- && dir="${d%/.index}" . "$_EXEC/update_meta.sh"
- done
- (cd "$_DATA/$ITEM";
- find ./ -type f \
- -exec stat -c '%Y %n' '{}' +
- )
- fi \
- | case $ORDER in
- Date) sort -rn;;
- Name) sort -k 2;;
- esac \
- | cut -d/ -f2-
-
+
+ if [ "$mode" = browse -a "$ORDER" = Date ]; then
+ list_directories
+ list_filemeta . |cut -f2- \
+ | xargs -d\n stat -c '%Y %n' \
+ | sort -rn |cut -d/ -f2-
+ elif [ "$mode" = browse -a "$ORDER" = Name ]; then
+ list_directories
+ list_filemeta . \
+ | sort -k 2 |cut -d/ -f2-
+ elif [ "$mode" = index -a "$ORDER" = Date ]; then
+ list_index |cut -f2- \
+ | xargs -d'\n' stat -c '%Y %n' \
+ | sort -rn | cut -d/ -f2-
+ elif [ "$mode" = index -a "$ORDER" = Name ]; then
+ list_index | sort -k 2 | cut -d/ -f2-
+ elif [ "$mode" = browse -a "$ORDER" = Length ]; then
+ list_directories
+ list_filemeta . \
+ | sort -n |cut -d/ -f2-
+ elif [ "$mode" = index -a "$ORDER" = Length ]; then
+ list_index \
+ | sort -n |cut -d/ -f2-
+ fi