[Toybox] [PATCH 2/2] Add a "touch" command.

Gaurang Shastri gmshastri at gmail.com
Wed Aug 15 22:33:49 PDT 2012


Just Minor change before code release to next version  [?]
(Please find my change in USE_xx part)

//Gaurang Shastri

On Thu, Aug 16, 2012 at 9:26 AM, Avery Pennarun <apenwarr at gmail.com> wrote:

> Doesn't implement optional manual setting of timestamp; just uses the
> current time, which is the most common use case.
> ---
>  toys.h       |    1 +
>  toys/touch.c |   57
> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 58 insertions(+), 0 deletions(-)
>  create mode 100644 toys/touch.c
>
> diff --git a/toys.h b/toys.h
> index 4a84bf4..2cc58af 100644
> --- a/toys.h
> +++ b/toys.h
> @@ -37,6 +37,7 @@
>  #include <sys/statvfs.h>
>  #include <sys/sysinfo.h>
>  #include <sys/swap.h>
> +#include <sys/time.h>
>  #include <sys/times.h>
>  #include <sys/types.h>
>  #include <sys/utsname.h>
> diff --git a/toys/touch.c b/toys/touch.c
> new file mode 100644
> index 0000000..4bbfacd
> --- /dev/null
> +++ b/toys/touch.c
> @@ -0,0 +1,57 @@
> +/* vi: set sw=4 ts=4:
> + *
> + * touch.c - Create files and update their atime/mtime.
> + *
> + * Copyright 2012 Avery Pennarun <apenwarr at gmail.com>
> + *
> + * See http://www.opengroup.org/onlinepubs/009695399/utilities/touch.html
> + *
> *- USE_CP(NEWTOY(touch, "<1", TOYFLAG_BIN))
> *

*   + USE_TOUCH(NEWTOY(touch, "<1", TOYFLAG_BIN))*

> * *+
> +config TOUCH
> +       bool "touch"
> +       default n
> +       help
> +         usage: touch <filenames...>
> +
> +         Updates the timestamps on the given files, and creates them if
> +         they do not exist.
> +*/
> +
> +#include "toys.h"
> +
> +#define TT this.touch
> +
> +
> +void touch_file(char *filename, struct timeval *times)
> +{
> +       int fd = -1;
> +
> +       if (utimes(filename, times) < 0) {
> +               if (errno != ENOENT) {
> +                       perror_exit("utimes(%s)", filename);
> +               } else {
> +                       fd = open(filename, O_WRONLY|O_CREAT, 0666);
> +                       if (fd < 0) {
> +                               perror_exit("open '%s'", filename);
> +                       }
> +                       xclose(fd);
> +               }
> +       }
> +}
> +
> +
> +void touch_main(void)
> +{
> +       struct timeval times[2];
> +       struct timezone tz;
> +       int i;
> +
> +       gettimeofday(&times[0], &tz);
> +       times[1] = times[0];
> +
> +       for (i=0; i<toys.optc; i++) {
> +               char *filename = toys.optargs[i];
> +               touch_file(filename, times);
> +       }
> +}
> --
> 1.7.9.dirty
>
> _______________________________________________
> Toybox mailing list
> Toybox at lists.landley.net
> http://lists.landley.net/listinfo.cgi/toybox-landley.net
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.landley.net/pipermail/toybox-landley.net/attachments/20120816/b2c4ab09/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/gif
Size: 186 bytes
Desc: not available
URL: <http://lists.landley.net/pipermail/toybox-landley.net/attachments/20120816/b2c4ab09/attachment-0002.gif>


More information about the Toybox mailing list