On Mon, Sep 12, 2016 at 01:31:05PM +0200, Pino Toscano wrote:
+ let elems = [ + "/sbin/grub2-mkconfig"; + "/usr/sbin/grub2-mkconfig"; + "/sbin/grub-mkconfig" + "/usr/sbin/grub-mkconfig" + ] in + try + List.find ( + let e -> + try g#is_file ~followsymlinks:true e + with G.Error _ -> false
is_file returns false if a file does not exist, so there is no need to catch the error (this currently swallows other errors than "does not exist")
Once you've made the change that Pino suggests, the code can be refactored a bit more using currying: let elems = [ "/sbin/grub2-mkconfig"; "/usr/sbin/grub2-mkconfig"; "/sbin/grub-mkconfig" "/usr/sbin/grub-mkconfig" ] in try List.find (g#is_file ~followsymlinks:true) elems with Not_found -> error (f_"failed to find grub2-mkconfig binary (but Grub2 was detected on guest)") Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-df lists disk usage of guests without needing to install any software inside the virtual machine. Supports Linux and Windows. http://people.redhat.com/~rjones/virt-df/