Okay, I'll see your classes and raise you a regexp for clarity!

 classes:
    January|March|May|July|August|October|December::
      "Last_Saturday" and => { "Saturday", classmatch("Day(2[5-9]|3[01])") };
    April|June|September|November::
      "Last_Saturday" and => { "Saturday", classmatch("Day(2[4-9]|30)") };
    February::
      "Last_Saturday" and => { "Saturday", classmatch("Day2[2-9]") };

-Dan

> Why not simply using :
> 
> classes:
>     "Last_Saturday" expression => 
> "Saturday.((Day31|Day30|Day29|Day28|Day27|Day26|Day25)|(Day24.(April|June|Sep
> tember|November)|(Day23.Day22.February))";
> 
> commands:
>     Last_Saturday::
>         "do something";
> 
> It does not take into account leap year, but it should not fail until 
> 2020, enough time to find a better solution...
> 
> Nicolas
> 
> 
> Mark Burgess wrote:
> > I never recommend using pipes in cfengine. You can do classmatch, AND, OR
> > on the existing dates to accomplish the result.
> >
> > Perhaps first and last Mon-Sun are useful classes to build in.
> >
> > Matt Richards wrote:
> >   
> >> okay, I got it. Kinda hacky with all the pipes:
> >>
> >> vars:
> >>     "year"     string  => execresult("/usr/bin/date +%Y","noshell");
> >>     "month"    string => execresult("/usr/bin/date +%m","noshell");
> >>     "last_day" string => execresult("/usr/bin/cal $(month) $(year) |
> >> awk '{print $7}' | grep -E "^[0-9]" | tail -1","useshell");
> >>
> >> classes:
> >>   "Last_Saturday" expression => classify("Day$(last_day)");
> >>
> >> On Wed, Mar 3, 2010 at 8:26 AM, Matt Richards <defraya...@gmail.com> wrote
> :
> >>     
> >>> Interesting. I had something similar with how to schedule for the last
> >>> day of the month (ya, the shell commands are cheating a bit):
> >>>
> >>> vars:
> >>>    "year"     string  => execresult("/usr/bin/date +%Y","noshell");
> >>>    "month"    string => execresult("/usr/bin/date +%m","noshell");
> >>>    "last_day" string => execresult("/usr/bin/cal $(month) $(year) |
> >>> grep . | fmt -1 | tail -1","useshell");
> >>>
> >>>  classes:
> >>>     "End_Of_Month" expression => classify("Day$(last_day)");
> >>>
> >>> .
> >>> .
> >>> .
> >>>
> >>> End_of_Month.Hr23::
> >>>
> >>> So basically at 11:00pm on the last day of the month, it would fire
> >>> off. I am thinking something similar might be possible for the last
> >>> Saturday.
> >>>
> >>>
> >>> 2010/3/3  <nwat...@symcor.com>:
> >>>       
> >>>> Over at Ars there was a discussion about scheduling a cron job for the
> >>>> last Saturday of each month.  Alas, cron cannot do this on its own.  Wha
> t
> >>>> followed as a lot of short scripts to help but very few were portable.
> >>>>
> >>>> One of the newer goals of Cfengine is to be an enterprise scheduler.  Fo
> r
> >>>> fun and reputation how would you use Cfengine to schedule a job on the
> >>>> last Saturday of each month?
> >>>>
> >>>> Sincerely,
> >>>> --
> >>>> Neil Watson
> >>>> 416-673-3465
> >>>>
> >>>>
> >>>>
> >>>> CONFIDENTIALITY WARNING
> >>>> This communication, including any attachments, is for the exclusive use 
> of addressee and may contain proprietary and/or confidential information. If 
> you are not the intended recipient, any use, copying, disclosure, disseminati
> on or distribution is strictly prohibited. If you are not the intended recipi
> ent, please notify the sender immediately by return e-mail, delete this commu
> nication and destroy all copies.
> >>>>
> >>>> AVERTISSEMENT RELATIF À LA CONFIDENTIALITÉ
> >>>> Ce message, ainsi que les pièces qui y sont jointes, est destiné à 
> >>>> l’usage e
> xclusif de la personne à laquelle il s’adresse et peut contenir de 
> l’information
>  personnelle ou confidentielle. Si le lecteur de ce message n’en est pas le de
> stinataire, nous l’avisons par la présente que toute diffusion, distribution, 
> r
> eproduction ou utilisation de son contenu est strictement interdite. Veuillez
>  avertir sur-le-champ l’expéditeur par retour de courrier électronique et 
> suppri
> mez ce message ainsi que toutes les pièces jointes.
> >>>>
> >>>> _______________________________________________
> >>>> Help-cfengine mailing list
> >>>> Help-cfengine@cfengine.org
> >>>> https://cfengine.org/mailman/listinfo/help-cfengine
> >>>>
> >>>>
> >>>>         
> >> _______________________________________________
> >> Help-cfengine mailing list
> >> Help-cfengine@cfengine.org
> >> https://cfengine.org/mailman/listinfo/help-cfengine
> >>     
> >
> >   
> 
> _______________________________________________
> Help-cfengine mailing list
> Help-cfengine@cfengine.org
> https://cfengine.org/mailman/listinfo/help-cfengine
_______________________________________________
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine

Reply via email to