[RFC v3 4/5] commands: add hwclock

Antony Pavlov antonynpavlov at gmail.com
Mon Jul 21 08:41:50 PDT 2014


On Mon, 21 Jul 2014 10:11:50 +0200
Sascha Hauer <s.hauer at pengutronix.de> wrote:

> On Mon, Jul 21, 2014 at 11:10:25AM +0400, Antony Pavlov wrote:
> > On Mon, 21 Jul 2014 08:41:06 +0200
> > Sascha Hauer <s.hauer at pengutronix.de> wrote:
> > 
> > > On Sun, Jul 20, 2014 at 09:55:22AM +0400, Antony Pavlov wrote:
> > > > On Sat, 19 Jul 2014 21:02:22 +0200
> > > > Holger Schurig <holgerschurig at gmail.com> wrote:
> > > > 
> > > > > I'd prefer a more logical format (and that is also in the help).
> > > > > However, in this case I wouldn't name the command "hwclock", but maybe
> > > > > "setclock".
> > > > 
> > > > hwclock allows to use a logical format!
> > > > 
> > > > e.g. here is a quote from hwclock manpage:
> > > > 
> > > >      --date=date_string
> > > >               You  need this option if you specify the --set or --predict functions, otherwise
> > > >               it is ignored.  It specifies the time to which to set the Hardware Clock, or the
> > > >               time  for which to predict the Hardware Clock reading.  The value of this option
> > > >               is an argument to the date(1) program.  For example:
> > > > 
> > > >                   hwclock --set --date="2011-08-14 16:45:05"
> > > 
> > > Is this format easy enough to parse? If yes, that sounds like a good
> > > format.
> > 
> > So you have no objections on using a logical format :)
> 
> No, not at all ;)
> 
> > 
> > I can make a small review on conventional date_string formats so we can discuss most appropriate one.
> 
> Nice, thanks.
> 
> I think we can always add additional formats using different command
> line switches, but the better we chose our default format the lesser
> need we'll have to add additional formats.

I know about at least two widespread date command realizations used with linux:

  * coreutils realization;
  * busybox realization.


coreutils realization
=====================

I have looked inside parse_datetime() from coreutils-8.21/lib/parse-datetime.c.

It uses yyparse() for date string parsing! The corresponding yacc description
is inside the lib/parse-datetime.y file. Can I easely steal this code for barebox? I suppose NO!


busybox realization
===================

Here is parse_datestr() (barebox.git/libbb/time.c) date format list:

#if ENABLE_FEATURE_DATE_COMPAT 
/* MMDDhhmm[[CC]YY][.ss] */  ---  weird 'date' format
#endif

/* HH:MM[:SS] */
/* mm.dd-HH:MM[:SS] */
/* yyyy.mm.dd-HH:MM[:SS] */
/* yyyy-mm-dd HH:MM[:SS] */

/* month_name d HH:MM:SS YYYY */ --- I suppose we don't want to mess with mount_name :)
/* yyyy-mm-dd HH */
/* yyyy-mm-dd */

/* MM[.SS] */
/* HHMM[.SS] */
/* ddHHMM[.SS] */
/* mmddHHMM[.SS] */
/* yymmddHHMM[.SS] */
/* ccyymmddHHMM[.SS] */ --- this format is used in RFCv3 patchseries.

-- 
Best regards,
  Antony Pavlov



More information about the barebox mailing list