[Libguestfs] [PATCH] customize: Add --append-line.

Richard W.M. Jones rjones at redhat.com
Sat Oct 1 12:08:21 UTC 2016


On Fri, Sep 30, 2016 at 05:01:23PM +0200, Pino Toscano wrote:
> On Friday, 30 September 2016 15:04:18 CEST Richard W.M. Jones wrote:
> > This appends a single line to a file, with some cleverness
> > involving guessing the right line endings to use.
> > 
> > Also adds a test.
> > ---
> 
> Makes sense, just a couple of notes.
> 
> > +  else (
> > +    (* Stat the file.  We want to know it's a regular file, and
> > +     * also its size.
> > +     *)
> > +    let { G.st_mode = mode; st_size = size } = g#statns path in
> > +    if Int64.logand mode 0o170000_L <> 0o100000_L then
> 
> I guess maybe it could be better to use g#is_file and g#filesize, to
> avoid having to deal at application side with the file mode got in the
> appliance.

These hard-coded constants aren't really a problem.  It's what the
guestfs_statns ABI defines.  We also use them in cat/visit.c.

> > +    (* Guess the line ending from the first part of the file, else
> > +     * use the default for this guest type.
> > +     *)
> > +    let newline =
> > +      let content = g#pread path 8192 0L in
> > +      if String.find content "\r\n" >= 0 then "\r\n"
> > +      else if String.find content "\n" >= 0 then "\n"
> > +      else default_newline () in
> 
> Should this also check for the Mac end line ('\r')?  (If so, the API
> documentation should mention that too.)

OK I added that, retested it, and pushed it.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
libguestfs lets you edit virtual machines.  Supports shell scripting,
bindings from many languages.  http://libguestfs.org




More information about the Libguestfs mailing list