Changeset 303:6f57b7328cb8

Show
Ignore:
Timestamp:
08/15/11 11:23:59 (9 months ago)
Author:
Anselm Lingnau <anselm@…>
Branch:
default
Message:

The Great Renaming: Change all command names to 'pl-*' and directory to '.pl'.
The idea behind this is to emphasise that the software is called ?*Project*
Lancelot? as opposed to plain ?Lancelot?. There is apparently a KDE tool that
goes by the name of ?Lancelot?, and we want to make clear that this is separate
and different. Also, Project Lancelot has been around for a lot longer!

Files:
24 modified
10 moved

Legend:

Unmodified
Added
Removed
  • MANIFEST

    r302 r303  
    11.includepath 
    22.project 
    3 bin/ll-bouncedb 
    4 bin/ll-conf 
    5 bin/ll-incoming 
    6 bin/ll-init 
    7 bin/ll-janitor 
    8 bin/ll-list 
    9 bin/ll-subchange 
    10 bin/ll-subscribe 
    11 bin/ll-unsubscribe 
     3bin/pl-bouncedb 
     4bin/pl-conf 
     5bin/pl-incoming 
     6bin/pl-init 
     7bin/pl-janitor 
     8bin/pl-list 
     9bin/pl-subchange 
     10bin/pl-subscribe 
    1211bin/pl-thread 
     12bin/pl-unsubscribe 
    1313COPYING 
    1414debian/changelog 
     
    4949lib/Lancelot/Module/list_headers.pm 
    5050lib/Lancelot/Module/moderate.pm 
    51 lib/Lancelot/Module/mod_process.pm 
    5251lib/Lancelot/Module/policy_addresses.pm 
    5352lib/Lancelot/Module/policy_mime.pm 
     
    7675t/01message.t 
    7776t/01template.t 
    78 t/02ll-scripts.t 
     77t/02pl-scripts.t 
    7978t/20archive-store.t 
    8079t/20list-headers.t 
  • bin/pl-bouncedb

    r233 r303  
    33=head1 NAME 
    44 
    5 ll-bouncedb - dump the Project Lancelot bounce database 
     5pl-bouncedb - dump the Project Lancelot bounce database 
    66 
    77=head1 SYNOPSIS 
    88 
    9 ll-bouncedb [-dv?] --dump [--count=BUCKETS] [--size=SECS] 
     9pl-bouncedb [-dv?] --dump [--count=BUCKETS] [--size=SECS] 
    1010    [--threshold=THRESHOLD] [--timebase=SECS] list@domain 
    11 ll-bouncedb [-dv?] --parse [--address=ADDRESS] [--parser=PARSERS] 
     11pl-bouncedb [-dv?] --parse [--address=ADDRESS] [--parser=PARSERS] 
    1212    list@domain [MESSAGE] 
    1313 
    1414=head1 DESCRIPTION 
    1515 
    16 The B<ll-bouncedb> command is useful for debugging Project Lancelot's 
    17 bounce processing subsystem. B<ll-bouncedb --dump> dumps the content 
    18 of the bounce database to standard output. B<ll-bouncedb --parse> 
     16The B<pl-bouncedb> command is useful for debugging Project Lancelot's 
     17bounce processing subsystem. B<pl-bouncedb --dump> dumps the content 
     18of the bounce database to standard output. B<pl-bouncedb --parse> 
    1919applies the given bounce parser(s) to a message and outputs the result 
    2020(without changing the database). The message is taken either from a 
     
    2424=head1 SEE ALSO 
    2525 
    26 ll-incoming(1), ll-init(1), ll-subchange(1) 
     26pl-incoming(1), pl-init(1), pl-subchange(1) 
    2727 
    2828=head1 AUTHOR 
  • bin/pl-conf

    r261 r303  
    33=head1 NAME 
    44 
    5 ll-conf - Query or modify Lancelot list configuration parameters 
     5pl-conf - Query or modify Lancelot list configuration parameters 
    66 
    77=head1 SYNOPSIS 
    88 
    9   ll-conf [--query|-q] [--valueonly|-h] list@domain [parameter ...] 
    10   ll-conf [--set|-s] list@domain ["parameter = value" ...] 
    11   ll-conf [--import|-i] [--onlynew|-n] list@domain [file ...] 
    12   ll-conf [--delete|-d] list@domain [parameter ...] 
    13   ll-conf [--merge|-m] --into=list@domain list@domain 
    14   ll-conf [--unmerge|-u] list@domain 
     9  pl-conf [--query|-q] [--valueonly|-h] list@domain [parameter ...] 
     10  pl-conf [--set|-s] list@domain ["parameter = value" ...] 
     11  pl-conf [--import|-i] [--onlynew|-n] list@domain [file ...] 
     12  pl-conf [--delete|-d] list@domain [parameter ...] 
     13  pl-conf [--merge|-m] --into=list@domain list@domain 
     14  pl-conf [--unmerge|-u] list@domain 
    1515 
    1616=head1 OVERVIEW 
    1717 
    18 The B<ll-conf> command allows a list owner to query, change, or 
     18The B<pl-conf> command allows a list owner to query, change, or 
    1919delete various configuration parameters of a Lancelot list. 
    2020 
    2121=head1 DESCRIPTION 
    2222 
    23 The B<ll-conf> command can be used for four different purposes: 
     23The B<pl-conf> command can be used for four different purposes: 
    2424 
    2525=head2 QUERYING PARAMETERS 
    2626 
    27 With the B<--query> (or B<-q>) option, B<ll-conf> will print either 
     27With the B<--query> (or B<-q>) option, B<pl-conf> will print either 
    2828all of the configuration parameters (if no parameter names are given) 
    2929or the specified parameters to standard output, like 
     
    4242in a shell script. 
    4343 
    44 The output of B<ll-conf --query> is suitable as input for 
    45 B<ll-conf --import>, which is useful to clone, rename, or migrate Lancelot 
     44The output of B<pl-conf --query> is suitable as input for 
     45B<pl-conf --import>, which is useful to clone, rename, or migrate Lancelot 
    4646lists. 
    4747 
    4848=head2 SETTING PARAMETERS 
    4949 
    50 With the B<--set> (or B<-s>) option, B<ll-conf> will take 
     50With the B<--set> (or B<-s>) option, B<pl-conf> will take 
    5151configuration parameter assignments from the command line and enter 
    5252them into the configuration database. A parameter's new value consists 
     
    5555use quotes as in 
    5656 
    57   ll-conf --set 'mail.subjecttag = "[Test] "' 
     57  pl-conf --set 'mail.subjecttag = "[Test] "' 
    5858 
    5959(Only double quotes are allowed; to include a double quote in a 
     
    6262=head2 IMPORTING PARAMETERS WHOLESALE 
    6363 
    64 With the B<--import> (or B<-i>) option, B<ll-conf> reads configuration 
     64With the B<--import> (or B<-i>) option, B<pl-conf> reads configuration 
    6565parameter assignments from files mentioned on the command line, or from 
    6666standard input. Blank lines and lines starting with the comment symbol, 
     
    7474=head2 DELETING PARAMETERS 
    7575 
    76 With the B<--delete> (or B<-d>) option, B<ll-conf> deletes the configuration 
     76With the B<--delete> (or B<-d>) option, B<pl-conf> deletes the configuration 
    7777parameters listed on the command line from the database. 
    7878 
     
    143143=head1 SEE ALSO 
    144144 
    145 ll-init(1),  ll-list(1), ll-subchange(1), ll-subscribe(1), ll-unsubscribe(1) 
     145pl-init(1),  pl-list(1), pl-subchange(1), pl-subscribe(1), pl-unsubscribe(1) 
    146146 
    147147=head1 BUGS 
     
    255255    $cmd ||= "/usr/bin/vi"; 
    256256 
    257     my $file = File::Spec->join($db->get_listdir, "ll-conf.$$"); 
     257    my $file = File::Spec->join($db->get_listdir, "pl-conf.$$"); 
    258258    # Hole Konfiguration nach $file 
    259259 
  • bin/pl-incoming

    r262 r303  
    33=head1 NAME 
    44 
    5 ll-incoming - process incoming messages on a Lancelot list 
     5pl-incoming - process incoming messages on a Lancelot list 
    66 
    77=head1 SYNOPSIS 
    88 
    9 ll-incoming [-dv?] [--user=USER] list@domain 
     9pl-incoming [-dv?] [--user=USER] list@domain 
    1010 
    1111=head1 DESCRIPTION 
    1212 
    1313When a Lancelot list is installed, the local mail server must be directed 
    14 to forward all messages that arrive on the list address to B<ll-incoming>, 
    15 e.g., by setting up suitable aliases. The B<ll-incoming> program parses 
     14to forward all messages that arrive on the list address to B<pl-incoming>, 
     15e.g., by setting up suitable aliases. The B<pl-incoming> program parses 
    1616the incoming message and launches an appropriate workflow, for example 
    1717to post a message to all subscribers, or to handle a subscription or 
    1818unsubscription request. 
    1919 
    20 B<ll-incoming> reads a message from standard input and considers its 
     20B<pl-incoming> reads a message from standard input and considers its 
    2121"To:" address. For a list called I<list>@I<domain>, several 
    2222possibilities exist: 
     
    3939number of successive steps to be taken with the message. 
    4040 
    41 Normally B<ll-incoming> searches for the list's configuration within the 
     41Normally B<pl-incoming> searches for the list's configuration within the 
    4242home directory of the user running it. The B<--user> option specifies 
    4343a different user whose home directory is to be considered instead. Note that 
    4444the directories and files in question must be searchable/readable by the 
    45 user running B<ll-incoming>; the option does not arrange for any rights to 
     45user running B<pl-incoming>; the option does not arrange for any rights to 
    4646be available to that user that they would not otherwise have. The idea behind 
    4747this option is to be able to refer to individual users' mailing lists from 
     
    5050=head1 SEE ALSO 
    5151 
    52 ll-conf(1), ll-init(1) 
     52pl-conf(1), pl-init(1) 
    5353 
    5454=head1 AUTHOR 
  • bin/pl-init

    r90 r303  
    33=head1 NAME 
    44 
    5 ll-init - Initialise a Lancelot mailing list 
     5pl-init - Initialise a Lancelot mailing list 
    66 
    77=head1 SYNOPSIS 
    88 
    9  ll-init [-v?] [--clone=otherlist] [-config=CONFIG] ... 
     9 pl-init [-v?] [--clone=otherlist] [-config=CONFIG] ... 
    1010        [--[no]mailfilter] [--our-isp] [--verbose] 
    1111          list@domain owner-address 
     
    1313=head1 OVERVIEW 
    1414 
    15 The B<ll-init> command creates a new Lancelot mailing list with no 
     15The B<pl-init> command creates a new Lancelot mailing list with no 
    1616subscribers and a basic (if sensible) configuration. 
    1717 
    1818=head1 DESCRIPTION 
    1919 
    20 The B<ll-init> command creates a new Lancelot mailing list with no 
     20The B<pl-init> command creates a new Lancelot mailing list with no 
    2121subscribers. It installs a basic configuration (which should be 
    2222sensible) and allows the list owner to change individual configuration 
     
    2525The initial configuration is derived from (1) hard-coded defaults, (2) 
    2626the content of a system-wide defaults file (if available), (3) the 
    27 content of the user-specific defaults file F<$HOME/.ll/defaults.conf> 
     27content of the user-specific defaults file F<$HOME/.pl/defaults.conf> 
    2828(if available), and (4) any configuration parameter assignments given 
    2929on the command line, in that order. Later settings override earlier 
     
    5959configuration has been cloned. There may be multiple B<--config> 
    6060options on the same command line. Configuration parameters may be 
    61 changed later using the B<ll-conf> command. 
     61changed later using the B<pl-conf> command. 
    6262 
    6363USE QUOTES IF YOUR VALUES CONTAIN WHITESPACE. 
     
    6767For Our-ISP style lists, generates a F<.mailfilter> file 
    6868in the list directory which redirects the various list addresses to the 
    69 ll-incoming(1) program. 
     69pl-incoming(1) program. 
    7070 
    7171=item B<--nomailfilter> 
     
    7979particular, this means that the list database will be created in 
    8080F<$HOME/domains/>I<domain>F</>I<list>F</list.db> rather than 
    81 F<$HOME/.ll/>I<list>F<@>I<domain>F</list.db>. Implies B<--mailfilter>. 
     81F<$HOME/.pl/>I<list>F<@>I<domain>F</list.db>. Implies B<--mailfilter>. 
    8282 
    8383=back 
     
    8585=head1 SEE ALSO 
    8686 
    87 ll-conf(1), ll-init(1), ll-incoming(1), ll-list(1), ll-subchange(1), ll-subscribe(1) 
     87pl-conf(1), pl-init(1), pl-incoming(1), pl-list(1), pl-subchange(1), pl-subscribe(1) 
    8888 
    8989=head1 AUTHOR 
     
    159159 
    160160    if ($mfh) { 
    161         print $mfh qq{to "|$Bin/ll-incoming $listaddr"\n}; 
     161        print $mfh qq{to "|$Bin/pl-incoming $listaddr"\n}; 
    162162        $mfh->close; 
    163163        chmod 0600, $mfname; 
  • bin/pl-janitor

    • Property exe set to *
    r300 r303  
    11#!/usr/bin/perl -w 
    22# 
    3 # ll-janitor -- 
     3# pl-janitor -- 
    44# 
    55#    Do periodic maintenance of Project Lancelot lists 
     
    1111=head1 NAME 
    1212 
    13 ll-janitor -- do periodic maintenance of Project Lancelot lists 
     13pl-janitor -- do periodic maintenance of Project Lancelot lists 
    1414 
    1515=head1 SYNOPSIS 
    1616 
    17 ll-janitor [-dv?] list@domain|DIRECTORY ... 
     17pl-janitor [-dv?] list@domain|DIRECTORY ... 
    1818 
    1919=head1 DESCRIPTION 
    2020 
    21 The B<ll-janitor> program is supposed to be run by B<cron> and does 
     21The B<pl-janitor> program is supposed to be run by B<cron> and does 
    2222most of the work of automatic bounce processing. It checks whether a 
    2323subscribing address has had excessive bounces and blocks it from receiving 
     
    2828=head1 SEE ALSO 
    2929 
    30 ll-bouncedb(1), ll-incoming(1) 
     30pl-bouncedb(1), pl-incoming(1) 
    3131 
    3232=head1 AUTHOR 
     
    161161# lists immediately below them. This contains some special support for 
    162162# Our-ISP, where lists are in directories called $HOME/domains/DOMAIN/LIST; 
    163 # you need to use $HOME/domains/DOMAIN as an argument to ll-janitor in this 
     163# you need to use $HOME/domains/DOMAIN as an argument to pl-janitor in this 
    164164# case. 
    165165 
  • bin/pl-list

    r255 r303  
    33=head1 NAME 
    44 
    5 ll-list - Enumerate subscribers of a Lancelot list 
     5pl-list - Enumerate subscribers of a Lancelot list 
    66 
    77=head1 SYNOPSIS 
    88 
    9   ll-list [-adlnrv?] [-s SEPARATOR] [--all] [--[no]digest] [--full] 
     9  pl-list [-adlnrv?] [-s SEPARATOR] [--all] [--[no]digest] [--full] 
    1010            [--[no]mail] [--name] [--[no]regular] [--separator=SEPARATOR] 
    1111            [--verbose] list@domain [pattern] 
     
    1313=head1 OVERVIEW 
    1414 
    15 The B<ll-list> command outputs a list of addresses from a Lancelot 
     15The B<pl-list> command outputs a list of addresses from a Lancelot 
    1616list's subscriber database. It can optionally include names and/or 
    1717subscription options, and select only those addresses matching a given 
     
    2020=head1 DESCRIPTION 
    2121 
    22 The B<ll-list> command displays either all addresses from 
     22The B<pl-list> command displays either all addresses from 
    2323I<list@domain>'s subscriber database, or those matching the optional 
    24 shell-style "glob" I<pattern>, which may contain "*", "?", and similar 
     24shepl-style "glob" I<pattern>, which may contain "*", "?", and similar 
    2525wild cards. 
    2626 
     
    111111=head1 SEE ALSO 
    112112 
    113 ll-conf(1), ll-init(1), ll-subchange(1), ll-subscribe(1), ll-unsubscribe(1) 
     113pl-conf(1), pl-init(1), pl-subchange(1), pl-subscribe(1), pl-unsubscribe(1) 
    114114 
    115115=head1 AUTHOR 
  • bin/pl-subchange

    r167 r303  
    33=head1 NAME 
    44 
    5 ll-subchange - Change subscriber database for a Lancelot list 
     5pl-subchange - Change subscriber database for a Lancelot list 
    66 
    77=head1 SYNOPSIS 
    88 
    9   ll-subchange [-dv?] [--[no]digest] [--[no]mail] [--[no]moderated] 
     9  pl-subchange [-dv?] [--[no]digest] [--[no]mail] [--[no]moderated] 
    1010          [--[no]moderator] [--[no]admin] [--noauth] [--auth=AUTH] 
    1111          [--name=NAME] [--status=STATUS] [--verbose] 
     
    1414=head1 OVERVIEW 
    1515 
    16 The B<ll-subchange> command allows a list owner to change the delivery 
     16The B<pl-subchange> command allows a list owner to change the delivery 
    1717options and other data of addresses in a list's subscriber database 
    1818manually. Addresses may be listed on the command line or fed to the 
     
    2121=head1 DESCRIPTION 
    2222 
    23 The B<ll-subchange> command takes addresses from the command line or, 
     23The B<pl-subchange> command takes addresses from the command line or, 
    2424alternatively, standard input (if none are specified on the command 
    2525line) and changes their options as specified by the command 
     
    164164=head1 SEE ALSO 
    165165 
    166 ll-conf(1), ll-init(1),  ll-list(1), ll-subscribe(1), ll-unsubscribe(1) 
     166pl-conf(1), pl-init(1),  pl-list(1), pl-subscribe(1), pl-unsubscribe(1) 
    167167 
    168168=head1 AUTHOR 
  • bin/pl-subscribe

    r91 r303  
    33=head1 NAME 
    44 
    5 ll-subscribe - Add addresses to a Lancelot list's subscriber database 
     5pl-subscribe - Add addresses to a Lancelot list's subscriber database 
    66 
    77=head1 SYNOPSIS 
    88 
    9   ll-subscribe [-dwv?] [--[no]digest] [--[no]mail] [--[no]moderated] 
     9  pl-subscribe [-dwv?] [--[no]digest] [--[no]mail] [--[no]moderated] 
    1010             [--[no]welcome] [--verbose] list@domain [address ...] 
    1111 
    1212=head1 OVERVIEW 
    1313 
    14 The B<ll-subscribe> command allows a list owner to add addresses to a 
     14The B<pl-subscribe> command allows a list owner to add addresses to a 
    1515list's subscriber database manually. Addresses may be listed on the command 
    1616line or fed to the command on its standard input. 
     
    1818=head1 DESCRIPTION 
    1919 
    20 The B<ll-subscribe> command takes addresses from the command line or, 
     20The B<pl-subscribe> command takes addresses from the command line or, 
    2121alternatively, standard input (if none are specified on the command 
    2222line) and adds them to the given list's subscriber database. Various 
     
    113113=head1 SEE ALSO 
    114114 
    115 ll-conf(1), ll-init(1),  ll-list(1), ll-subchange(1), ll-unsubscribe(1) 
     115pl-conf(1), pl-init(1),  pl-list(1), pl-subchange(1), pl-unsubscribe(1) 
    116116 
    117117=head1 AUTHOR 
  • bin/pl-unsubscribe

    r90 r303  
    33=head1 NAME 
    44 
    5 ll-unsubscribe - Remove addresses from a Lancelot list's subscriber database 
     5pl-unsubscribe - Remove addresses from a Lancelot list's subscriber database 
    66 
    77=head1 SYNOPSIS 
    88 
    9   ll-unsubscribe [-gv?] [--[no]goodbye] [--verbose] list@domain 
     9  pl-unsubscribe [-gv?] [--[no]goodbye] [--verbose] list@domain 
    1010      [address ...] 
    1111 
    1212=head1 OVERVIEW 
    1313 
    14 The B<ll-unsubscribe> command allows a list owner to remove addresses 
     14The B<pl-unsubscribe> command allows a list owner to remove addresses 
    1515from a list's subscriber database manually.  Addresses may be listed 
    1616on the command line or fed to the command on its standard input. 
     
    1818=head1 DESCRIPTION 
    1919 
    20 The B<ll-unsubscribe> command takes addresses from the command line or, 
     20The B<pl-unsubscribe> command takes addresses from the command line or, 
    2121alternatively, standard input (if none are specified on the command 
    2222line) and removes them from the given list's subscriber database. 
     
    4949=head1 SEE ALSO 
    5050 
    51 ll-conf(1), ll-init(1),  ll-list(1), ll-subchange(1), ll-subscribe(1) 
     51pl-conf(1), pl-init(1),  pl-list(1), pl-subchange(1), pl-subscribe(1) 
    5252 
    5353=head1 AUTHOR 
  • doc/FAQ.txt

    r150 r303  
    4141existing list using 
    4242{{{ 
    43   $ ll-init --clone=oldlist@example.com newlist@example.com admin@example.com 
     43  $ pl-init --clone=oldlist@example.com newlist@example.com admin@example.com 
    4444}}} 
    4545This will use the configuration settings from ''oldlist@example.com'' 
    4646except for the '''list.name''', '''list.address''', and 
    4747'''list.owneraddress''' parameters, which are set as for a new 
    48 list. The details are in ll-init(1). It is also possible to override 
     48list. The details are in pl-init(1). It is also possible to override 
    4949individual items when cloning a list, by giving them on the command 
    5050line as usual. 
     
    5353configuration items is by doing 
    5454{{{ 
    55   $ ll-conf -q oldlist@example.com PATTERN | ll-conf -i newlist@example.com 
     55  $ pl-conf -q oldlist@example.com PATTERN | pl-conf -i newlist@example.com 
    5656}}} 
    5757where PATTERN is something like ''digest.*'' (to transfer all digest 
     
    6767directory, and therefore there is no problem with this in 
    6868principle. The main problem is actually getting mail for a new mailing 
    69 list into ll-incoming(1) without having the mail administrator edit an 
     69list into pl-incoming(1) without having the mail administrator edit an 
    7070aliases file (or similar). How to do this depends on the system's 
    7171MTA. 
     
    7474say ''jdoe-list@example.com'', the user ''jdoe'' simply puts a 
    7575''.qmail-list-default'' file into their home directory that redirects 
    76 all mail into ll-incoming(1) (some translation of return codes may be 
     76all mail into pl-incoming(1) (some translation of return codes may be 
    7777necessary). 
    7878 
     
    8686probably best to use an MDA on steroids like Procmail or Mailfilter to 
    8787funnel all messages whose address extensions start with a list name to 
    88 the ll-incoming(1) command, e.g. (for Procmail), 
     88the pl-incoming(1) command, e.g. (for Procmail), 
    8989{{{ 
    9090  :0 H : list.lock 
    9191  ^TOjdoe+list 
    92   |/usr/bin/ll-incoming list@example.com 
     92  |/usr/bin/pl-incoming list@example.com 
    9393}}} 
    9494If you're handling mail for many different domains, a more convenient 
  • doc/INSTALL.txt

    r129 r303  
    6161Sendmail itself, Exim, or Postfix), is by using the /etc/aliases file 
    6262(called /etc/mail/aliases on some systems) to direct mail to "list 
    63 addresses" to the ''ll-incoming'' program. This is best done using the 
     63addresses" to the ''pl-incoming'' program. This is best done using the 
    6464''address extension'' facility available in recent versions of 
    6565Sendmail (and the others). An alias like 
    6666{{{ 
    67   list: "|/usr/local/bin/ll-incoming list@example.com" 
     67  list: "|/usr/local/bin/pl-incoming list@example.com" 
    6868}}} 
    6969is used to handle mail to any address of the form 
     
    9494  lancelot unix - n n - - pipe 
    9595    flags=DRh user=lancelot 
    96     argv=/usr/local/bin/ll-incoming ${user}@${nexthop} 
     96    argv=/usr/local/bin/pl-incoming ${user}@${nexthop} 
    9797}}} 
    9898And direct all mail to your mailing list subdomain to that transport 
     
    110110You may also want to ensure that messages sent to more than one 
    111111list on your system are passed to individual instances of 
    112 ''ll-incoming'', by adding the following lines to 
     112''pl-incoming'', by adding the following lines to 
    113113''/etc/postfix/main.cf'': 
    114114{{{ 
     
    125125{{{ 
    126126  # /bin/su - lancelot 
    127   lancelot$ ll-init test@lists.example.com admin@example.com 
     127  lancelot$ pl-init test@lists.example.com admin@example.com 
    128128}}} 
    129129This requires no further per-list configuration of your mail server, 
     
    138138Qmail, do let us know how so we can add this information here. 
    139139 
    140 == ll-janitor and cron == 
     140== pl-janitor and cron == 
    141141 
    142 The ll-janitor(1) program is essential for automatic bounce 
     142The pl-janitor(1) program is essential for automatic bounce 
    143143processing. You will want to run this from cron at periodic intervals. 
    144144Add a cron job like 
    145145{{{ 
    146   33 */6 * * * lancelot /usr/local/bin/ll-janitor /home/lancelot/.ll 
     146  33 */6 * * * lancelot /usr/local/bin/pl-janitor /home/lancelot/.pl 
    147147}}} 
    148 (where ''/home/lancelot/.ll'' is the directory where the mailing lists 
    149 live). ll-janitor(1) picks up all mailing lists in the directories 
     148(where ''/home/lancelot/.pl'' is the directory where the mailing lists 
     149live). pl-janitor(1) picks up all mailing lists in the directories 
    150150passed on the command line. You may also pass the names of mailing 
    151151lists directly but the directory method is usually more convenient. 
    152152 
    153 You should be able to get by with one ll-janitor(1) instance per user 
     153You should be able to get by with one pl-janitor(1) instance per user 
    154154who is managing mailing lists; individual users should add a line 
    155155similar to the one above to their personal crontabs using the 
     
    162162-e''. 
    163163 
    164 The period at which ll-janitor(1) runs is related to your bounce 
     164The period at which pl-janitor(1) runs is related to your bounce 
    165165parameter settings; if you use the standard setup then running 
    166 ll-janitor(1) once per day would probably be quite sufficient, but 
     166pl-janitor(1) once per day would probably be quite sufficient, but 
    167167four times (as above) isn't wrong, either. 
  • doc/Lancelot-HOWTO.txt

    r297 r303  
    99== Creating a list == 
    1010 
    11 To create a Project Lancelot list, invoke the ll-init(1) command with 
     11To create a Project Lancelot list, invoke the pl-init(1) command with 
    1212the list address and the list owner's (your) address as its 
    1313arguments. For the purposes of this example, let's assume that the 
     
    1515E. Newman at ''alfred@example.com'': 
    1616{{{ 
    17   $ ll-init test@example.com alfred@example.com 
    18 }}} 
    19 This will create a ''.ll'' directory inside your home directory (if it 
     17  $ pl-init test@example.com alfred@example.com 
     18}}} 
     19This will create a ''.pl'' directory inside your home directory (if it 
    2020doesn't already exist) and, within that directory, a directory called 
    2121''test@example.com'' containing a file called ''list.db''. This file 
     
    2828''alias'' such as 
    2929{{{ 
    30    test: "|/usr/local/bin/ll-incoming test@example.com" 
     30   test: "|/usr/local/bin/pl-incoming test@example.com" 
    3131}}} 
    3232in your system's alias database (usually /etc/aliases). You will probably 
     
    4747}}} 
    4848(The password, "foobar" here, is of no consequence.) Then invoke 
    49 ll-init(1) as above, but giving the '''--our-isp''' command line option: 
    50 {{{ 
    51   $ ll-init --our-isp test@example.com alfred@example.com 
     49pl-init(1) as above, but giving the '''--our-isp''' command line option: 
     50{{{ 
     51  $ pl-init --our-isp test@example.com alfred@example.com 
    5252}}} 
    5353This will create the list configuration database in 
     
    5959$HOME/domains/DOMAIN/LOCAL/.mailfilter (here, 
    6060$HOME/domains/example.com/test/.mailfilter) containing a recipe like 
    61 {{{ to "|/usr/bin/ll-incoming test@example.com" }}} The good news is 
     61{{{ to "|/usr/bin/pl-incoming test@example.com" }}} The good news is 
    6262that Project Lancelot does this for you unless you specify the 
    6363'''--nomailfilter''' option. 
     
    7171can set. 
    7272 
    73 Use the ll-conf(1) to look at and change configuration parameters. You can 
     73Use the pl-conf(1) to look at and change configuration parameters. You can 
    7474inspect all of the configuration using 
    7575{{{ 
    76   $ ll-conf -q test@example.com 
     76  $ pl-conf -q test@example.com 
    7777  digests.enable = 0 
    7878  digests.maxperiod = 0 
     
    8484individual parameters from the command line, use 
    8585{{{ 
    86   $ ll-conf -s test@example.com "list.ownername = Alfred E. Newman" 
     86  $ pl-conf -s test@example.com "list.ownername = Alfred E. Newman" 
    8787}}} 
    8888You can also write the whole configuration to a file and work this over 
    8989using your favourite text editor, then reimport the configuration: 
    9090{{{ 
    91   $ ll-conf -q test@example.com >test.conf 
     91  $ pl-conf -q test@example.com >test.conf 
    9292  $ emacs test.conf 
    93   $ ll-conf -i test@example.com <test.conf 
     93  $ pl-conf -i test@example.com <test.conf 
    9494}}} 
    9595Blank lines and comment lines (starting with ''#'') are ignored when 
    9696a configuration is imported, so feel free to add comments to test.conf -- 
    97 you just need to force yourself not to use "ll-conf -s" to change parameters 
     97you just need to force yourself not to use "pl-conf -s" to change parameters 
    9898behind test.conf's back. 
    9999 
     
    114114change the subscription database manually. Here's how to add subscribers: 
    115115{{{ 
    116   $ ll-subscribe test@example.com joe.blow@example.org sue.foo@example.net 
     116  $ pl-subscribe test@example.com joe.blow@example.org sue.foo@example.net 
    117117}}} 
    118118This will add Joe Blow's and Sue Foo's addresses to the subscriber 
    119 database.  ll-subscribe(1) takes arbitrarily many (well almost) 
    120 addresses on the command line, but if you do not give any, ll-subscribe(1) 
     119database.  pl-subscribe(1) takes arbitrarily many (well almost) 
     120addresses on the command line, but if you do not give any, pl-subscribe(1) 
    121121will read standard input instead: 
    122122{{{ 
    123   $ ll-subscribe test@example.com <members-list.txt 
    124 }}} 
    125 Use ll-list(1) to check who's subscribing: 
    126 {{{ 
    127   $ ll-list test@example.com 
     123  $ pl-subscribe test@example.com <members-list.txt 
     124}}} 
     125Use pl-list(1) to check who's subscribing: 
     126{{{ 
     127  $ pl-list test@example.com 
    128128  sue.foo@example.net 
    129129  joe.blow@example.org 
     
    133133not be added a second time. 
    134134 
    135 You can remove subscribers again using the ll-unsubscribe(1) command, 
    136 which works essentially like ll-subscribe(1): 
    137 {{{ 
    138   $ ll-unsubscribe test@example.com joe.blow@example.org 
     135You can remove subscribers again using the pl-unsubscribe(1) command, 
     136which works essentially like pl-subscribe(1): 
     137{{{ 
     138  $ pl-unsubscribe test@example.com joe.blow@example.org 
    139139}}} 
    140140 
  • doc/cmds.txt

    r1 r303  
    22====================================================== 
    33 
    4 ll-init(1): Mailingliste anlegen 
     4pl-init(1): Mailingliste anlegen 
    55-------------------------------- 
    66 
    7 Syntax: ll-init [OPTIONEN] LISTE@DOMAIN EIGENTÜMER-ADRESSE 
     7Syntax: pl-init [OPTIONEN] LISTE@DOMAIN EIGENTÜMER-ADRESSE 
    88 
    99Legt eine neue Liste an und richtet die Datenbank dafür ein. Die 
    10 Datenbank wird unter dem Namen »LISTE@DOMAIN.lldb« im 
     10Datenbank wird unter dem Namen »LISTE@DOMAIN.pldb« im 
    1111Heimatverzeichnis des aufrufenden Benutzers plaziert. 
    1212 
     
    2424             Parameter der Konfiguration von ANDERELISTE@ANDEREDOMAIN 
    2525             können mit der --config-Option modifiziert werden. 
    26   --mailfilter: Es wird eine Datei namens »mailfilter.ll« erzeugt, die die 
    27              nötigen Adreßumleitungen nach ll-incoming(1) enthält. 
     26  --mailfilter: Es wird eine Datei namens »mailfilter.pl« erzeugt, die die 
     27             nötigen Adreßumleitungen nach pl-incoming(1) enthält. 
    2828 
    2929 
    30 ll-conf(1): Mailinglisten-Konfigurationsparameter ändern 
     30pl-conf(1): Mailinglisten-Konfigurationsparameter ändern 
    3131-------------------------------------------------------- 
    3232 
    33 Syntax: ll-conf --query LISTE@DOMAIN [PARAMETER ...] 
    34         ll-conf --set LISTE@DOMAIN "PARAMETER = WERT" ... 
    35         ll-conf --import LISTE@DOMAIN 
     33Syntax: pl-conf --query LISTE@DOMAIN [PARAMETER ...] 
     34        pl-conf --set LISTE@DOMAIN "PARAMETER = WERT" ... 
     35        pl-conf --import LISTE@DOMAIN 
    3636 
    3737Mit der Option »--query« gibt dieses Programm die Werte der benannten 
     
    4141 
    4242 
    43 ll-subscribe(1): Abonnenten manuell hinzufügen 
     43pl-subscribe(1): Abonnenten manuell hinzufügen 
    4444---------------------------------------------- 
    4545 
    46 Syntax: ll-subscribe [OPTIONEN] LISTE@DOMAIN [ADRESSE ...] 
     46Syntax: pl-subscribe [OPTIONEN] LISTE@DOMAIN [ADRESSE ...] 
    4747 
    4848Fügt die aufgezählten ADRESSEn der Abonnentenliste hinzu, sofern sie 
    4949noch nicht darin enthalten sind, und setzt ggf. Optionen. Schon 
    5050enthaltene Adressen werden nicht modifiziert. Werden keine Adressen 
    51 aufgezählt, liest ll-subscribe(1) Adressen von der Standardeingabe. 
     51aufgezählt, liest pl-subscribe(1) Adressen von der Standardeingabe. 
    5252 
    5353Optionen: 
     
    6262 
    6363 
    64 ll-unsubscribe(1): Abonnenten manuell löschen 
     64pl-unsubscribe(1): Abonnenten manuell löschen 
    6565--------------------------------------------- 
    6666 
    67 Syntax: ll-unsubscribe [OPTIONEN] LISTE@DOMAIN [ADRESSE ...] 
     67Syntax: pl-unsubscribe [OPTIONEN] LISTE@DOMAIN [ADRESSE ...] 
    6868 
    6969Entfernt die aufgezählten Adressen aus der Abonnentenliste, sofern sie 
    7070darin enthalten sind. Werden keine Adressen aufgezählt, liest 
    71 ll-unsubscribe(1) Adressen von der Standardeingabe. 
     71pl-unsubscribe(1) Adressen von der Standardeingabe. 
    7272 
    7373Optionen: 
     
    7979 
    8080 
    81 ll-subchange(1): Abonnenten-Optionen ändern 
     81pl-subchange(1): Abonnenten-Optionen ändern 
    8282------------------------------------------- 
    8383 
    84 Syntax: ll-subchange [OPTIONEN] LISTE@DOMAIN [ADRESSE ...] 
     84Syntax: pl-subchange [OPTIONEN] LISTE@DOMAIN [ADRESSE ...] 
    8585 
    8686Ändert Abonnementsoptionen für die benannten Adressen (sofern sie in 
    8787der Datenbank für die Liste stehen). Werden keine Adressen aufgezählt, 
    88 liest ll-subchange(1) Adressen von der Standardeingabe. 
     88liest pl-subchange(1) Adressen von der Standardeingabe. 
    8989 
    9090Optionen: 
     
    106106 
    107107 
    108 ll-list(1): Listet aktuelle Abonnenten auf 
     108pl-list(1): Listet aktuelle Abonnenten auf 
    109109------------------------------------------ 
    110110 
    111 Syntax: ll-list [OPTIONEN] LISTE@DOMAIN 
     111Syntax: pl-list [OPTIONEN] LISTE@DOMAIN 
    112112 
    113113Gibt Adressen aus der Datenbank für LISTE@DOMAIN auf der 
     
    137137 
    138138 
    139 ll-incoming(1): Behandelt eingehende Mail 
     139pl-incoming(1): Behandelt eingehende Mail 
    140140----------------------------------------- 
    141141 
    142 Syntax: ll-incoming LISTE@DOMAIN 
     142Syntax: pl-incoming LISTE@DOMAIN 
    143143 
    144144Bearbeitet eingehende Mail an die Listenadresse(n). Bei der Installation der 
    145145Liste muß dafür gesorgt werden, daß Mail an die folgenden Adressen nach 
    146 ll-incoming(1) geleitet wird: 
     146pl-incoming(1) geleitet wird: 
    147147 
    148148  LISTE@DOMAIN                  - Adresse für Beiträge 
     
    159159 
    160160 
    161 ll-janitor(1): Besorgt periodische Aufräumungsarbeiten 
     161pl-janitor(1): Besorgt periodische Aufräumungsarbeiten 
    162162------------------------------------------------------ 
    163163 
    164 Syntax: ll-janitor LISTE@DOMAIN 
     164Syntax: pl-janitor LISTE@DOMAIN 
    165165 
    166166Dieses Programm wird periodisch z. B. von cron(8) aufgerufen und 
  • doc/config.txt

    r29 r303  
    33# This file documents all Lancelot list configuration parameters. It can 
    44# serve as the basis for a Lancelot list configuration; just change it 
    5 # and read it using "ll-conf --import <config.txt". 
     5# and read it using "pl-conf --import <config.txt". 
    66# 
    77# == Ground Rules == 
     
    2424# 
    2525# In addition to these directories, Lancelot always searches the 
    26 # ''.ll/list@domain/templates'' and ''.ll/templates'' directories within 
     26# ''.pl/list@domain/templates'' and ''.pl/templates'' directories within 
    2727# the list owner's home directory. 
    2828 
     
    3838# address that is used to submit messages to the list. The local MTA must 
    3939# be suitably configured so the ''list@domain'' and ''list-SOMETHING@domain'' 
    40 # addresses are forwarded to the ll-incoming(1) command. 
     40# addresses are forwarded to the pl-incoming(1) command. 
    4141 
    4242list.address = test@example.com 
     
    9393# 
    9494# The following parameters deal with the processing of incoming mail, 
    95 # by ll-incoming(1) and various processing modules. 
     95# by pl-incoming(1) and various processing modules. 
    9696# 
    9797# === mail.workflow.submit === 
  • doc/remote-admin.txt

    r219 r303  
    189189them: 
    190190{{{ 
    191   ll-subchange --admin --auth=password:secret list@example.com \ 
     191  pl-subchange --admin --auth=password:secret list@example.com \ 
    192192      listadmin@example.com 
    193193}}} 
  • lib/Lancelot/DB.pm

    r299 r303  
    347347This method enables access to the database for the mailing list named 
    348348in C<$listaddr>, such as 'testlist@example.com'. Generally, the database 
    349 for a list is stored in C<$ENV{HOME}/.ll/$listaddr/list.db>. 
     349for a list is stored in C<$ENV{HOME}/.pl/$listaddr/list.db>. 
    350350 
    351351C<\%options> is a reference to a hash containing further options. The 
     
    364364set of hard-coded defaults. Then it incorporates the content of the 
    365365files F</etc/lancelot/defaults.conf> and (if it exists) 
    366 F<$HOME/.ll/defaults.conf>. Later settings override existing 
     366F<$HOME/.pl/defaults.conf>. Later settings override existing 
    367367settings. Finally, the list address is forced to be C<$listaddr>. 
    368368 
     
    377377sub new { 
    378378    my ($class, $listaddr, $optref) = @_; 
    379     my ($create) = $optref->{create}; 
     379    my $create = $optref->{create}; 
    380380    my $self = bless {}, $class; 
    381381    my ($local, $domain) = split /\@/, $listaddr; 
     
    390390    } 
    391391    my @default_files = ("/etc/lancelot/defaults.conf", 
    392                          File::Spec->join($home, ".ll", "defaults.conf")); 
     392                         File::Spec->join($home, ".pl", "defaults.conf")); 
    393393 
    394394    log "debug", "initialising database for $listaddr"; 
     
    397397    # 
    398398    # If the home directory finishes with .../domains/DOMAIN/LOCAL, we 
    399     # are probably doing Our-ISP style delivery using ll-incoming(1), 
     399    # are probably doing Our-ISP style delivery using pl-incoming(1), 
    400400    # and the list database is directly below that "home directory". 
    401401    # 
    402402    # Otherwise we're checking a few likely places, namely the 
    403     # .ll/LOCAL@DOMAIN subdirectory of the user's (real) $HOME as well as 
     403    # .pl/LOCAL@DOMAIN subdirectory of the user's (real) $HOME as well as 
    404404    # the explicit Our-ISP style list directory for command-line programs. 
    405405 
    406     my $ndir = File::Spec->join($home, ".ll", $listaddr); 
     406    my $ndir = File::Spec->join($home, ".pl", $listaddr); 
    407407    my $odir = File::Spec->join($home, "domains", $domain, $local); 
    408408    my $vdir = File::Spec->join("/vol/mail", $user, $domain, $local); 
     
    412412        log "debug", "create option given, check whether database exists"; 
    413413        if ($optref->{ourisp}) { 
    414             $self->{listdir} = -d dirname($vdir) ? $vdir : $ndir; 
     414            log "debug", "ourisp hack: vdir=$odir ndir=$odir"; 
     415            $self->{listdir} = -d dirname($vdir) ? $vdir : $odir; 
    415416        } else { 
    416417            $self->{listdir} = $ndir; 
     
    962963        # We need to insert an address (and user) record for an unconfirmed 
    963964        # subscription request so we can key the confirmation table off the 
    964         # subscription table. The ll-janitor(1) command is used to clean 
     965        # subscription table. The pl-janitor(1) command is used to clean 
    965966        # overdue unconfirmed subscription records from the list database. 
    966967        $self->add_address($address, { status => 'UNCONFIRMED' }); 
     
    17001701 
    17011702            # The address and user records are left in the database -- these 
    1702             # can be cleaned out periodically through ll-janitor, or 
     1703            # can be cleaned out periodically through pl-janitor, or 
    17031704            # explicitly via a web frontend like Guinevere. This is so people's 
    17041705            # accounts in the web frontend won't be closed simply because they 
  • lib/Lancelot/Module/do_config.pm

    r195 r303  
    11# Module/do_config.pm -- 
    22# 
    3 #   Perform subscriber configuration requests (ll-subchange(1) backend) 
     3#   Perform subscriber configuration requests (pl-subchange(1) backend) 
    44# 
    55# Copyright (C) 2006 Anselm Lingnau <anselm@anselms.net>. 
  • lib/Lancelot/Module/post_digest.pm

    r263 r303  
    7777 
    7878Send a digest comprising messages nos. $from .. $to to the subscribers. 
    79 This is a separate function for the convenience of ll-janitor(1), which 
     79This is a separate function for the convenience of pl-janitor(1), which 
    8080must be able to send digests when it is time to do so (rather than 
    8181post_digest, which sends a digest when enough material has accumulated). 
  • lib/Lancelot/Module/prep_config.pm

    r162 r303  
    11# Module/prep_config.pm -- 
    22# 
    3 #   Parse and prepare a subscriber configuration request (ll-subchange backend) 
     3#   Parse and prepare a subscriber configuration request (pl-subchange backend) 
    44# 
    55# Copyright (C) 2006 Anselm Lingnau <anselm@anselms.net>. 
  • lib/Lancelot/Module/process_bounce.pm

    r283 r303  
    7777# "$bucket_size" seconds long (any bounces that occur earlier than the 
    7878# start of the earliest bucket are disregarded, and will in due course 
    79 # be removed from the database by "ll-janitor"). Each bucket contains 
     79# be removed from the database by "pl-janitor"). Each bucket contains 
    8080# the maximum bounce score encountered within the time period covered 
    8181# by that bucket. The total bounce score is the sum of the contents of 
  • lib/Lancelot/SMTPTest.pm

    r212 r303  
    2727  use Lancelot::SMTPTest qw/run_program/; 
    2828 
    29   my @cmd = qw/ll-incoming --verbose=STDERR:all=debug list@example.com/; 
     29  my @cmd = qw/pl-incoming --verbose=STDERR:all=debug list@example.com/; 
    3030  my $message = ...; # mail message with headers goes here 
    3131  my $outdir = "smtp-test"; 
     
    3636 
    3737This module makes it possible to test the Project Lancelot SMTP 
    38 client.  It runs instances of C<ll-incoming> with preconfigured 
     38client.  It runs instances of C<pl-incoming> with preconfigured 
    3939messages as input (as if they had arrived by mail) and provides a 
    40 simple SMTP server that C<ll-incoming> can talk to in turn. This SMTP 
     40simple SMTP server that C<pl-incoming> can talk to in turn. This SMTP 
    4141server writes incoming messages to a specified directory, so you can 
    4242compare them against known-good examples. 
  • lib/Lancelot/Template.pm

    r293 r303  
    3737processing modules (for example) using the C<register> method, or will 
    3838be searched for in files like 
    39 F<$HOME/.ll/>I<list>@I<domain>F</templates/>I<language>/I<name>. 
     39F<$HOME/.pl/>I<list>@I<domain>F</templates/>I<language>/I<name>. 
    4040 
    4141Within a template, "<<foo>>" expressions will be replaced by the 
     
    9898    push @dirs, File::Spec->join($db->get_listdir, "templates"); 
    9999    if (my $homedir = $ENV{HOME} || get_homedir()) { 
    100         push @dirs, File::Spec->join($homedir, ".ll", "templates"); 
     100        push @dirs, File::Spec->join($homedir, ".pl", "templates"); 
    101101    } 
    102102 
  • smtp-test/msg.lrr.0

    r288 r303  
    1 SMTP-From: ll-testlist+owner@example.com 
     1SMTP-From: pl-testlist+owner@example.com 
    22SMTP-To: hugo@example.com 
    3 From: Ll-testlist Management <ll-testlist+owner@example.com> 
     3From: Pl-testlist Management <pl-testlist+owner@example.com> 
    44To: hugo@example.com 
    55Subject: Results of your administrative request (remote admin test) 
     
    1818Do not hesitate to contact us if you have any questions. 
    1919 
    20 The Ll-testlist Management Team 
     20The Pl-testlist Management Team 
    2121 
  • t/00db.t

    r292 r303  
    11#!/usr/bin/perl -w 
     2 
     3BEGIN { chdir 't' if -d 't' } 
     4use lib '../lib'; 
     5use blib; 
    26 
    37use Test::More tests => 223; 
     
    1923 
    2024# This must not conflict with a real list name. 
    21 my ($listname_local, $listname_domain) = ('ll-testlist', 'example.com'); 
    22 my ($listname) = "$listname_local\@$listname_domain"; 
     25my ($listname_local, $listname_domain) = ('pl-testlist', 'example.com'); 
     26my $listname = "$listname_local\@$listname_domain"; 
    2327 
    2428can_ok('Lancelot::DB', 'new'); 
    25 rmtree("$ENV{HOME}/.ll/$listname", 1); 
     29rmtree("$ENV{HOME}/.pl/$listname", 1); 
    2630my $db = new Lancelot::DB $listname, { "create" => 0 }; 
    2731ok( !defined $db,  "new() returned undef for non-existing list" ); 
     
    4953        "and the proper list address"); 
    5054 
    51     ok( $db->set_parameter('ll-test', 'xyzzy'), 
     55    ok( $db->set_parameter('pl-test', 'xyzzy'), 
    5256        "set_parameter() seems to work" ); 
    53     my $test = $db->get_parameter('ll-test'); 
     57    my $test = $db->get_parameter('pl-test'); 
    5458    is( $test, 'xyzzy', "and get_parameter() gets the same back" ); 
    5559 
     
    96100 
    97101$ENV{HOME} = $home; 
    98 rmtree "$ENV{HOME}/.ll/$listname"; 
     102rmtree "$ENV{HOME}/.pl/$listname"; 
    99103$db = new Lancelot::DB $listname, { create => 1 }; 
    100104undef $db; 
    101105 
    102 open F, "> $ENV{HOME}/.ll/$listname/list.db"; 
     106open F, "> $ENV{HOME}/.pl/$listname/list.db"; 
    103107print F "Hallo\n"; 
    104108close F; 
     
    106110ok( !defined $db, "list.db too short"); 
    107111 
    108 open F, "> $ENV{HOME}/.ll/$listname/list.db"; 
     112open F, "> $ENV{HOME}/.pl/$listname/list.db"; 
    109113print F "** This file contains an SQLite 2.1 database"; # Yeah right. 
    110114close F; 
    111115$db = new Lancelot::DB $listname, { create => 0 }; 
    112116ok( !defined $db, "list.db is SQLite2 file"); 
    113 rmtree "$ENV{HOME}/.ll/$listname"; 
     117rmtree "$ENV{HOME}/.pl/$listname"; 
    114118 
    115119$db = new Lancelot::DB $listname, { create => 1 }; 
     
    120124    $db->get_addresses(); 
    121125} "invalid sqlite:foobar subscriber data source type"; 
    122 rmtree "$ENV{HOME}/.ll/$listname"; 
     126rmtree "$ENV{HOME}/.pl/$listname"; 
    123127 
    124128$db = new Lancelot::DB $listname, { create => 1 }; 
     
    129133    $db->get_addresses(); 
    130134} "invalid foo:bar subscriber data source type"; 
    131 rmtree "$ENV{HOME}/.ll/$listname"; 
     135rmtree "$ENV{HOME}/.pl/$listname"; 
    132136 
    133137$db = new Lancelot::DB $listname, { create => 1 }; 
     
    140144 
    141145$ENV{HOME} = $home; 
    142 rmtree "$ENV{HOME}/.ll/$listname"; 
     146rmtree "$ENV{HOME}/.pl/$listname"; 
    143147$db = new Lancelot::DB $listname, { create => 1 }; 
    144148my $dir = $db->get_listdir(); 
    145 is( $dir, "$ENV{HOME}/.ll/$listname", "get_listdir() seems to work" ); 
     149is( $dir, "$ENV{HOME}/.pl/$listname", "get_listdir() seems to work" ); 
    146150 
    147151# Parameter 
     
    150154can_ok($db, 'increment_parameter'); 
    151155can_ok($db, 'get_parameter'); 
    152 $db->set_parameter('ll-inctest', '0'); 
    153 is( $db->increment_parameter('ll-inctest'), 0, "increment_parameter() result" ); 
    154 is( $db->get_parameter('ll-inctest'), 1, "increment_parameter() db entry" ); 
     156$db->set_parameter('pl-inctest', '0'); 
     157is( $db->increment_parameter('pl-inctest'), 0, "increment_parameter() result" ); 
     158is( $db->get_parameter('pl-inctest'), 1, "increment_parameter() db entry" ); 
    155159 
    156160local $Test::DatabaseRow::dbh = $db->{dbh}; 
     
    196200dies_ok { $db->set_configs_from_file('nonexistent.cfg', 1) } 
    197201    "set_configs_from_file: nonexistent file (must_exist)"; 
    198 ok( $db->set_configs_from_file('t/test.cfg', 0) == 2, 
    199     "set_configs_from_file: t/test.cfg"); 
     202ok( $db->set_configs_from_file('test.cfg', 0) == 2, 
     203    "set_configs_from_file: test.cfg"); 
    200204 
    201205can_ok($db, 'init_address_db'); 
     
    394398 
    395399my $ref = { 
    396     status => 'SUBSCRIBED', name => 'Jane Doe', auth => '', 
     400    status => 'SUBSCRIBED', name => 'Jane Doe', auth => '', id => '2', 
    397401}; 
    398402$ref->{$_} = 0 foreach (@options); 
     
    400404can_ok($db, 'get_address_options'); 
    401405my $aa = (Email::Address->parse($address))[0]; 
    402 foreach my $a ($address, ucfirst($address), $aa) { 
     406foreach my $a ($fulladdress, ucfirst($aa), $aa) { 
    403407    foreach my $i (0 .. $#options) { 
    404408        $db->set_address_options($a, { $options[$i] => 1 }); 
  • t/01template.t

    r293 r303  
    1212# This must not conflict with a real list name. 
    1313 
    14 my ($listname_local, $listname_domain) = ('ll-testlist', 'example.com'); 
     14my ($listname_local, $listname_domain) = ('pl-testlist', 'example.com'); 
    1515my $listname = "$listname_local\@$listname_domain"; 
    16 rmtree("$ENV{HOME}/.ll/$listname"); 
     16rmtree("$ENV{HOME}/.pl/$listname"); 
    1717my $db = new Lancelot::DB $listname, { create => 1 }; 
    1818$db->delete_configs("lancelot.templatedirs"); 
     
    5252my $tdir = File::Spec->join($db->get_listdir, "templates", "en"); 
    5353mkpath $tdir; 
    54 open OUT, "> ".File::Spec->join($tdir, "ll-test1"); 
     54open OUT, "> ".File::Spec->join($tdir, "pl-test1"); 
    5555print OUT "Test\n"; 
    5656close OUT; 
    5757 
    58 is (Lancelot::Template::find($db, "ll-test1", "en"), "Test\n", 
     58is (Lancelot::Template::find($db, "pl-test1", "en"), "Test\n", 
    5959    "find (listdir)"); 
    60 is (Lancelot::Template->process("ll-test1", "en", $db, {}), "Test\n", 
     60is (Lancelot::Template->process("pl-test1", "en", $db, {}), "Test\n", 
    6161    "process (simple)"); 
    6262rmtree(File::Spec->join($db->get_listdir, "templates")); 
    6363 
    64 $tdir = File::Spec->join($ENV{HOME}, '.ll', 'templates', 'en'); 
     64$tdir = File::Spec->join($ENV{HOME}, '.pl', 'templates', 'en'); 
    6565mkpath $tdir unless -d $tdir; 
    66 open OUT, "> ".File::Spec->join($tdir, "ll-test2"); 
     66open OUT, "> ".File::Spec->join($tdir, "pl-test2"); 
    6767print OUT "Test\n"; 
    6868close OUT; 
    6969 
    70 is (Lancelot::Template::find($db, "ll-test2", "en"), "Test\n", 
     70is (Lancelot::Template::find($db, "pl-test2", "en"), "Test\n", 
    7171    "find (home directory)"); 
    7272my $saved_home = $ENV{'HOME'}; 
    7373delete $ENV{'HOME'}; 
    74 is (Lancelot::Template::find($db, "ll-test2", "en"), "Test\n", 
     74is (Lancelot::Template::find($db, "pl-test2", "en"), "Test\n", 
    7575    "find (home dir, with default from /etc/passwd)"); 
    7676my $override = Sub::Override->new( 
    7777    'Lancelot::Template::get_homedir' => sub { return undef; } 
    7878    ); 
    79 is (Lancelot::Template::find($db, "ll-test2", "en"), undef, 
     79is (Lancelot::Template::find($db, "pl-test2", "en"), undef, 
    8080    "find (home dir, with overridden getpwuid)"); 
    8181$override->restore(); 
    8282$ENV{'HOME'} = $saved_home; 
    8383 
    84 unlink File::Spec->join($ENV{HOME}, '.ll', 'templates', 'en', 'll-test2'); 
     84unlink File::Spec->join($ENV{HOME}, '.pl', 'templates', 'en', 'pl-test2'); 
    8585 
    86 $tdir = File::Spec->join("/tmp", "ll-test3", "en"); 
     86$tdir = File::Spec->join("/tmp", "pl-test3", "en"); 
    8787mkpath $tdir unless -d $tdir; 
    88 open OUT, "> ".File::Spec->join($tdir, "ll-test3"); 
     88open OUT, "> ".File::Spec->join($tdir, "pl-test3"); 
    8989print OUT "Test\n"; 
    9090close OUT; 
    9191 
    92 ok (!defined Lancelot::Template::find($db, "ll-test3", "en"), 
     92ok (!defined Lancelot::Template::find($db, "pl-test3", "en"), 
    9393    "find (templatedirs not set)"); 
    94 $db->set_config("lancelot.templatedirs", "/tmp/ll-test3"); 
    95 is (Lancelot::Template::find($db, "ll-test3", "en"), "Test\n", 
     94$db->set_config("lancelot.templatedirs", "/tmp/pl-test3"); 
     95is (Lancelot::Template::find($db, "pl-test3", "en"), "Test\n", 
    9696    "find (templatedirs set)"); 
    97 rmtree(File::Spec->join("/tmp", "ll-test3")); 
     97rmtree(File::Spec->join("/tmp", "pl-test3")); 
    9898 
    9999$db->delete_configs("lancelot.templatedirs"); 
    100 ok (!defined Lancelot::Template->process("ll-test4", "en", $db, {}), 
     100ok (!defined Lancelot::Template->process("pl-test4", "en", $db, {}), 
    101101    "process (undefined template)"); 
    102 Lancelot::Template->register("ll-test4", "en", "Hello world\n"); 
    103 is (Lancelot::Template->process("ll-test4", "en", $db, {}), "Hello world\n", 
     102Lancelot::Template->register("pl-test4", "en", "Hello world\n"); 
     103is (Lancelot::Template->process("pl-test4", "en", $db, {}), "Hello world\n", 
    104104    "process (fallback to registered template)"); 
    105 is (Lancelot::Template->process("ll-test4", "de", $db, {}), "Hello world\n", 
     105is (Lancelot::Template->process("pl-test4", "de", $db, {}), "Hello world\n", 
    106106    "process (fallback to registered template - in English)"); 
    107107 
    108 Lancelot::Template->register("ll-test5", "en", "a<<b>>c\n"); 
    109 is (Lancelot::Template->process("ll-test5", "en", $db, { b => 'B' }), "aBc\n", 
     108Lancelot::Template->register("pl-test5", "en", "a<<b>>c\n"); 
     109is (Lancelot::Template->process("pl-test5", "en", $db, { b => 'B' }), "aBc\n", 
    110110    "process (with replacement)"); 
  • t/02pl-scripts.t

    r208 r303  
    3030my (@out, @err); 
    3131 
    32 execscript ("blib/script/ll-init test\@localhost $ENV{USER}\@localhost", [], \@out, \@err); 
     32execscript ("blib/script/pl-init test\@localhost $ENV{USER}\@localhost", [], \@out, \@err); 
    3333is (@err, 0, "init errors"); 
    34 execscript ("blib/script/ll-subscribe --nowelcome --nomail test\@localhost", \@in, \@out, \@err); 
     34execscript ("blib/script/pl-subscribe --nowelcome --nomail test\@localhost", \@in, \@out, \@err); 
    3535is (@err, 0, "subscribe errors"); 
    3636cleanup('NONE', 0); 
  • t/20archive-store.t

    r218 r303  
    2323BEGIN { use_ok('Lancelot::Module::archive_store'); } 
    2424 
    25 my ($listname) = 'll-testlist@example.com'; 
     25my ($listname) = 'pl-testlist@example.com'; 
    2626 
    27 rmtree("$ENV{HOME}/.ll/$listname", 0); 
     27rmtree("$ENV{HOME}/.pl/$listname", 0); 
    2828 
    2929my $db = new Lancelot::DB $listname, { create => 1 }; 
    30 $db->set_config('list.name', 'Ll-testlist'); 
     30$db->set_config('list.name', 'Pl-testlist'); 
    3131 
    3232my $msg = Lancelot::Message->new('From: hugo@example.com 
    33 To: ll-testlist@example.net 
     33To: pl-testlist@example.net 
    3434Subject: Test 
    3535 
     
    4747            "nonsubscriber archive_store STDERR output"); 
    4848is($result, "", "nonsubscriber archive_store result OK"); 
    49 ok(! -e "$ENV{HOME}/.ll/$listname/archive", "no archive directory created"); 
     49ok(! -e "$ENV{HOME}/.pl/$listname/archive", "no archive directory created"); 
    5050Lancelot::Log::init "NONE:"; 
    5151 
     
    5757$db->delete_configs('archive.dirmode');   # should be 0755 
    5858$msg = Lancelot::Message->new('From: hugo@example.com 
    59 To: ll-testlist@example.net 
     59To: pl-testlist@example.net 
    6060Subject: Test 
    6161 
     
    6666$result = Lancelot::Module::archive_store::execute($db, $msg); 
    6767is($result, "", "subscriber archive_store result OK"); 
    68 my $adir = "$ENV{HOME}/.ll/$listname/archive"; 
     68my $adir = "$ENV{HOME}/.pl/$listname/archive"; 
    6969ok(-d $adir, "archive directory created"); 
    7070file_mode_is($adir, 0755, "archive directory mode is 0755"); 
     
    7474file_readable_ok($fname, "archive file is readable"); 
    7575file_contents_is($fname, 'From: hugo@example.com 
    76 To: ll-testlist@example.net 
     76To: pl-testlist@example.net 
    7777Subject: Test 
    7878 
     
    8383 
    8484$msg = Lancelot::Message->new('From: hugo@example.com 
    85 To: ll-testlist@example.net 
     85To: pl-testlist@example.net 
    8686Subject: Test 
    8787 
     
    9999$db->set_config('archive.directory', 'other-archive'); 
    100100$msg = Lancelot::Message->new('From: hugo@example.com 
    101 To: ll-testlist@example.net 
     101To: pl-testlist@example.net 
    102102Subject: Test 
    103103 
     
    106106$result = Lancelot::Module::archive_store::execute($db, $msg); 
    107107is($result, "", "archive.directory test result"); 
    108 $adir = "$ENV{HOME}/.ll/$listname/other-archive"; 
     108$adir = "$ENV{HOME}/.pl/$listname/other-archive"; 
    109109ok(-d $adir, "archive directory created"); 
    110110file_mode_is($adir, 0755, "archive directory mode is 0755"); 
     
    118118$result = Lancelot::Module::archive_store::execute($db, $msg); 
    119119is($result, "", "archive.dirmode test result"); 
    120 $adir = "$ENV{HOME}/.ll/$listname/other-archive"; 
     120$adir = "$ENV{HOME}/.pl/$listname/other-archive"; 
    121121ok(-d $adir, "archive directory created"); 
    122122file_mode_is($adir, 0750, "archive directory mode is 0750"); 
     
    127127$result = Lancelot::Module::archive_store::execute($db, $msg); 
    128128is($result, "", "octal archive.dirmode test result"); 
    129 $adir = "$ENV{HOME}/.ll/$listname/other-archive"; 
     129$adir = "$ENV{HOME}/.pl/$listname/other-archive"; 
    130130ok(-d $adir, "archive directory created"); 
    131131file_mode_is($adir, 0700, "archive directory mode is 0700"); 
     
    133133# absolute pathname for archive directory 
    134134rmtree($adir, 0); 
    135 $adir = "$ENV{HOME}/.ll/$listname/other-archive"; 
     135$adir = "$ENV{HOME}/.pl/$listname/other-archive"; 
    136136$db->set_config('archive.directory', $adir); 
    137137$result = Lancelot::Module::archive_store::execute($db, $msg); 
     
    141141# archive directory impossible to create 
    142142rmtree($adir, 0); 
    143 $adir = "$ENV{HOME}/.ll/$listname/other-archive"; 
     143$adir = "$ENV{HOME}/.pl/$listname/other-archive"; 
    144144chmod 0111, dirname($adir); 
    145145$db->set_config('archive.directory', $adir); 
     
    151151# archive file impossible to create 
    152152rmtree($adir, 0); 
    153 $adir = "$ENV{HOME}/.ll/$listname/other-archive"; 
     153$adir = "$ENV{HOME}/.pl/$listname/other-archive"; 
    154154mkpath "$adir/0", 0; 
    155155chmod 0111, "$adir/0"; 
  • t/20list-headers.t

    r294 r303  
    1818BEGIN { use_ok('Lancelot::Module::list_headers'); } 
    1919 
    20 my $listname = 'll-testlist@example.com'; 
     20my $listname = 'pl-testlist@example.com'; 
    2121 
    22 rmtree("$ENV{HOME}/.ll/$listname", 0); 
     22rmtree("$ENV{HOME}/.pl/$listname", 0); 
    2323 
    2424my $db = new Lancelot::DB $listname, { create => 1 }; 
    25 $db->set_config('list.name', 'Ll-testlist'); 
     25$db->set_config('list.name', 'Pl-testlist'); 
    2626$db->set_config('mail.delimiter', '+'); 
    2727 
     
    3737'); 
    3838 
    39 $db->set_config('mail.listid', '<ll-testlist.example.com>'); 
     39$db->set_config('mail.listid', '<pl-testlist.example.com>'); 
    4040my $tmsg = copy_msg($msg); 
    4141my $result = Lancelot::Module::list_headers::execute($db, $tmsg); 
    42 is($tmsg->header('List-ID'), '<ll-testlist.example.com>', 'explicit list ID'); 
     42is($tmsg->header('List-ID'), '<pl-testlist.example.com>', 'explicit list ID'); 
    4343 
    4444$db->delete_configs('mail.listid'); 
    4545$tmsg = copy_msg($msg); 
    4646$result = Lancelot::Module::list_headers::execute($db, $tmsg); 
    47 is($tmsg->header('List-ID'), '<ll-testlist.list-id.example.com>', 
     47is($tmsg->header('List-ID'), '<pl-testlist.list-id.example.com>', 
    4848   'default list ID'); 
    4949 
     
    6565foreach my $h (@hdrs) { 
    6666    is($tmsg->header('List-'.ucfirst($h)), 
    67        "<mailto:ll-testlist+$h\@example.com>", 
     67       "<mailto:pl-testlist+$h\@example.com>", 
    6868       "List-\u$h value"); 
    6969} 
     
    7575foreach my $h (@hdrs) { 
    7676    is($tmsg->header('List-'.ucfirst($h)), 
    77        "<mailto:ll-testlist-$h\@example.com>", 
     77       "<mailto:pl-testlist-$h\@example.com>", 
    7878       "List-\u$h value (default mail.delimiter)"); 
    7979} 
     
    164164# reply-to munging 
    165165 
    166 $db->set_config('mail.replyto', 'll-testlist@example.com'); 
     166$db->set_config('mail.replyto', 'pl-testlist@example.com'); 
    167167$db->set_config('mail.forcereplyto', 0); 
    168168$tmsg = copy_msg($msg); 
    169169$result = Lancelot::Module::list_headers::execute($db, $tmsg); 
    170 is($tmsg->header('Reply-To'), 'll-testlist@example.com', 
     170is($tmsg->header('Reply-To'), 'pl-testlist@example.com', 
    171171   'optional list reply-to'); 
    172172 
     
    178178$db->set_config('mail.forcereplyto', 1); 
    179179$result = Lancelot::Module::list_headers::execute($db, $tmsg); 
    180 is($tmsg->header('Reply-To'), 'll-testlist@example.com', 
     180is($tmsg->header('Reply-To'), 'pl-testlist@example.com', 
    181181   'forced list reply-to'); 
    182182 
  • t/20policy-addresses.t

    r218 r303  
    1818BEGIN { use_ok('Lancelot::Module::policy_addresses'); } 
    1919 
    20 my ($listname) = 'll-testlist@example.com'; 
     20my ($listname) = 'pl-testlist@example.com'; 
    2121 
    22 rmtree("$ENV{HOME}/.ll/$listname", 0); 
     22rmtree("$ENV{HOME}/.pl/$listname", 0); 
    2323 
    2424my $db = new Lancelot::DB $listname, { create => 1 }; 
    25 $db->set_config('list.name', 'Ll-testlist'); 
     25$db->set_config('list.name', 'Pl-testlist'); 
    2626 
    2727# Tests for explicit addressing 
     
    4343# List address in To: header 
    4444$msg = Lancelot::Message->new('From: hugo@example.com 
    45 To: ll-testlist@example.com 
     45To: pl-testlist@example.com 
    4646Subject: Test 
    4747 
     
    5353# List address in To: header 
    5454$msg = Lancelot::Message->new('From: hugo@example.com 
    55 To: Project Lancelot Test List <ll-testlist@example.com> 
     55To: Project Lancelot Test List <pl-testlist@example.com> 
    5656Subject: Test 
    5757 
     
    6464$msg = Lancelot::Message->new('From: hugo@example.com 
    6565To: susi@example.net 
    66 Cc: ll-testlist@example.com 
     66Cc: pl-testlist@example.com 
    6767Subject: Test 
    6868 
     
    7979$db->add_address('hugo@example.com'); 
    8080$msg = Lancelot::Message->new('From: hugo@example.com 
    81 To: ll-testlist@example.com 
     81To: pl-testlist@example.com 
    8282Subject: Test 
    8383 
     
    8989$db->add_address('susi@example.com', { status => 'BLACKLIST' }); 
    9090$msg = Lancelot::Message->new('From: susi@example.com 
    91 To: ll-testlist@example.com 
     91To: pl-testlist@example.com 
    9292Subject: Test 
    9393 
     
    9898 
    9999$msg = Lancelot::Message->new('From: heinz@example.com 
    100 To: ll-testlist@example.com 
     100To: pl-testlist@example.com 
    101101Subject: Test 
    102102 
  • t/20policy-subscribe.t

    r218 r303  
    1818BEGIN { use_ok('Lancelot::Module::policy_subscribe'); } 
    1919 
    20 my ($listname) = 'll-testlist@example.com'; 
     20my ($listname) = 'pl-testlist@example.com'; 
    2121 
    22 rmtree("$ENV{HOME}/.ll/$listname", 0); 
     22rmtree("$ENV{HOME}/.pl/$listname", 0); 
    2323 
    2424my $db = new Lancelot::DB $listname, { create => 1 }; 
    25 $db->set_config('list.name', 'Ll-testlist'); 
     25$db->set_config('list.name', 'Pl-testlist'); 
    2626 
    2727 
  • t/25digest-plain.t

    r290 r303  
    2323BEGIN { use_ok('Lancelot::Digest::plain'); } 
    2424 
    25 my $listname = 'll-testlist@example.com'; 
    26  
    27 rmtree("$ENV{HOME}/.ll/$listname", 0); 
     25my $listname = 'pl-testlist@example.com'; 
     26 
     27rmtree("$ENV{HOME}/.pl/$listname", 0); 
    2828 
    2929my $db = new Lancelot::DB $listname, { create => 1 }; 
    30 $db->set_config('list.name', 'Ll-testlist'); 
     30$db->set_config('list.name', 'Pl-testlist'); 
    3131 
    3232# Fake an archive of messages to prepare a digest from 
     
    3434for (my $i = 1; $i <= 10; $i++) { 
    3535    my $msg = Lancelot::Message->new(sprintf 'From: hugo@example.com 
    36 To: ll-testlist@example.com 
     36To: pl-testlist@example.com 
    3737Subject: Test %u 
    3838Date: Mon, 12 May 2008 12:00:%02u +0200 
     
    4747my $ok = q|Date: \w{3}, \d{1,2} \w{3} \d{4} \d{2}:\d{2}:\d{2} [-+]\d{4} 
    4848MIME-Version: 1.0 
    49 From: ll-testlist\+digest@example.com 
    50 Reply-To: ll-testlist@example.com 
    51 To: ll-testlist@example.com 
    52 Subject: Ll-testlist Digest V1 #1 
    53 Content-Type: text/plain; charset="iso-8859-1" 
    54  
    55 Ll-testlist Digest\s{9,10}\w{3}, \d{1,2} \w{3} \d{4}\s{9,10}Volume 1 : Issue 1 
    56  
    57 Today's Topics: 
    58  
    59         Test 1 
    60  
    61 ---------------------------------------------------------------------- 
    62  
    63 Date: Mon, 12 May 2008 12:00:01 \+0200 
    64 From: hugo@example.com 
    65 To: ll-testlist@example.com 
    66 Subject: Test 1 
    67  
    68 This is test message 1. 
    69  
    70 ------------------------------ 
    71  
    72 End of Ll-testlist Digest V1 Issue #1 
     49From: pl-testlist\+digest@example.com 
     50Reply-To: pl-testlist@example.com 
     51To: pl-testlist@example.com 
     52Subject: Pl-testlist Digest V1 #1 
     53Content-Type: text/plain; charset="iso-8859-1" 
     54 
     55Pl-testlist Digest\s{9,10}\w{3}, \d{1,2} \w{3} \d{4}\s{9,10}Volume 1 : Issue 1 
     56 
     57Today's Topics: 
     58 
     59        Test 1 
     60 
     61---------------------------------------------------------------------- 
     62 
     63Date: Mon, 12 May 2008 12:00:01 \+0200 
     64From: hugo@example.com 
     65To: pl-testlist@example.com 
     66Subject: Test 1 
     67 
     68This is test message 1. 
     69 
     70------------------------------ 
     71 
     72End of Pl-testlist Digest V1 Issue #1 
    7373\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* 
    7474|; 
     
    8282$ok = q|Date: \w{3}, \d{1,2} \w{3} \d{4} \d{2}:\d{2}:\d{2} [-+]\d{4} 
    8383MIME-Version: 1.0 
    84 From: ll-testlist\+digest@example.com 
    85 Reply-To: ll-testlist@example.com 
    86 To: ll-testlist@example.com 
    87 Subject: Ll-testlist Digest V1 #1 
    88 Content-Type: text/plain; charset="iso-8859-1" 
    89  
    90 Ll-testlist Digest\s{9,10}\w{3}, \d{1,2} \w{3} \d{4}\s{9,10}Volume 1 : Issue 1 
     84From: pl-testlist\+digest@example.com 
     85Reply-To: pl-testlist@example.com 
     86To: pl-testlist@example.com 
     87Subject: Pl-testlist Digest V1 #1 
     88Content-Type: text/plain; charset="iso-8859-1" 
     89 
     90Pl-testlist Digest\s{9,10}\w{3}, \d{1,2} \w{3} \d{4}\s{9,10}Volume 1 : Issue 1 
    9191 
    9292Today's Topics: 
     
    9999Date: Mon, 12 May 2008 12:00:01 \+0200 
    100100From: hugo@example.com 
    101 To: ll-testlist@example.com 
     101To: pl-testlist@example.com 
    102102Subject: Test 1 
    103103 
     
    108108Date: Mon, 12 May 2008 12:00:02 \+0200 
    109109From: hugo@example.com 
    110 To: ll-testlist@example.com 
     110To: pl-testlist@example.com 
    111111Subject: Test 2 
    112112 
     
    115115------------------------------ 
    116116 
    117 End of Ll-testlist Digest V1 Issue #1 
     117End of Pl-testlist Digest V1 Issue #1 
    118118\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* 
    119119|; 
     
    125125$ok = q|Date: \w{3}, \d{1,2} \w{3} \d{4} \d{2}:\d{2}:\d{2} [-+]\d{4} 
    126126MIME-Version: 1.0 
    127 From: ll-testlist\+digest@example.com 
    128 Reply-To: ll-testlist@example.com 
    129 To: ll-testlist@example.com 
    130 Subject: Ll-testlist Digest V1 #1 
    131 Content-Type: text/plain; charset="iso-8859-1" 
    132  
    133 Ll-testlist Digest\s{9,10}\w{3}, \d{1,2} \w{3} \d{4}\s{9,10}Volume 1 : Issue 1 
    134  
    135 Today's Topics: 
    136  
    137         Test 1 
    138  
    139 ---------------------------------------------------------------------- 
    140  
    141 Date: Mon, 12 May 2008 12:00:01 \+0200 
    142 From: hugo@example.com 
    143 To: ll-testlist@example.com 
     127From: pl-testlist\+digest@example.com 
     128Reply-To: pl-testlist@example.com 
     129To: pl-testlist@example.com 
     130Subject: Pl-testlist Digest V1 #1 
     131Content-Type: text/plain; charset="iso-8859-1" 
     132 
     133Pl-testlist Digest\s{9,10}\w{3}, \d{1,2} \w{3} \d{4}\s{9,10}Volume 1 : Issue 1 
     134 
     135Today's Topics: 
     136 
     137        Test 1 
     138 
     139---------------------------------------------------------------------- 
     140 
     141Date: Mon, 12 May 2008 12:00:01 \+0200 
     142From: hugo@example.com 
     143To: pl-testlist@example.com 
    144144Subject: Test 1 
    145145 
     
    150150Date: Mon, 12 May 2008 12:00:04 \+0200 
    151151From: hugo@example.com 
    152 To: ll-testlist@example.com 
     152To: pl-testlist@example.com 
    153153Subject: Test 1 
    154154 
     
    157157------------------------------ 
    158158 
    159 End of Ll-testlist Digest V1 Issue #1 
     159End of Pl-testlist Digest V1 Issue #1 
    160160\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* 
    161161|; 
     
    173173$ok = q|Date: \w{3}, \d{1,2} \w{3} \d{4} \d{2}:\d{2}:\d{2} [-+]\d{4} 
    174174MIME-Version: 1.0 
    175 From: ll-testlist-digest@example.com 
    176 Reply-To: ll-testlist@example.com 
    177 To: ll-testlist@example.com 
    178 Subject: Ll-testlist Digest V1 #1 
    179 Content-Type: text/plain; charset="iso-8859-1" 
    180  
    181 Ll-testlist Digest\s{9,10}\w{3}, \d{1,2} \w{3} \d{4}\s{9,10}Volume 1 : Issue 1 
    182  
    183 Today's Topics: 
    184  
    185         Test 1 
    186  
    187 ---------------------------------------------------------------------- 
    188  
    189 Date: Mon, 12 May 2008 12:00:01 \+0200 
    190 From: hugo@example.com 
    191 To: ll-testlist@example.com 
    192 Subject: Test 1 
    193  
    194 This is test message 1. 
    195  
    196 ------------------------------ 
    197  
    198 End of Ll-testlist Digest V1 Issue #1 
     175From: pl-testlist-digest@example.com 
     176Reply-To: pl-testlist@example.com 
     177To: pl-testlist@example.com 
     178Subject: Pl-testlist Digest V1 #1 
     179Content-Type: text/plain; charset="iso-8859-1" 
     180 
     181Pl-testlist Digest\s{9,10}\w{3}, \d{1,2} \w{3} \d{4}\s{9,10}Volume 1 : Issue 1 
     182 
     183Today's Topics: 
     184 
     185        Test 1 
     186 
     187---------------------------------------------------------------------- 
     188 
     189Date: Mon, 12 May 2008 12:00:01 \+0200 
     190From: hugo@example.com 
     191To: pl-testlist@example.com 
     192Subject: Test 1 
     193 
     194This is test message 1. 
     195 
     196------------------------------ 
     197 
     198End of Pl-testlist Digest V1 Issue #1 
    199199\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* 
    200200|; 
     
    208208$ok = q|Date: \w{3}, \d{1,2} \w{3} \d{4} \d{2}:\d{2}:\d{2} [-+]\d{4} 
    209209MIME-Version: 1.0 
    210 From: ll-testlist\+digest@example.com 
    211 Reply-To: ll-testlist@example.com 
    212 To: ll-testlist@example.com 
    213 Subject: Ll-testlist Digest V1 #1 
    214 Content-Type: text/plain; charset="iso-8859-1" 
    215  
    216 Ll-testlist Digest\s{9,10}\w{3}, \d{1,2} \w{3} \d{4}\s{9,10}Volume 1 : Issue 1 
    217  
    218 Today's Topics: 
    219  
    220         Test 1 
    221  
    222 ---------------------------------------------------------------------- 
    223  
    224 Date: Mon, 12 May 2008 12:00:01 \+0200 
    225 From: hugo@example.com 
    226 To: ll-testlist@example.com 
    227 Subject: Test 1 
    228  
    229 This is test message 1. 
    230  
    231 ------------------------------ 
    232  
    233 End of Ll-testlist Digest V1 Issue #1 
     210From: pl-testlist\+digest@example.com 
     211Reply-To: pl-testlist@example.com 
     212To: pl-testlist@example.com 
     213Subject: Pl-testlist Digest V1 #1 
     214Content-Type: text/plain; charset="iso-8859-1" 
     215 
     216Pl-testlist Digest\s{9,10}\w{3}, \d{1,2} \w{3} \d{4}\s{9,10}Volume 1 : Issue 1 
     217 
     218Today's Topics: 
     219 
     220        Test 1 
     221 
     222---------------------------------------------------------------------- 
     223 
     224Date: Mon, 12 May 2008 12:00:01 \+0200 
     225From: hugo@example.com 
     226To: pl-testlist@example.com 
     227Subject: Test 1 
     228 
     229This is test message 1. 
     230 
     231------------------------------ 
     232 
     233End of Pl-testlist Digest V1 Issue #1 
    234234\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* 
    235235|; 
     
    246246$ok = q|Date: \w{3}, \d{1,2} \w{3} \d{4} \d{2}:\d{2}:\d{2} [-+]\d{4} 
    247247MIME-Version: 1.0 
    248 From: ll-testlist-digest@example.com 
    249 Reply-To: ll-testlist@example.com 
    250 To: ll-testlist@example.com 
     248From: pl-testlist-digest@example.com 
     249Reply-To: pl-testlist@example.com 
     250To: pl-testlist@example.com 
    251251Subject: The Indigestion Digest V1 #1 
    252252Content-Type: text/plain; charset="iso-8859-1" 
     
    262262Date: Mon, 12 May 2008 12:00:01 \+0200 
    263263From: hugo@example.com 
    264 To: ll-testlist@example.com 
     264To: pl-testlist@example.com 
    265265Subject: Test 1 
    266266 
     
    283283$ok = q|Date: \w{3}, \d{1,2} \w{3} \d{4} \d{2}:\d{2}:\d{2} [-+]\d{4} 
    284284MIME-Version: 1.0 
    285 From: ll-testlist-digest@example.com 
    286 Reply-To: ll-testlist@example.com 
    287 To: ll-testlist@example.com 
    288 Subject: Ll-testlist Digest V1 #1 
    289 Content-Type: text/plain; charset="iso-8859-1" 
    290  
    291 Ll-testlist Digest\s{9,10}\w{3}, \d{1,2} \w{3} \d{4}\s{9,10}Volume 1 : Issue 1 
    292  
    293 Today's Topics: 
    294  
    295         Test 1 
    296  
    297 ---------------------------------------------------------------------- 
    298  
    299 Date: Mon, 12 May 2008 12:00:01 \+0200 
    300 From: hugo@example.com 
    301 To: ll-testlist@example.com 
    302 Subject: Test 1 
    303  
    304 This is test message 1. 
    305  
    306 ------------------------------ 
    307  
    308 End of Ll-testlist Digest V1 Issue #1 
     285From: pl-testlist-digest@example.com 
     286Reply-To: pl-testlist@example.com 
     287To: pl-testlist@example.com 
     288Subject: Pl-testlist Digest V1 #1 
     289Content-Type: text/plain; charset="iso-8859-1" 
     290 
     291Pl-testlist Digest\s{9,10}\w{3}, \d{1,2} \w{3} \d{4}\s{9,10}Volume 1 : Issue 1 
     292 
     293Today's Topics: 
     294 
     295        Test 1 
     296 
     297---------------------------------------------------------------------- 
     298 
     299Date: Mon, 12 May 2008 12:00:01 \+0200 
     300From: hugo@example.com 
     301To: pl-testlist@example.com 
     302Subject: Test 1 
     303 
     304This is test message 1. 
     305 
     306------------------------------ 
     307 
     308End of Pl-testlist Digest V1 Issue #1 
    309309\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* 
    310310|; 
     
    314314like($s, qr/$ok/, 'basic digest match (unset archive.directory)'); 
    315315 
    316 my $adir = "$ENV{HOME}/.ll/$listname/archive"; 
     316my $adir = "$ENV{HOME}/.pl/$listname/archive"; 
    317317$db->set_config('archive.directory', $adir); 
    318318 
  • t/30moderate.t

    r296 r303  
    2525BEGIN { use_ok('Lancelot::Module::moderate'); } 
    2626 
    27 my $listname = 'll-testlist@example.com'; 
    28  
    29 rmtree("$ENV{HOME}/.ll/$listname", 0); 
     27my $listname = 'pl-testlist@example.com'; 
     28 
     29rmtree("$ENV{HOME}/.pl/$listname", 0); 
    3030 
    3131my $db = new Lancelot::DB $listname, { create => 1 }; 
    32 $db->set_config('list.name', 'Ll-testlist'); 
     32$db->set_config('list.name', 'Pl-testlist'); 
    3333$db->set_config('mail.delimiter', '+'); 
    3434$db->set_config('lancelot.mailer', 'Test'); 
     
    4343 
    4444my $msg = Lancelot::Message->new('From: hugo@example.com 
    45 To: ll-testlist@example.com 
     45To: pl-testlist@example.com 
    4646Subject: Test 
    4747Date: Fri, 15 Jul 15:41:00 2011 +0200 
     
    7272my $s = $emails[0]->as_string; 
    7373$s =~ s/\(\w{3} \w{3} \d{2} \d{2}:\d{2}:\d{2} \d{4}\)/(DATE)/; 
    74 is($s, 'From: Ll-testlist Management <ll-testlist+owner@example.com> 
    75 To: ll-testlist+moderators@example.com 
    76 Subject: Ll-testlist moderation notification 
    77 Reply-To: ll-testlist+moderate@example.com 
     74is($s, 'From: Pl-testlist Management <pl-testlist+owner@example.com> 
     75To: pl-testlist+moderators@example.com 
     76Subject: Pl-testlist moderation notification 
     77Reply-To: pl-testlist+moderate@example.com 
    7878 
    7979Please attend to the following messages at your convenience. The 
     
    119119$db->set_config('mod.notifylines', 3); 
    120120my $t2msg = Lancelot::Message->new('From: unsubscribed@example.com 
    121 To: ll-testlist@example.com 
     121To: pl-testlist@example.com 
    122122Subject: Test 
    123123Date: Fri, 15 Jul 15:41:00 2011 +0200 
     
    141141$db->add_address('fritz@example.com', { moderated => 1 }); 
    142142my $t3msg = Lancelot::Message->new('From: fritz@example.com 
    143 To: ll-testlist@example.com 
     143To: pl-testlist@example.com 
    144144Subject: Test 
    145145Date: Fri, 15 Jul 15:41:00 2011 +0200 
     
    162162$s = $emails[0]->as_string; 
    163163$s =~ s/\(\w{3} \w{3} \d{2} \d{2}:\d{2}:\d{2} \d{4}\)/(DATE)/; 
    164 is($s, 'From: Ll-testlist Management <ll-testlist+owner@example.com> 
    165 To: ll-testlist+moderators@example.com 
    166 Subject: Ll-testlist moderation notification 
    167 Reply-To: ll-testlist+moderate@example.com 
     164is($s, 'From: Pl-testlist Management <pl-testlist+owner@example.com> 
     165To: pl-testlist+moderators@example.com 
     166Subject: Pl-testlist moderation notification 
     167Reply-To: pl-testlist+moderate@example.com 
    168168 
    169169Please attend to the following messages at your convenience. The 
     
    204204 
    205205$db->flush_mod_message(1); 
    206 chmod 0, "$ENV{HOME}/.ll/$listname/mod"; 
     206chmod 0, "$ENV{HOME}/.pl/$listname/mod"; 
    207207@result = Lancelot::Module::moderate::execute($db, $t3msg); 
    208208is(scalar(@result), 2, "non-storable message: result length"); 
    209209is($result[0], "mod-error", "non-storable message: result/template"); 
    210210is_deeply($result[1], { 'mod-number' => 1, 
    211                         'mod-name' => "$ENV{HOME}/.ll/$listname/mod/1" }, 
     211                        'mod-name' => "$ENV{HOME}/.pl/$listname/mod/1" }, 
    212212          "non-storable message: result/parameters"); 
    213213 
    214214$db->flush_mod_message(1); 
    215 chmod 0700, "$ENV{HOME}/.ll/$listname/mod"; 
     215chmod 0700, "$ENV{HOME}/.pl/$listname/mod"; 
    216216is(Lancelot::Module::moderate::notify_moderators($db), 0, 
    217217   "notify_moderators w/o messages"); 
     
    220220$db->set_config('mod.disposal', 'approve'); 
    221221my $t5msg = Lancelot::Message->new('From: unsubscribed@example.com 
    222 To: ll-testlist@example.com 
     222To: pl-testlist@example.com 
    223223Subject: Test 
    224224Date: Fri, 15 Jul 15:41:00 2011 +0200 
     
    229229$t5msg->set_flag('nonsubscriber', 1); 
    230230my $t4msg = Lancelot::Message->new('From: fritz@example.com 
    231 To: ll-testlist@example.com 
     231To: pl-testlist@example.com 
    232232Subject: Test 
    233233Date: Fri, 15 Jul 15:41:00 2011 +0200 
     
    241241$s = $emails[0]->as_string; 
    242242$s =~ s/\(\w{3} \w{3} \d{2} \d{2}:\d{2}:\d{2} \d{4}\)/(DATE)/g; 
    243 is($s, 'From: Ll-testlist Management <ll-testlist+owner@example.com> 
    244 To: ll-testlist+moderators@example.com 
    245 Subject: Ll-testlist moderation notification 
    246 Reply-To: ll-testlist+moderate@example.com 
     243is($s, 'From: Pl-testlist Management <pl-testlist+owner@example.com> 
     244To: pl-testlist+moderators@example.com 
     245Subject: Pl-testlist moderation notification 
     246Reply-To: pl-testlist+moderate@example.com 
    247247 
    248248Please attend to the following messages at your convenience. The 
     
    299299 
    300300Lancelot::Log::init("STDERR:all=err"); 
    301 unlink "$ENV{HOME}/.ll/$listname/mod/2"; 
     301unlink "$ENV{HOME}/.pl/$listname/mod/2"; 
    302302stderr_like(sub { Lancelot::Module::moderate::notify_moderators($db) }, 
    303    qr|^30moderate.t\[\d+\]: module: mod message $ENV{HOME}/.ll/$listname/mod/2 seems to have disappeared\n|, 
     303   qr|^30moderate.t\[\d+\]: module: mod message $ENV{HOME}/.pl/$listname/mod/2 seems to have disappeared\n|, 
    304304   "notify_moderators w/lost message"); 
  • t/80remote-adm.t

    r288 r303  
    1818my $dir = "../smtp-test"; 
    1919 
    20 my $listname = 'll-testlist@example.com'; 
     20my $listname = 'pl-testlist@example.com'; 
    2121 
    22 rmtree("$ENV{HOME}/.ll/$listname", 0); 
     22rmtree("$ENV{HOME}/.pl/$listname", 0); 
    2323 
    2424my $db = new Lancelot::DB $listname, { create => 1 }; 
    25 $db->set_config('list.name', 'Ll-testlist'); 
     25$db->set_config('list.name', 'Pl-testlist'); 
    2626$db->set_config('smtp.server', 'localhost'); 
    2727$db->set_config('smtp.port', $smtpport); 
     
    3030$db->add_address('hugo@example.com'); 
    3131 
    32 my @cmd = ('../blib/script/ll-incoming', '--verbose=STDERR:all=debug', $listname); 
     32my @cmd = ('../blib/script/pl-incoming', '--verbose=STDERR:all=debug', $listname); 
    3333 
    3434# First try sending an administrative request to a non-administrator 
    3535 
    3636my $message = <<'END'; 
    37 Delivered-To: ll-testlist+admin@example.com 
     37Delivered-To: pl-testlist+admin@example.com 
    3838Return-Path: hugo@example.com 
    3939From: hugo@example.com 
    40 To: ll-testlist+admin@example.com 
     40To: pl-testlist+admin@example.com 
    4141Subject: remote admin test 
    4242Message-ID: <ra-1@example.com> 
     
    4848 
    4949file_contents_is("$dir/msg.lrr-na.0", <<'END', "list request reply (not admin)"); 
    50 SMTP-From: ll-testlist+owner@example.com 
     50SMTP-From: pl-testlist+owner@example.com 
    5151SMTP-To: hugo@example.com 
    52 From: Ll-testlist Management <ll-testlist+owner@example.com> 
     52From: Pl-testlist Management <pl-testlist+owner@example.com> 
    5353To: hugo@example.com 
    5454Subject: Unauthorised administrative request (remote admin test) 
     
    6060Do not hesitate to contact us if you have any questions. 
    6161 
    62 The Ll-testlist Management Team 
     62The Pl-testlist Management Team 
    6363 
    6464END 
     
    7171 
    7272file_contents_eq_or_diff("$dir/msg.lrr.0", <<'END', "list request reply", { style => 'Unified' }); 
    73 SMTP-From: ll-testlist+owner@example.com 
     73SMTP-From: pl-testlist+owner@example.com 
    7474SMTP-To: hugo@example.com 
    75 From: Ll-testlist Management <ll-testlist+owner@example.com> 
     75From: Pl-testlist Management <pl-testlist+owner@example.com> 
    7676To: hugo@example.com 
    7777Subject: Results of your administrative request (remote admin test) 
     
    9090Do not hesitate to contact us if you have any questions. 
    9191 
    92 The Ll-testlist Management Team 
     92The Pl-testlist Management Team 
    9393 
    9494END