X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=ruby%2Fext%2Fguestfs%2F_guestfs.c;h=8b554bbe82f9b0c420d193727a78ce717b6eca81;hp=2deda5d4530ef11a559be1f2a35648b04f013483;hb=3e408f493496597dc026d20778837f421f05a9dd;hpb=0f81d0941a2705d49bc129f69924265fa60d9677 diff --git a/ruby/ext/guestfs/_guestfs.c b/ruby/ext/guestfs/_guestfs.c index 2deda5d..8b554bb 100644 --- a/ruby/ext/guestfs/_guestfs.c +++ b/ruby/ext/guestfs/_guestfs.c @@ -3144,6 +3144,27 @@ static VALUE ruby_guestfs_find (VALUE gv, VALUE directoryv) return rv; } +static VALUE ruby_guestfs_e2fsck_f (VALUE gv, VALUE devicev) +{ + guestfs_h *g; + Data_Get_Struct (gv, guestfs_h, g); + if (!g) + rb_raise (rb_eArgError, "%s: used handle after closing it", "e2fsck_f"); + + const char *device = StringValueCStr (devicev); + if (!device) + rb_raise (rb_eTypeError, "expected string for parameter %s of %s", + "device", "e2fsck_f"); + + int r; + + r = guestfs_e2fsck_f (g, device); + if (r == -1) + rb_raise (e_Error, "%s", guestfs_last_error (g)); + + return Qnil; +} + /* Initialize the module. */ void Init__guestfs () { @@ -3416,4 +3437,6 @@ void Init__guestfs () ruby_guestfs_resize2fs, 1); rb_define_method (c_guestfs, "find", ruby_guestfs_find, 1); + rb_define_method (c_guestfs, "e2fsck_f", + ruby_guestfs_e2fsck_f, 1); }