[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-womb] gnumaint gnumaint
From: |
Jose E. Marchesi |
Subject: |
[Commit-womb] gnumaint gnumaint |
Date: |
Wed, 30 Aug 2006 19:20:31 +0000 |
CVSROOT: /cvsroot/womb
Module name: gnumaint
Changes by: Jose E. Marchesi <jemarch> 06/08/30 19:20:31
Modified files:
. : gnumaint
Log message:
sendemail operation for maintainer activity test added
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnumaint/gnumaint?cvsroot=womb&r1=1.2&r2=1.3
Patches:
Index: gnumaint
===================================================================
RCS file: /cvsroot/womb/gnumaint/gnumaint,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- gnumaint 30 Aug 2006 17:39:45 -0000 1.2
+++ gnumaint 30 Aug 2006 19:20:31 -0000 1.3
@@ -8,9 +8,13 @@
## Global variables (configuration section)
##
-set maintainers_file "/home/jemarch/gnu/src/gnumaint/maintainers.new"
-set mail_test_for_activity
"/home/jemarch/gnu/src/gnumaint/mailtestforactivity.txt"
-
+variable maintainers_file "/home/jemarch/gnu/src/gnumaint/maintainers.new"
+variable mail_activity
"/home/jemarch/gnu/src/gnumaint/mailtestforactivity.txt"
+variable formail "/usr/bin/formail"
+variable sendmail "/usr/bin/sendmail"
+variable logfile "/tmp/gnumaint.log"
+variable email_originator "address@hidden"
+variable email_reply "address@hidden"
### Please, dont touch the code behind this line unless you really know
### what you are doing
@@ -21,6 +25,15 @@
#
set maintainersdb {}
+proc add_to_log {text} {
+
+ variable logfile
+
+ set flog [open $logfile a]
+ puts $flog "[exec date]: $text"
+ close $flog
+}
+
proc do_help_usage {} {
puts {Usage: gnumaint OPERATION [ARG]...}
@@ -252,6 +265,23 @@
puts {}
}
+proc do_help_sendemail {} {
+
+ variable mail_activity
+
+ puts "gnumaint sendemail - send several kind of emails to maintainers"
+ puts "Usage:"
+ puts {}
+ puts " gnumaint sendemail EMAIL-TYPE"
+ puts {}
+ puts "Allowed EMAIL-TYPEs are:"
+ puts {}
+ puts " activity - send an email to maintainers requesting a reply to
test activity"
+ puts " this command uses the template located in "
+ puts " $mail_activity"
+ puts {}
+}
+
proc do_help_operation {topic} {
switch $topic {
@@ -279,6 +309,92 @@
}
+proc do_sendemail_operation {opargs} {
+
+ if {[llength $opargs] == 1} then {
+
+ do_help_sendemail
+ exit 1
+ }
+
+ switch [lindex $opargs 1] {
+
+ activity {
+
+ do_sendemail_operation_activity
+ }
+ default {
+
+ do_help_sendemail
+ exit 1
+
+ }
+ }
+}
+
+proc fill-template {translation_list email_template} {
+
+ foreach trn $translation_list {
+
+ regsub -all -- [lindex $trn 0] $email_template [lindex $trn 1]
email_template
+ }
+
+ return $email_template
+}
+
+proc do_sendemail_operation_activity {} {
+
+ global maintainersdb
+ global formail
+ global sendmail
+ global mail_activity
+ global email_originator
+ global email_reply
+
+ ;# Read the email template
+ set email_contents_file [open $mail_activity r]
+ gets $email_contents_file subject_template
+ set email_template [read -nonewline $email_contents_file]
+ close $email_contents_file
+
+ foreach pkg $maintainersdb {
+
+ set pkg_name [lindex $pkg 0]
+
+ foreach maintainer [lindex $pkg 1] {
+
+ set maintainer_name [lindex $maintainer 0]
+ set maintainer_email [lindex $maintainer 1]
+
+ ;# Fill the template with this package/maintainer pair info
+ set translation_list [list \
+ [list %PACKAGE_NAME $pkg_name] \
+ [list %MAINTAINER_NAME $maintainer_name] \
+ [list %MAINTAINER_EMAIL
$maintainer_email]]
+ set email_contents [fill-template $translation_list $email_template]
+ set subject_contents [fill-template $translation_list
$subject_template]
+
+ ;# Build the email with formail
+ set out_email_contents \
+ [exec $formail -i "Reply-To: $email_reply" -i \
+ "From: $email_originator" \
+ -i "To: $maintainer_email" \
+ -i "Subject: $subject_contents" << $email_contents]
+ set out_email_contents \
+ [exec $formail -k -X Date -X Reply-to: -X From: -X Subject: -X
To: << $out_email_contents]
+
+ ;# Send the email using sendmail
+ ;#exec $sendmail -t -bm << $out_email_contents
+ puts "####################################"
+ puts "- Sending email to $maintainer_name for $pkg_name:"
+ puts $out_email_contents
+
+ ;# Append an entry into the log file
+ add_to_log "sent activity control email to $maintainer_email for
package $pkg_name"
+ }
+ }
+}
+
proc do_list_operation {opargs} {
if {[llength $opargs] == 1} then {
@@ -443,7 +559,11 @@
do_list_operation $argv
}
+ sendemail {
+
+ do_sendemail_operation $argv
+ }
default {
do_help_usage
- [Commit-womb] gnumaint gnumaint,
Jose E. Marchesi <=