Re: auto-generated virtual users table(s) ...
Brock Rozen <[email protected]> Wed, 24 Sep 2003 23:18:09 +0300 (IDT)
| Newsgroups | gmane.mail.majordomo.majordomo2.devel,gmane.mail.majordomo.devel |
|---|---|
| Message-ID | <[email protected]> |
This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to [email protected] for more info. ---801174884-648174834-1064434689=:12393 Content-Type: TEXT/PLAIN; charset=US-ASCII Hi, We use the following crude script to take all of the Majordomo alias and vut files, and compile them into one file that sendmail uses. That way, we don't have to update the sendmail configuration when we add a new domain to Majordomo. We run this once an hour. Obviously, it can be made to do other things as well. In addition, the attached program apparently does what you need it to do -- so work that in with this, and you have your solution. --- #!/usr/bin/perl use File::Listing; &init; &delete_files; &parse_domains; # This routine will create the vut + alias files as well ©_files; &alivut; sub init { $mj2domains_dir = "/usr/local/mj2/lists"; # Where Mj2 stores the lists/domains $tmp_dir = "/etc/mail/mj2"; $sendmail_dir = "/etc/mail"; # Where sendmail stores its files $newaliases_exec = "/usr/sbin/newaliases"; # The location of the newaliases program $makemap_exec = "/usr/sbin/makemap";# The location of makemap $makemap_type = "btree"; $sendmail_vut = "virtusertable.mj"; # The location of the central vut file. # It will be created under $sendmail_dir $sendmail_aliases = "aliases.mj"; # The location of the central aliases file. # It will be created under $sendmail_dir ### you shouldn't need to change anything below this line $mj2files_dir = "$mj2domains_dir/ALIASES"; $alias_tmp = "$tmp_dir/mj-alias.new"; $vut_tmp = "$tmp_dir/mj-vut.new"; } sub parse_domains { for (parse_dir(`ls -l $mj2domains_dir`)) { ($domain, $type, $size, $mtime, $mode) = @$_; &sendmail_append unless ($domain eq "ALIASES" || $domain eq "LIB" || $domain eq "QUEUE" || $domain eq "SITE" || $type ne "d"); next; } } sub sendmail_append { $alias_exec = "cat $mj2files_dir/mj-alias-$domain >> $alias_tmp"; $vut_exec = "cat $mj2files_dir/mj-vut-$domain >> $vut_tmp"; system $alias_exec; system $vut_exec; } sub delete_files { unlink "$alias_tmp"; unlink "$vut_tmp"; } sub copy_files { $alias_cp = "cp $alias_tmp $sendmail_dir/$sendmail_aliases"; $vut_cp = "cp $vut_tmp $sendmail_dir/$sendmail_vut"; system $alias_cp; system $vut_cp; } sub alivut { $aliases_exec = "$newaliases_exec > /dev/null"; system $aliases_exec; $vut_exec = "$makemap_exec $makemap_type $sendmail_dir/$sendmail_vut.db < $sendmail_dir/$sendmail_vut"; system $vut_exec; } ---- Best, BR On Wed, 24 Sep 2003 at 11:03, Marc G. Fournier wrote about "auto-generated...": > > I've been using the feature in Mj2 that auto-generates the alias and > virtual tables for postfix when you create a new list, but due to how I > have postfix setup, I need to append @localhost to all of the entries in > virtual for it to work before I can 'postmap' the file ... > > Is there some way that I can tell majordomo2 to do this when it adds the > entries? The major headache is when I upgrade from CVS, and it > regenerates the whole file ... > > Basically, I need to write out: > > # VUT entries for pgsql-announce at postgresql.org > [email protected] pgsql-announce-postgresql.org > [email protected] pgsql-announce-postgresql.org-request > [email protected] pgsql-announce-postgresql.org-owner > [email protected] owner-pgsql-announce-postgresql.org > # End VUT entries for pgsql-announce at postgresql.org > > As: > > # VUT entries for pgsql-announce at postgresql.org > [email protected] [email protected] > [email protected] [email protected] > [email protected] [email protected] > [email protected] [email protected] > # End VUT entries for pgsql-announce at postgresql.org > -- Brock Rozen [email protected] ---801174884-648174834-1064434689=:12393 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=buildvirtuser Content-Transfer-Encoding: BASE64 Content-ID: <[email protected]> Content-Description: Content-Disposition: attachment; filename=buildvirtuser IyEvdXNyL2Jpbi9wZXJsIC13DQoNCiMgQ29weXJpZ2h0IChjKSAxOTk5LTIw MDIgR3JlZ29yeSBOZWlsIFNoYXBpcm8uICBBbGwgUmlnaHRzIFJlc2VydmVk Lg0KIyANCiMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQojIG1vZGlmaWNhdGlv biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg Y29uZGl0aW9ucw0KIyBhcmUgbWV0Og0KIw0KIyAxLiBSZWRpc3RyaWJ1dGlv bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly aWdodA0KIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuDQojIDIuIFJlZGlzdHJpYnV0 aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg Y29weXJpZ2h0DQojICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUNCiMgICAg ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4NCiMgMy4gTmVpdGhlciB0aGUgbmFt ZSBvZiB0aGUgYXV0aG9yIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1 dG9ycw0KIyAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg cHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUNCiMgICAgd2l0 aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uDQojDQoj IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBBTkQg Q09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQNCiMgQU5ZIEVYUFJFU1MgT1Ig SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF RCBUTywgVEhFDQojIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFDQoj IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhP UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFDQojIEZPUiBBTlkgRElSRUNU LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP UiBDT05TRVFVRU5USUFMDQojIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT DQojIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQ0KIyBIT1dFVkVSIENBVVNF RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g Q09OVFJBQ1QsIFNUUklDVA0KIyBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg V0FZDQojIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YNCiMgU1VDSCBEQU1B R0UuDQoNCiMgJElkOiBidWlsZHZpcnR1c2VyLHYgMS41IDIwMDIvMDIvMDgg MDg6MTA6NTkgZ3NoYXBpcm8gRXhwICQNCg0KPWhlYWQxIE5BTUUNCg0KYnVp bGR2aXJ0dXNlciAtIEJ1aWxkIHZpcnR1c2VydGFibGUgc3VwcG9ydCBmcm9t IGEgZGlyZWN0b3J5IG9mIGZpbGVzDQoNCj1oZWFkMSBTWU5PUFNJUw0KDQog ICAgYnVpbGR2aXJ0dXNlciBbLWZdDQoNCj1oZWFkMSBERVNDUklQVElPTg0K DQpidWlsZHZpcnR1c2VyIHdpbGwgYnVpbGQgL2V0Yy9tYWlsL3ZpcnR1c2Vy dGFibGUuZGIgYW5kIC9ldGMvbWFpbC92aXJ0aG9zdHMNCmJhc2VkIG9uIHRo ZSBjb250ZW50cyBvZiB0aGUgZGlyZWN0b3J5IC9ldGMvbWFpbC92aXJ0dXNl cnMvLiAgVGhhdA0KZGlyZWN0b3J5IHNob3VsZCBjb250YWluIG9uZSBmaWxl IHBlciB2aXJ0dWFsIGRvbWFpbiB3aXRoIHRoZSBmaWxlbmFtZQ0KbWF0Y2hp bmcgdGhlIHZpcnR1YWwgZG9tYWluIG5hbWUgYW5kIHRoZSBjb250ZW50cyBj b250YWluaW5nIGEgbGlzdCBvZg0KdXNlcm5hbWVzIG9uIHRoZSBsZWZ0IGFu ZCB0aGUgYWN0dWFsIGFkZHJlc3MgZm9yIHRoYXQgdXNlcm5hbWUgb24gdGhl DQpyaWdodC4gIEFuIGVtcHR5IGxlZnQgY29sdW1uIHRyYW5zbGF0ZXMgdG8g dGhlIGRlZmF1bHQgZm9yIHRoYXQgZG9tYWluLg0KQmxhbmsgbGluZXMgYW5k IGxpbmVzIGJlZ2lubmluZyB3aXRoICcjJyBhcmUgaWdub3JlZC4gIE9jY3Vy cmVuY2VzIG9mDQokRE9NQUlOIGluIHRoZSBmaWxlIGFyZSByZXBsYWNlZCBi eSB0aGUgY3VycmVudCBkb21haW4gYmVpbmcgcHJvY2Vzc2VkLg0KT2NjdXJy ZW5jZXMgb2YgJExIUyBpbiB0aGUgcmlnaHQgaGFuZCBzaWRlIGFyZSByZXBs YWNlZCBieSB0aGUgYWRkcmVzcyBvbg0KdGhlIGxlZnQgaGFuZCBzaWRlLg0K DQpUaGUgLWYgb3B0aW9uIGZvcmNlcyB0aGUgZGF0YWJhc2UgdG8gYmUgcmVi dWlsdCByZWdhcmRsZXNzIG9mIHdoZXRoZXINCmFueSBmaWxlIGNoYW5nZXMg d2VyZSBkZXRlY3RlZC4NCg0KPWhlYWQxIENPTkZJR1VSQVRJT04NCg0KSW4g b3JkZXIgdG8gZnVuY3Rpb24gcHJvcGVybHksIHNlbmRtYWlsIG11c3QgYmUg Y29uZmlndXJlZCB0byB1c2UgdGhlc2UNCmZpbGVzIHdpdGg6DQoNCglGRUFU VVJFKGB2aXJ0dXNlcnRhYmxlJylkbmwNCglWSVJUVVNFUl9ET01BSU5fRklM RShgL2V0Yy9tYWlsL3ZpcnRob3N0cycpZG5sDQoNCklmIGEgbmV3IGRvbWFp biBpcyBhZGRlZCAoaS5lLiwgYnkgYWRkaW5nIGEgbmV3IGZpbGUgdG8NCi9l dGMvbWFpbC92aXJ0dXNlcnMvKSwgdGhlIHNlbmRtYWlsIGRhZW1vbiBtdXN0 IGJlIHJlc3RhcnRlZCBmb3IgdGhlIGNoYW5nZQ0KdG8gdGFrZSBhZmZlY3Qu DQoNCj1oZWFkMSBFWEFNUExFUw0KDQpIZXJlIGFyZSBzb21lIGV4YW1wbGUg ZmlsZXMgZnJvbSB0aGUgL2V0Yy9tYWlsL3ZpcnR1c2Vycy8gZGlyZWN0b3J5 Og0KDQo9aGVhZDIgL2V0Yy9tYWlsL3ZpcnR1c2Vycy9ic2R1bml4Lm9yZzoN Cg0KICMgU2VydmljZXMNCiBNQUlMRVItREFFTU9OCWdzaGFwaXJvK2JvdW5j ZS4kRE9NQUlOQGdzaGFwaXJvLm5ldA0KIHBvc3RtYXN0ZXIJZ3NoYXBpcm8r JExIUy4kRE9NQUlOQGdzaGFwaXJvLm5ldA0KIHdlYm1hc3Rlcglnc2hhcGly byskTEhTLiRET01BSU5AZ3NoYXBpcm8ubmV0DQogDQogIyBEZWZhdWx0cw0K IAkJZXJyb3I6bm91c2VyIE5vIHN1Y2ggdXNlcg0KIA0KICMgVXNlcnMNCiBn c2hhcGlybwlnc2hhcGlybyskRE9NQUlOQGdzaGFwaXJvLm5ldA0KIGJvYgkJ cm9iZXJ0QHNtdHAub3JnDQoNCj1oZWFkMiAvZXRjL21haWwvdmlydHVzZXJz L3NtdHAub3JnOg0KDQogIyBEZWZhdWx0cw0KIAkJZ3NoYXBpcm8rJERPTUFJ TkBnc2hhcGlyby5uZXQNCiANCiAjIFVzZXJzDQogam9obgkJam9obkB3b29r aWUub3JnDQogbmFuY3kJCW5AbWlsdGVyLmNvbQ0KDQo9aGVhZDEgQVVUSE9S DQoNCkdyZWdvcnkgTmVpbCBTaGFwaXJvIEU8bHQ+Rjxnc2hhcGlyb0Bnc2hh cGlyby5uZXQ+RTxndD4NCg0KPWN1dA0KDQp1c2Ugc3RyaWN0Ow0KdXNlIEdl dG9wdDo6U3RkOw0KDQpteSAkbWFrZW1hcCA9ICIvdXNyL3NiaW4vbWFrZW1h cCI7DQpteSAkZGJ0eXBlID0gImhhc2giOw0KbXkgJG1haWxkaXIgPSAiL2V0 Yy9tYWlsIjsNCm15ICR2aXJ0aG9zdHMgPSAiJG1haWxkaXIvdmlydGhvc3Rz IjsNCm15ICRuZXd2aXJ0aG9zdHMgPSAiJG1haWxkaXIvdmlydGhvc3RzLm5l dyI7DQpteSAkdmlydHMgPSAiJG1haWxkaXIvdmlydHVzZXJzIjsNCm15ICRu ZXd2aXJ0ID0gIiRtYWlsZGlyL3ZpcnR1c2VydGFibGUubmV3LmRiIjsNCm15 ICR2aXJ0ID0gIiRtYWlsZGlyL3ZpcnR1c2VydGFibGUuZGIiOw0KbXkgJXZp cnQgPSAoKTsNCm15ICRuZXdlc3QgPSAwOw0KbXkgKCRsaHMsICRkb21haW4s ICRrZXksICR2YWx1ZSk7DQpteSAkb3B0cyA9IHt9Ow0KDQpnZXRvcHRzKCdm JywgJG9wdHMpIHx8IGRpZSAiVXNhZ2U6ICQwIFstZl1cbiI7DQoNCm9wZW5k aXIoVklSVFMsICR2aXJ0cykgfHwgZGllICJDb3VsZCBub3Qgb3BlbiBkaXJl Y3RvcnkgJHZpcnRzOiAkIVxuIjsNCm15IEB2aXJ0cyA9IGdyZXAgeyAtZiAi JHZpcnRzLyRfIiB9IHJlYWRkaXIoVklSVFMpOw0KY2xvc2VkaXIoVklSVFMp IHx8IGRpZSAiQ291bGQgbm90IGNsb3NlIGRpcmVjdG9yeSAkdmlydHM6ICQh XG4iOw0KDQpmb3JlYWNoICRkb21haW4gKEB2aXJ0cykNCnsNCglvcGVuKERP TUFJTiwgIiR2aXJ0cy8kZG9tYWluIikgfHwgZGllICJDb3VsZCBub3Qgb3Bl biBmaWxlICR2aXJ0cy8kZG9tYWluOiAkIVxuIjsNCglteSAkbGluZSA9IDA7 DQoJbXkgJG10aW1lID0gKHN0YXQoRE9NQUlOKSlbOV0gfHwgMDsNCglpZiAo JG10aW1lID4gJG5ld2VzdCkNCgl7DQoJCSRuZXdlc3QgPSAkbXRpbWU7DQoJ fQ0KTElORToJd2hpbGUgKDxET01BSU4+KQ0KCXsNCgkJY2hvbXA7DQoJCSRs aW5lKys7DQoJCW5leHQgTElORSBpZiAvXiMvOw0KCQluZXh0IExJTkUgaWYg L14kLzsNCgkJaWYgKG0vXihbXlx0IF0qKVtcdCBdKyguKikkLykNCgkJew0K CQkJaWYgKGRlZmluZWQoJDEpKQ0KCQkJew0KCQkJCSRsaHMgPSAiJDEiOw0K CQkJCSRrZXkgPSAiJDFcQCRkb21haW4iOw0KCQkJfQ0KCQkJZWxzZQ0KCQkJ ew0KCQkJCSRsaHMgPSAiIjsNCgkJCQkka2V5ID0gIlxAJGRvbWFpbiI7DQoJ CQl9DQoJCQkkdmFsdWUgPSAkMjsNCgkJfQ0KCQllbHNlDQoJCXsNCgkJCWRp ZSAiQm9ndXMgbGluZSAkbGluZSBpbiAkdmlydHMvJGRvbWFpblxuIjsNCgkJ fQ0KDQoJCSMgVmFyaWFibGUgc3Vic2l0dXRpb24NCgkJJGtleSA9fiBzL1wk RE9NQUlOLyRkb21haW4vZzsNCgkJJHZhbHVlID1+IHMvXCRET01BSU4vJGRv bWFpbi9nOw0KCQkkdmFsdWUgPX4gcy9cJExIUy8kbGhzL2c7DQoJCSR2aXJ0 eyRrZXl9ID0gJHZhbHVlOw0KCX0NCgljbG9zZShET01BSU4pIHx8IGRpZSAi Q291bGQgbm90IGNsb3NlICR2aXJ0cy8kZG9tYWluOiAkIVxuIjsNCn0NCg0K bXkgJHZpcnRtdGltZSA9IChzdGF0KCR2aXJ0KSlbOV0gfHwgMDsNCmlmICgk b3B0cy0+e2Z9IHx8ICR2aXJ0bXRpbWUgPCAkbmV3ZXN0KQ0Kew0KCXByaW50 IFNURE9VVCAiUmVidWlsZGluZyAkdmlydFxuIjsNCiMgbG9nZ2VyIC1zIC10 ICR7cHJvZ30gLXAgbWFpbC5pbmZvICJSZWJ1aWxkaW5nICR7YmFzZWRpcn0v dmlydHVzZXJ0YWJsZSINCglvcGVuKE1BS0VNQVAsICJ8JG1ha2VtYXAgJGRi dHlwZSAkbmV3dmlydCIpIHx8IGRpZSAiQ291bGQgbm90IHN0YXJ0IG1ha2Vt YXA6ICQhXG4iOw0KCWZvcmVhY2ggJGtleSAoa2V5cyAldmlydCkNCgl7DQoJ CXByaW50IE1BS0VNQVAgIiRrZXlcdFx0JHZpcnR7JGtleX1cbiI7DQoJfQ0K CWNsb3NlKE1BS0VNQVApIHx8IGRpZSAiQ291bGQgbm90IGNsb3NlIG1ha2Vt YXAgKCQ/KTogJCFcbiI7DQoJcmVuYW1lKCRuZXd2aXJ0LCAkdmlydCkgfHwg ZGllICJDb3VsZCBub3QgcmVuYW1lICRuZXd2aXJ0IHRvICR2aXJ0OiAkIVxu IjsNCg0KCW9wZW4oVklSVEhPU1QsICI+JG5ld3ZpcnRob3N0cyIpIHx8IGRp ZSAiQ291bGQgbm90IG9wZW4gZmlsZSAkbmV3dmlydGhvc3RzOiAkIVxuIjsN Cglmb3JlYWNoICRkb21haW4gKHNvcnQgQHZpcnRzKQ0KCXsNCgkJcHJpbnQg VklSVEhPU1QgIiRkb21haW5cbiI7DQoJfQ0KCWNsb3NlKFZJUlRIT1NUKSB8 fCBkaWUgIkNvdWxkIG5vdCBjbG9zZSAkbmV3dmlydGhvc3RzOiAkIVxuIjsN CglyZW5hbWUoJG5ld3ZpcnRob3N0cywgJHZpcnRob3N0cykgfHwgZGllICJD b3VsZCBub3QgcmVuYW1lICRuZXd2aXJ0aG9zdHMgdG8gJHZpcnRob3N0czog JCFcbiI7DQp9DQpleGl0IDA7DQo= ---801174884-648174834-1064434689=:12393--