File: Bscan

package info (click to toggle)
xlbiff 4.6.7-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 648 kB
  • sloc: sh: 4,969; ansic: 754; python: 389; xml: 67; perl: 45; makefile: 44
file content (52 lines) | stat: -rwxr-xr-x 1,589 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/bin/sh
#
# Bscan -- display count of messages in "bulk" folders
#
# Normally invoked by xlbiff.  Not intended for general use.
#
# $Id: Bscan,v 1.5 2003/11/11 20:40:54 esm Exp $
#

# Width of the FOLDER (left hand) side of the box
WIDTH_L=13
# Width of the COUNT (right hand) side.  3 digits is plenty for me.
WIDTH_R=3

# Don't clobber existing context... that makes it impossible for us to
# read messages from the command line.
MHCONTEXT=$HOME/Mail/context.tmp.$$; export MHCONTEXT

# Last top-level dir
last_dir=''

# Find all folders with unseen messages
for i in `flist -all -recurse -sequence unseen -noshowzero -fast`; do
    # For a given folder, e.g. M/zaurus/oz...
    dir=`expr $i : "\([^/]\+\)"`		# Parent directory (M)
    folder=`expr $i : "[^/]\+/\(.*\)"`		# rest of it        (zaurus/oz)

    # Extract the number of unseen messages in this folder
    count=`flist +$i | sed -e 's/^.* \([0-9]\+\) in seq.*$/\1/'`

    # Same parent directory as last time?  Omit dir, but indent by same amount
    #
    # Otherwise, display the
    if [ "$last_dir" = "$dir" ]; then		# Same parent as last time
	printf "%*s " ${#dir} " "
    else if [ "$folder" = "" ]; then		# Diff, but top-level folder
	printf "%s " $dir
    else					# Diff, 2-or-more-level folder
	printf "%s/" $dir
    fi
    fi

    # Show the rest of the folder name, right-padding for alignment.  Show
    # the unseen message count.
    fmt=$(expr $WIDTH_L - ${#dir} - 1)
    printf "%-*s%*d\n" "$fmt" "$folder" $WIDTH_R "$count"

    # Remember this dir for next time
    last_dir=$dir
done

rm -f $MHCONTEXT