[Libguestfs] [PATCH 1/2] mllib: hostname: replace the hostname on Debian also in /etc/hosts (RHBZ#953907).

Richard W.M. Jones rjones at redhat.com
Wed Feb 12 17:37:22 UTC 2014


On Wed, Feb 12, 2014 at 03:30:52PM +0100, Pino Toscano wrote:
> +and replace_host_in_etc_hosts g oldhost newhost =
> +  let filename = "/etc/hosts" in
> +  if g#is_file filename then (
> +    Perl_edit.edit_file ~debug:false g filename
> +      ("s,(\\s)" ^ (Str.quote oldhost) ^ "(\\s|\\$),\\1" ^ (Str.quote newhost) ^ "\\2, if ($_ !~ /^#/)")

I'd be surprised if Str.quote can properly quote this, since
Perl regexps > the crappy regexps implemented in the Str module.

In any case I'm not convinced this is the right way to do this.

You should use Augeas instead.  It is already used in one virt-sysprep
module (sysprep/sysprep_operation_user_account.ml).

So, NACK.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
virt-top is 'top' for virtual machines.  Tiny program with many
powerful monitoring features, net stats, disk stats, logging, etc.
http://people.redhat.com/~rjones/virt-top




More information about the Libguestfs mailing list