~ubuntu-branches/debian/stretch/alpine/stretch

« back to all changes in this revision

Viewing changes to contrib/carmel/c-client/carmel-purge.sh

  • Committer: Bazaar Package Importer
  • Author(s): Asheesh Laroia
  • Date: 2007-02-17 13:17:42 UTC
  • Revision ID: james.westby@ubuntu.com-20070217131742-99x5c6cpg1pbkdhw
Tags: upstream-0.82+dfsg
ImportĀ upstreamĀ versionĀ 0.82+dfsg

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/bin/csh -f
 
2
# vmail.purge - zaps all unindexed mail messages.
 
3
#
 
4
# The_Epoch             vick created this.
 
5
# 1988 Nov 10 Thu 12:00 bob added code to allow a pathname for $1.
 
6
# 1988 Nov 14 Mon 10:14 bob rewrote the code that was breaking inside `quotes`.
 
7
# 1988 Nov 15 Tue 16:44 bob added code to track spurious .vmail files
 
8
# 1988 Nov 16 Wed 10:44 bob redirected error messages to stderr.
 
9
# 1989 Feb 14 Tue 13:37 bob add exceptions for corrupt indexes
 
10
# 1991 Sun Nov 24 10:30 Shoa add removal of RECOVER index.
 
11
# 1992 Oct 21 Wed 17:01 bob check for Pine read lock files, and abort.
 
12
 
 
13
#
 
14
# Usage: vmail.purge [ username | somepath/username/.vmail ]
 
15
 
 
16
 
 
17
set pname = $0
 
18
set pname = ${pname:t}      # name of this script for error messages
 
19
 
 
20
set indexed =   /tmp/VMprg_idx.$$       # a list of indexed messages
 
21
set messages =  /tmp/VMprg_msg.$$       # a list of all messages
 
22
set unindexed = /tmp/VMprg_Csh.$$       # script to remove unindexed messages
 
23
 
 
24
if ( 1 <= $#argv ) then
 
25
    if ( ".vmail" == $1:t ) then        # assume /u/dp/bob/.vmail
 
26
        set vpath = $1:h                # /u/dp/bob
 
27
        setenv USER $vpath:t            # bob
 
28
    else
 
29
        setenv USER $1
 
30
    endif
 
31
endif
 
32
 
 
33
if ( ! -d ~$USER/.vmail ) then
 
34
    echo -n "${pname}: "
 
35
    if ( 1 <= $#argv ) then
 
36
        sh -c "echo 1>&2  ${pname}: invalid argument $1"
 
37
    else
 
38
        sh -c "echo 1>&2  ${pname}: $USER has no .vmail directory"
 
39
    endif
 
40
    exit 1
 
41
endif
 
42
 
 
43
cd ~$USER/.vmail
 
44
 
 
45
if (!( -d index && -d msg)) then
 
46
    sh -c "echo 1>&2 ${pname}: $cwd is missing required components"
 
47
    exit 1
 
48
endif
 
49
#
 
50
# check for Pine inbox read lock file
 
51
if ( -e index/.MAIL.rl ) then
 
52
    sh -c "echo 1>&2 ${pname}: $cwd is now running Pine"
 
53
    exit 1
 
54
endif
 
55
#
 
56
#
 
57
#remove the temporary RECOVER index *must* be done before deletion of messages
 
58
# start.
 
59
if ( -e index/RECOVER ) then
 
60
   rm index/RECOVER
 
61
   if ( -e  ~$USER/.inda ) rm ~$USER/.inda
 
62
   if ( -e  ~$USER/.indf ) rm ~$USER/.indf
 
63
endif
 
64
#
 
65
#
 
66
# create the shell script
 
67
#
 
68
awk '$1 ~ /^[0-9]/ {print  substr($1,1,6)}' index/* | sort | uniq > $indexed
 
69
if ( $status ) then
 
70
        sh -c "echo 1>&2  ${pname}: some index probably corrupt"
 
71
        exit 1
 
72
endif
 
73
 
 
74
ls msg | awk '{ print substr($1,1,6) }' > $messages
 
75
comm -23 $messages $indexed | awk '{ print "rm -f " $1 " " $1 ".wid" }' > $unindexed
 
76
 
 
77
# provide verbose statistics
 
78
#
 
79
echo $USER " total:" `wc -l < $messages` " indexed:" `wc -l < $indexed`\
 
80
  " purging: " `wc -l < $unindexed`
 
81
 
 
82
# do the work
 
83
#
 
84
cd msg
 
85
csh -f $unindexed
 
86
 
 
87
# cleanup
 
88
#
 
89
rm $messages $indexed $unindexed