<<< Date Index >>>     <<< Thread Index >>>

Re: aliasing mailing lists



On (19:28 19/05/06), cga2000 <cga2000@xxxxxxxxxxxxx> put forth the proposition:
> On Fri, May 19, 2006 at 08:18:20AM EDT, David Woodfall wrote:
> > On (20:16 18/05/06), cga2000 <cga2000@xxxxxxxxxxxxx> put forth the 
> > proposition:
> > > On Thu, May 18, 2006 at 12:07:40PM EDT, David Woodfall wrote:
> > > > On (14:58 18/05/06), David Woodfall <dave@xxxxxxxxxxxxxxx> put forth 
> > > > the proposition:
> > > > > On (03:25 18/05/06), cga2000 <cga2000@xxxxxxxxxxxxx> put forth the 
> > > > > proposition:
> > >   
> > > [..]
> > > > 
> > > > This is more complete I think;
> > > > 
> > > > ls -1 ~/mail/lists | grep @ |awk -F@ '{print "alias" " " $1 " " "<" $1 
> > > > "@" $2 ">"}' > ~/.mutt/lists
> > > > ls -1 ~/mail/lists | awk '{print "mailboxes +lists/" $1}' >> 
> > > > ~/.mutt/lists
> > > > ls -1 ~/mail/lists | awk '{print "subscribe " $1}' >> ~/.mutt/lists
> > > > 
> > > subscribe `cd ~/mail/lists; ls`
> > > mailboxes `for file in $(ls ~/mail/lists); do echo -n "+lists/$file "; 
> > > done`
> > > 
> > > .. some trial & error in the shell before I got it to work.
> > 
> > Subscribe doesn't work for me. It needs same format as mailboxes. Try:
> 
> > subscribe `for file in $(ls ~/mail/lists); do echo -n "$file "; done`
> 
> Hmm.. how does it *not* work? What are the symptoms?

I get an error 'no lists defined' or similar when I try to reply to list with
'L'
 
> Because I played with this for a while and I have a few others that are
> commented out such as:
> 
>   subscribe `cd ~/mail/lists; echo $(ls)`
> 
> and more simply:
> 
>   subscribe `cd ~/mail/lists; *`
> 
> but I can't remember what - if anything - was wrong with these attempts.
> 
> I'm not even sure the one that's not commented out is the one I finally
> decided to use.. I'm not always sure what's best when vim tells me that
> he thinks and editing session crashed and whether I want to (R)ecover,
> (D)elete the recovery file.. etc. :-)
> 
> Anyway, I rather like your version - same style as the mailboxes
> command so it'll make more sense a few months from now.
> > 
> > subscribe `for file in $(ls ~/mail/lists); do echo -n "$file "; done`
> >  
> > > I think it's the better solution because it directly adds the contents
> > > of my .mutt/lists directory to the list of subscribed mailing lists and
> > > to the menu.
> > > > 
> > > > > 
> > > > > And in my binds file:
> > > > > 
> > > > > macro   generic \ca     "!~/scripts/listalias\n:source 
> > > > > ~/.mutt/lists\n"
> > > > > 
> > > > > Now the mailboxes commands are sourced from my lists file too. So all 
> > > > > I do is
> > > > > keep .procmailrc updated with new list rules and hit ^a in mutt to 
> > > > > auto update
> > > > > the aliases and mailboxes.
> > > 
> > > Not sure doing it on the fly is the right approach any more, though.
> > > Maybe this should be done by invoking a script from the .muttrc to
> > > re-create the alias file prior to sourcing it. 
> > > 
> > > Also keep in mind that mailboxes "come and go" .. ie. if you delete all
> > > the messages in a given mailing list.. the corresponding mailbox
> > > vanishes.. and will be recreated (in my setyp) when new messages for
> > > this list are downloaded. The way I currently do it there's an outside
> > > chance something will be out of sync once in a while. My way to address
> > > this is that I do not delete the original message from the list
> > > "Welcome to the ... mailing list.. etc.".. 
> > 
> > set save_empty will keep empty mailbixes, although I tend to keep the 
> > original
> > welcome message for future reference.
> > 
> ibid. thanks for the tip, though.. I do not like the idea of mailboxes
> appearing/disappearing..
> 
> > > So, if you really want something a little more robust you would probably
> > > need to keep track of what lists you are subscribed to outside of mutt,
> > > adding an entry when you subscribe to a mailing list and deleting it
> > > when you unsubscribe.. And use this "list of subscribed lists" to
> > > generate the targets of your .muttrc commands (subscribe/mailboxes) as
> > > well as your alias file. 
> > 
> > If you make a mailinglists file then something like:
> > 
> > subscribe `for entry in $(cat ~/.mutt/mailinglists); do echo -n "$entry "; 
> > done`
> > mailboxes `for entry in $(cat ~/.mutt/mailinglists); do echo -n 
> > "+lists/$entry "; done`
> > 
> > will work, although I haven't managed to get this to work for aliases:
> > 
> > alias `for entry in $(cat ~/.mutt/mailinglists); do echo $entry | awk -F@ 
> > '{print $1 " <"$1"@"$2">"}'; done`
> > 
> > This refuses to work. Any ideas?
> 
> I think this won't work because you need an alias command for each
> mailing list. 
> 
> Assuming ~/.mutt/mailinglists contains:
> 
> list1@host1
> list2@host2
> 
> the output of the `...` above is:
> 
> list1 <list1@host1> list2 <list2@host2>
> 
> .. so the final result in your .muttrc is:
> 
> alias list1 <list1@host1> list2 <list2@host2>
> 
> while what you want is:
> 
> alias list1 <list1@host1> 
> alias list2 <list2@host2>

The alias command takes the following string as a literal alias and will not
work with shell commands. To see this, try the script and start a new mail, then
hit tab when asked for the adress. You will see an alias like:

1 `for ... etc

in the aliases list

> Can't think of a better way to do this than using an external file and
> sourcing it.. but then again I'm very new to mutt. 
> 
> Let me know if you figure out something.
> 
> Thanks,
> 
> cga

-- 
I'll defend to the death your right to say that, but I never said I'd
listen to it!
                -- Tom Galloway with apologies to Voltaire