#!/bin/bash
#
# List directories using indentation to show directory nesting
#
# Usage: hi [ -l | -d ] [ directory-name ]*
# Examples:
#   $ hi -d dir1 dir2
# Limitations
#   * does not handle file names with special characters

opt= ; files= ;
while [ ${#} -ne 0 ] ; do	# option and files in any order
    case "${1}" in
	-l) opt=l  ;;
	-d) opt=d  ;;
	-h | -help | --help | -*)
	    echo 'Usage: hi [ -l | -d | -s ] directory-list ...' 1>&2
	    exit 1  ;;
	*)  files="${files} ${1}"  ;;
    esac
    shift
done

case $opt in
    l) find ${files} -exec ls -ldh {} \; | sort -k9,9f | \
	sed 's|\./|	|' | sed 's|[^ 	/]*/|   |g' ;; # add tab then spaces
    d) du -ah ${files} | sort -k2,2f | sed 's|[^	/]*/|   |g'  ;; # replace tab
    *) find ${files} -print | sort -f | sed 's|[^/]*/|   |g'  ;;  # sort ignore case
esac
exit 0
