File: pack.pl.in

package info (click to toggle)
linpac 0.16pre3-3
  • links: PTS
  • area: main
  • in suites: woody
  • size: 2,328 kB
  • ctags: 2,582
  • sloc: cpp: 16,514; sh: 7,991; ansic: 4,061; makefile: 211; perl: 101
file content (85 lines) | stat: -rwxr-xr-x 1,853 bytes parent folder | download | duplicates (7)
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#! @PERL@
#----------------------------------------------------------------------------
# LinPac - packet radio terminal for Linux
#
# pack - delete messages marked for deletion
#
# Version 0.01
#
# (c) Radek Burget OK2JBG <xburge01@stud.fee.vutbr.cz> 1999
#
# Usage: pack <BBS_CALL>
#----------------------------------------------------------------------------

# Normal settings:
#List path
$LIST_PATH = "/var/ax25/ulistd";

#Bulletin path
$BULLETIN_PATH = "/var/ax25/mail";

#Axgetmail config path (for determining mail path)
$CONFIG_PATH = "/etc/ax25/axgetmail.conf";

#----------------------------------------------------------------------------

if (@ARGV != 1)
{
  print "Usage: pack <BBS_CALL>\n";
  exit 0;
}

#Read axgetmail config
if (open CONFIG, $CONFIG_PATH)
{
  while (<CONFIG>)
  {
    chop;
    if ($_ !~ /^#/)
    {
      ($name, $value) = split /\s+/;
      if ($name =~ /HOMEDIR/)
      {
        $homedir = $value;
        break;
      }
    }
  }
  close CONFIG;
}

#Number of deleted messages
$deleted = 0;

$bbsname = uc $ARGV[0];

# Open files
$bbs_dir = $BULLETIN_PATH . "/" . $bbsname;
die "The bulletin directory for $bbsname ($bbs_dir) doesn't exist\n" unless -d $bbs_dir;

$list_name = $LIST_PATH . "/" . $bbsname;
open LIST, $list_name or die "Cannot open list file for $bbsname ($list_name)\n";

while (<LIST>)
{
  chop;

  # Read and split message info
  @binfo = split /\s+/;
  $num = $binfo[0];    #first entry - message number
  $flag = $binfo[1];   #second entry - flags

  if ($flag =~ /D/)
  {
    if ($homedir) #private messages
    {
      unlink($ENV{'HOME'}."/".$homedir."/".$bbsname."/".$num) and $deleted++;
    }
    unlink($bbs_dir."/".$num) and $deleted++; #bulletins
  }
}

close LIST;
print "$deleted message(s) deleted.\n";

#### END OF SCRIPT #########################################################