#! /bin/sh
# $Id: fols,v 1.9 92/07/24 17:36:00 jerry book2 $
### fols - Show list of folders, in columns, current folder marked
### Usage: fols [ -recurse ] << (just -r is enough...)
##
## THE folder -fast PROGRAM GIVES A LIST OF YOUR TOP-LEVEL FOLDERS
## IN ONE COLUMN. IF YOU HAVE A LOT OF FOLDERS, THIS CAN BE A PAIN
## BECAUSE THE LIST CAN SCROLL OFF YOUR SCREEN. fols REFORMATS THE
## folder -fast OUTPUT INTO FOUR COLUMNS. IT MARKS THE CURRENT FOLDER
## WITH A +. IF ANY FOLDER NAMES ARE TOO LONG FOR A COLUMN, IT
## CUTS OUT THE MIDDLE OF THE NAME AND REPLACES IT WITH AN "=".
##
## BY DEFAULT, fols ONLY SHOWS THE TOP-LEVEL FOLDERS. THE -r SWITCH
## MAKES IT RECURSIVE, LIKE folder -recurse -fast.
##
## HERE'S AN EXAMPLE. THE EXAMPLE WITH -r SHOWS A SET OF SUB-FOLDERS
## NINE LEVELS DEEP, STARTING WITH A SUB-FOLDER NAMED test/l1:
##
## % fols
## drafts haha inbox+ scans
## scantest test test2 test3
## % fols -r
## drafts haha haha/sub inbox+
## scans scantest test test/MaIlSoRt9818
## test/haha test/l1 test/l1/l2 test/l1/l2/l3
## test/l1/l2/l3/l4 test/l1/=/l3/l4/l5 test/l1/=/l4/l5/l6 test/l1/=/l5/l6/l7
## test/l1/=/l6/l7/l8 test/l1/=/l7/l8/l9 test2 test3
##
## NOTE TO HACKERS: TABSTOPS ARE SET AT 4 IN THIS CODE
folopts="-fast -nolist -nototal -nopack" # OVERRIDE MH PROFILE
rec=
case "$#$1" in
0"") ;;
1-r*) rec=-recurse ;;
*) echo "Usage: `basename $0` [ -recurse ]" 1>&2; exit 1 ;;
esac
# USE BACKQUOTES TO "PASTE" THE CURRENT FOLDER NAME
# INTO THE sed EXPRESSION THAT ADDS A + TO END.
# THEN, IN ANY LINE WHICH HAS AT LEAST 19 CHARACTERS,
# SAVE FIRST 8 AND LAST 9 CHARACTERS AND REPLACE
# MIDDLE CHARACTER(S) WITH AN = SIGN. FINALLY, GIVE
# TO pr WITH LINE LENGTH OF 1 TO MAKE INTO 4 COLUMNS:
folders $rec $folopts |
sed -e "s@^`$mh/folder $folopts`\$@&+@" \
-e 's/^\(........\)...*\(.........\)$/\1=\2/' |
pr -l1 -4 -w78 -t
[Table of Contents] [Index] [Return to Explanation of fols]
This file is from the third edition of the book MH & xmh: Email for Users & Programmers, ISBN 1-56592-093-7, by Jerry Peek. Copyright © 1991, 1992, 1995 by O'Reilly & Associates, Inc. This file is freely-available; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation. For more information, see the file copying.htm.
Suggestions are welcome: Jerry Peek <jerry@ora.com>