[sf-lug] Got meeting (up)dates? (web page updating of upcoming meeting dates)

jim jim at well.com
Wed Feb 6 09:13:27 PST 2013


    (Just for clarity) I'm assuming that below the 
expand command after step 4. you've written the 
contents of the upcoming_meetings file, which is 
Perl code, yes? 



On Tue, 2013-02-05 at 22:33 -0800, Michael Paoli wrote:
> Well, with cron and some suitable tools, schedule of upcoming meeting
> date(s) can be automagically updated on web page(s).
> 
> This topic/subject/discussion has come up before[1][2].
> I also include example use[3] and example code[4] further below.
> 
> references/excerpts(slightly redacted)/footnotes/examples:
> 1. https://groups.google.com/forum/#!msg/berkeleylug/PPemp9zv_Jk/yHNW0B5zlD8J
> 2.
> > From: jim <jim at well.com>
> > Subject: Re: [sf-lug] www.sf-lug.org & sf-lug.org - not looking so  
> > good on The Internet
> > Date: Tue, 05 Feb 2013 19:41:29 -0800
> 
> >     I might be willing if <redacted> allowed
> > <recated> PHP language, which does the date updates for
> > the SF-LUG.com site, but that it doesn't
> 3.
> $ ./upcoming_meetings
> usage: ./upcoming_meetings: {1st,2nd,3rd,[45]th,last}  
> {Sun,Mon,Tues,Wednes,Thurs,Fri,Satur}day
> $ { ./upcoming_meetings 1st Sun | head -n 12
> > ./upcoming_meetings 3rd Mon | head -n 12
> > } | grep '^2013-' | sort
> 2013-02-18
> 2013-03-03
> 2013-03-18
> 2013-04-07
> 2013-04-15
> 2013-05-05
> 2013-05-20
> 2013-06-02
> 2013-06-17
> 2013-07-07
> 2013-07-15
> 2013-08-04
> 2013-08-19
> 2013-09-01
> 2013-09-16
> 2013-10-06
> 2013-10-21
> 2013-11-03
> 2013-11-18
> 2013-12-01
> 2013-12-16
> 4.
> $ expand -t 4 < upcoming_meetings
> #!/usr/bin/perl
> $^W=1;
> use strict;
> 
> # vi(1) :se tabstop=4
> 
> use Date::Calc qw(
>          Today
>          Nth_Weekday_of_Month_Year
>      )
> ;
> 
> sub usage{
>      die("usage: $0: {1st,2nd,3rd,[45]th,last}  
> {Sun,Mon,Tues,Wednes,Thurs,Fri,Satur}day\n");
> };
> 
> if($#ARGV<1){
>      &usage;
> };
> 
> $_=$ARGV[0];
> my $n;
> if(/^1(?:st)?$/io){     $n=1;
> }elsif(/^2(?:nd)?$/io){ $n=2;
> }elsif(/^3(?:rd)?$/io){ $n=3;
> }elsif(/^4(?:th)?$/io){ $n=4;
> }elsif(/^5(?:th)?$/io){ $n=5;
> }elsif(/^last$/io){     $n='l';
> }else{
>      &usage;
> };
> 
> $_=$ARGV[1];
> my $dow;
> if(/^Su(?:n(?:days?)?)?$/io){           $dow=7;
> }elsif(/^M(?:on(?:days?)?)?$/io){       $dow=1;
> }elsif(/^Tu(?:esdays?)?$/io){           $dow=2;
> }elsif(/^W(?:ed(?:nesdays?)?)?$/io){    $dow=3;
> }elsif(/^Th(?:ursdays?)?$/io){      $dow=4;
> }elsif(/^F(?:ri(?:days?)?)?$/io){       $dow=5;
> }elsif(/^Sa(?:t(?:urdays?)?)?$/io){ $dow=6;
> }else{
>      &usage;
> };
> 
> my ($year,$month,$day) = Today();
> 
> if($n ne 'l'){
>      my $day2=(Nth_Weekday_of_Month_Year($year,$month,$dow,$n))[2];
>      printf(
>              "%04d-%02d-%02d\n",
>              ($year,$month,$day2)
>          ) if defined($day2) && $day2 >= $day;
>      undef $day2;
> 
>      while(1){
>          ++$month;
>          if($month>12){
>              $month=1;
>              exit(0) if ++$year > 9999;
>          };
>          $day=(Nth_Weekday_of_Month_Year($year,$month,$dow,$n))[2];
>          printf("%04d-%02d-%02d\n",$year,$month,$day) if defined($day);
>      };
> }else{
>      my $day2=(Nth_Weekday_of_Month_Year($year,$month,$dow,5))[2];
>      $day2=(Nth_Weekday_of_Month_Year($year,$month,$dow,4))[2]
>          if !defined($day2);
>      printf(
>              "%04d-%02d-%02d\n",
>              ($year,$month,$day2)
>          ) if $day2 >= $day;
>      undef $day2;
> 
>      while(1){
>          ++$month;
>          if($month>12){
>              $month=1;
>              exit(0) if ++$year > 9999;
>          };
>          $day=(Nth_Weekday_of_Month_Year($year,$month,$dow,5))[2];
>          $day=(Nth_Weekday_of_Month_Year($year,$month,$dow,4))[2]
>              if !defined($day);
>          printf("%04d-%02d-%02d\n",$year,$month,$day);
>      };
> };
> $
> 






More information about the sf-lug mailing list