1 /* libguestfs generated file
2 * WARNING: THIS FILE IS GENERATED BY 'src/generator.ml'.
3 * ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.
5 * Copyright (C) 2009 Red Hat Inc.
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version.
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
31 static VALUE m_guestfs; /* guestfs module */
32 static VALUE c_guestfs; /* guestfs_h handle */
33 static VALUE e_Error; /* used for all errors */
35 static void ruby_guestfs_free (void *p)
38 guestfs_close ((guestfs_h *) p);
41 static VALUE ruby_guestfs_create (VALUE m)
45 g = guestfs_create ();
47 rb_raise (e_Error, "failed to create guestfs handle");
49 /* Don't print error messages to stderr by default. */
50 guestfs_set_error_handler (g, NULL, NULL);
52 /* Wrap it, and make sure the close function is called when the
55 return Data_Wrap_Struct (c_guestfs, NULL, ruby_guestfs_free, g);
58 static VALUE ruby_guestfs_close (VALUE gv)
61 Data_Get_Struct (gv, guestfs_h, g);
63 ruby_guestfs_free (g);
69 static VALUE ruby_guestfs_launch (VALUE gv)
72 Data_Get_Struct (gv, guestfs_h, g);
74 rb_raise (rb_eArgError, "%s: used handle after closing it", "launch");
79 r = guestfs_launch (g);
81 rb_raise (e_Error, "%s", guestfs_last_error (g));
86 static VALUE ruby_guestfs_wait_ready (VALUE gv)
89 Data_Get_Struct (gv, guestfs_h, g);
91 rb_raise (rb_eArgError, "%s: used handle after closing it", "wait_ready");
96 r = guestfs_wait_ready (g);
98 rb_raise (e_Error, "%s", guestfs_last_error (g));
103 static VALUE ruby_guestfs_kill_subprocess (VALUE gv)
106 Data_Get_Struct (gv, guestfs_h, g);
108 rb_raise (rb_eArgError, "%s: used handle after closing it", "kill_subprocess");
113 r = guestfs_kill_subprocess (g);
115 rb_raise (e_Error, "%s", guestfs_last_error (g));
120 static VALUE ruby_guestfs_add_drive (VALUE gv, VALUE filenamev)
123 Data_Get_Struct (gv, guestfs_h, g);
125 rb_raise (rb_eArgError, "%s: used handle after closing it", "add_drive");
127 const char *filename = StringValueCStr (filenamev);
129 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
130 "filename", "add_drive");
134 r = guestfs_add_drive (g, filename);
136 rb_raise (e_Error, "%s", guestfs_last_error (g));
141 static VALUE ruby_guestfs_add_cdrom (VALUE gv, VALUE filenamev)
144 Data_Get_Struct (gv, guestfs_h, g);
146 rb_raise (rb_eArgError, "%s: used handle after closing it", "add_cdrom");
148 const char *filename = StringValueCStr (filenamev);
150 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
151 "filename", "add_cdrom");
155 r = guestfs_add_cdrom (g, filename);
157 rb_raise (e_Error, "%s", guestfs_last_error (g));
162 static VALUE ruby_guestfs_config (VALUE gv, VALUE qemuparamv, VALUE qemuvaluev)
165 Data_Get_Struct (gv, guestfs_h, g);
167 rb_raise (rb_eArgError, "%s: used handle after closing it", "config");
169 const char *qemuparam = StringValueCStr (qemuparamv);
171 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
172 "qemuparam", "config");
173 const char *qemuvalue = StringValueCStr (qemuvaluev);
177 r = guestfs_config (g, qemuparam, qemuvalue);
179 rb_raise (e_Error, "%s", guestfs_last_error (g));
184 static VALUE ruby_guestfs_set_path (VALUE gv, VALUE pathv)
187 Data_Get_Struct (gv, guestfs_h, g);
189 rb_raise (rb_eArgError, "%s: used handle after closing it", "set_path");
191 const char *path = StringValueCStr (pathv);
193 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
198 r = guestfs_set_path (g, path);
200 rb_raise (e_Error, "%s", guestfs_last_error (g));
205 static VALUE ruby_guestfs_get_path (VALUE gv)
208 Data_Get_Struct (gv, guestfs_h, g);
210 rb_raise (rb_eArgError, "%s: used handle after closing it", "get_path");
215 r = guestfs_get_path (g);
217 rb_raise (e_Error, "%s", guestfs_last_error (g));
219 return rb_str_new2 (r);
222 static VALUE ruby_guestfs_set_autosync (VALUE gv, VALUE autosyncv)
225 Data_Get_Struct (gv, guestfs_h, g);
227 rb_raise (rb_eArgError, "%s: used handle after closing it", "set_autosync");
229 int autosync = NUM2INT (autosyncv);
233 r = guestfs_set_autosync (g, autosync);
235 rb_raise (e_Error, "%s", guestfs_last_error (g));
240 static VALUE ruby_guestfs_get_autosync (VALUE gv)
243 Data_Get_Struct (gv, guestfs_h, g);
245 rb_raise (rb_eArgError, "%s: used handle after closing it", "get_autosync");
250 r = guestfs_get_autosync (g);
252 rb_raise (e_Error, "%s", guestfs_last_error (g));
257 static VALUE ruby_guestfs_set_verbose (VALUE gv, VALUE verbosev)
260 Data_Get_Struct (gv, guestfs_h, g);
262 rb_raise (rb_eArgError, "%s: used handle after closing it", "set_verbose");
264 int verbose = NUM2INT (verbosev);
268 r = guestfs_set_verbose (g, verbose);
270 rb_raise (e_Error, "%s", guestfs_last_error (g));
275 static VALUE ruby_guestfs_get_verbose (VALUE gv)
278 Data_Get_Struct (gv, guestfs_h, g);
280 rb_raise (rb_eArgError, "%s: used handle after closing it", "get_verbose");
285 r = guestfs_get_verbose (g);
287 rb_raise (e_Error, "%s", guestfs_last_error (g));
292 static VALUE ruby_guestfs_mount (VALUE gv, VALUE devicev, VALUE mountpointv)
295 Data_Get_Struct (gv, guestfs_h, g);
297 rb_raise (rb_eArgError, "%s: used handle after closing it", "mount");
299 const char *device = StringValueCStr (devicev);
301 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
303 const char *mountpoint = StringValueCStr (mountpointv);
305 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
306 "mountpoint", "mount");
310 r = guestfs_mount (g, device, mountpoint);
312 rb_raise (e_Error, "%s", guestfs_last_error (g));
317 static VALUE ruby_guestfs_sync (VALUE gv)
320 Data_Get_Struct (gv, guestfs_h, g);
322 rb_raise (rb_eArgError, "%s: used handle after closing it", "sync");
327 r = guestfs_sync (g);
329 rb_raise (e_Error, "%s", guestfs_last_error (g));
334 static VALUE ruby_guestfs_touch (VALUE gv, VALUE pathv)
337 Data_Get_Struct (gv, guestfs_h, g);
339 rb_raise (rb_eArgError, "%s: used handle after closing it", "touch");
341 const char *path = StringValueCStr (pathv);
343 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
348 r = guestfs_touch (g, path);
350 rb_raise (e_Error, "%s", guestfs_last_error (g));
355 static VALUE ruby_guestfs_cat (VALUE gv, VALUE pathv)
358 Data_Get_Struct (gv, guestfs_h, g);
360 rb_raise (rb_eArgError, "%s: used handle after closing it", "cat");
362 const char *path = StringValueCStr (pathv);
364 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
369 r = guestfs_cat (g, path);
371 rb_raise (e_Error, "%s", guestfs_last_error (g));
373 VALUE rv = rb_str_new2 (r);
378 static VALUE ruby_guestfs_ll (VALUE gv, VALUE directoryv)
381 Data_Get_Struct (gv, guestfs_h, g);
383 rb_raise (rb_eArgError, "%s: used handle after closing it", "ll");
385 const char *directory = StringValueCStr (directoryv);
387 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
392 r = guestfs_ll (g, directory);
394 rb_raise (e_Error, "%s", guestfs_last_error (g));
396 VALUE rv = rb_str_new2 (r);
401 static VALUE ruby_guestfs_ls (VALUE gv, VALUE directoryv)
404 Data_Get_Struct (gv, guestfs_h, g);
406 rb_raise (rb_eArgError, "%s: used handle after closing it", "ls");
408 const char *directory = StringValueCStr (directoryv);
410 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
415 r = guestfs_ls (g, directory);
417 rb_raise (e_Error, "%s", guestfs_last_error (g));
420 for (i = 0; r[i] != NULL; ++i) len++;
421 VALUE rv = rb_ary_new2 (len);
422 for (i = 0; r[i] != NULL; ++i) {
423 rb_ary_push (rv, rb_str_new2 (r[i]));
430 static VALUE ruby_guestfs_list_devices (VALUE gv)
433 Data_Get_Struct (gv, guestfs_h, g);
435 rb_raise (rb_eArgError, "%s: used handle after closing it", "list_devices");
440 r = guestfs_list_devices (g);
442 rb_raise (e_Error, "%s", guestfs_last_error (g));
445 for (i = 0; r[i] != NULL; ++i) len++;
446 VALUE rv = rb_ary_new2 (len);
447 for (i = 0; r[i] != NULL; ++i) {
448 rb_ary_push (rv, rb_str_new2 (r[i]));
455 static VALUE ruby_guestfs_list_partitions (VALUE gv)
458 Data_Get_Struct (gv, guestfs_h, g);
460 rb_raise (rb_eArgError, "%s: used handle after closing it", "list_partitions");
465 r = guestfs_list_partitions (g);
467 rb_raise (e_Error, "%s", guestfs_last_error (g));
470 for (i = 0; r[i] != NULL; ++i) len++;
471 VALUE rv = rb_ary_new2 (len);
472 for (i = 0; r[i] != NULL; ++i) {
473 rb_ary_push (rv, rb_str_new2 (r[i]));
480 static VALUE ruby_guestfs_pvs (VALUE gv)
483 Data_Get_Struct (gv, guestfs_h, g);
485 rb_raise (rb_eArgError, "%s: used handle after closing it", "pvs");
492 rb_raise (e_Error, "%s", guestfs_last_error (g));
495 for (i = 0; r[i] != NULL; ++i) len++;
496 VALUE rv = rb_ary_new2 (len);
497 for (i = 0; r[i] != NULL; ++i) {
498 rb_ary_push (rv, rb_str_new2 (r[i]));
505 static VALUE ruby_guestfs_vgs (VALUE gv)
508 Data_Get_Struct (gv, guestfs_h, g);
510 rb_raise (rb_eArgError, "%s: used handle after closing it", "vgs");
517 rb_raise (e_Error, "%s", guestfs_last_error (g));
520 for (i = 0; r[i] != NULL; ++i) len++;
521 VALUE rv = rb_ary_new2 (len);
522 for (i = 0; r[i] != NULL; ++i) {
523 rb_ary_push (rv, rb_str_new2 (r[i]));
530 static VALUE ruby_guestfs_lvs (VALUE gv)
533 Data_Get_Struct (gv, guestfs_h, g);
535 rb_raise (rb_eArgError, "%s: used handle after closing it", "lvs");
542 rb_raise (e_Error, "%s", guestfs_last_error (g));
545 for (i = 0; r[i] != NULL; ++i) len++;
546 VALUE rv = rb_ary_new2 (len);
547 for (i = 0; r[i] != NULL; ++i) {
548 rb_ary_push (rv, rb_str_new2 (r[i]));
555 static VALUE ruby_guestfs_pvs_full (VALUE gv)
558 Data_Get_Struct (gv, guestfs_h, g);
560 rb_raise (rb_eArgError, "%s: used handle after closing it", "pvs_full");
563 struct guestfs_lvm_pv_list *r;
565 r = guestfs_pvs_full (g);
567 rb_raise (e_Error, "%s", guestfs_last_error (g));
569 VALUE rv = rb_ary_new2 (r->len);
571 for (i = 0; i < r->len; ++i) {
572 VALUE hv = rb_hash_new ();
573 rb_hash_aset (rv, rb_str_new2 ("pv_name"), rb_str_new2 (r->val[i].pv_name));
574 rb_hash_aset (rv, rb_str_new2 ("pv_uuid"), rb_str_new (r->val[i].pv_uuid, 32));
575 rb_hash_aset (rv, rb_str_new2 ("pv_fmt"), rb_str_new2 (r->val[i].pv_fmt));
576 rb_hash_aset (rv, rb_str_new2 ("pv_size"), ULL2NUM (r->val[i].pv_size));
577 rb_hash_aset (rv, rb_str_new2 ("dev_size"), ULL2NUM (r->val[i].dev_size));
578 rb_hash_aset (rv, rb_str_new2 ("pv_free"), ULL2NUM (r->val[i].pv_free));
579 rb_hash_aset (rv, rb_str_new2 ("pv_used"), ULL2NUM (r->val[i].pv_used));
580 rb_hash_aset (rv, rb_str_new2 ("pv_attr"), rb_str_new2 (r->val[i].pv_attr));
581 rb_hash_aset (rv, rb_str_new2 ("pv_pe_count"), ULL2NUM (r->val[i].pv_pe_count));
582 rb_hash_aset (rv, rb_str_new2 ("pv_pe_alloc_count"), ULL2NUM (r->val[i].pv_pe_alloc_count));
583 rb_hash_aset (rv, rb_str_new2 ("pv_tags"), rb_str_new2 (r->val[i].pv_tags));
584 rb_hash_aset (rv, rb_str_new2 ("pe_start"), ULL2NUM (r->val[i].pe_start));
585 rb_hash_aset (rv, rb_str_new2 ("pv_mda_count"), ULL2NUM (r->val[i].pv_mda_count));
586 rb_hash_aset (rv, rb_str_new2 ("pv_mda_free"), ULL2NUM (r->val[i].pv_mda_free));
587 rb_ary_push (rv, hv);
589 guestfs_free_lvm_pv_list (r);
593 static VALUE ruby_guestfs_vgs_full (VALUE gv)
596 Data_Get_Struct (gv, guestfs_h, g);
598 rb_raise (rb_eArgError, "%s: used handle after closing it", "vgs_full");
601 struct guestfs_lvm_vg_list *r;
603 r = guestfs_vgs_full (g);
605 rb_raise (e_Error, "%s", guestfs_last_error (g));
607 VALUE rv = rb_ary_new2 (r->len);
609 for (i = 0; i < r->len; ++i) {
610 VALUE hv = rb_hash_new ();
611 rb_hash_aset (rv, rb_str_new2 ("vg_name"), rb_str_new2 (r->val[i].vg_name));
612 rb_hash_aset (rv, rb_str_new2 ("vg_uuid"), rb_str_new (r->val[i].vg_uuid, 32));
613 rb_hash_aset (rv, rb_str_new2 ("vg_fmt"), rb_str_new2 (r->val[i].vg_fmt));
614 rb_hash_aset (rv, rb_str_new2 ("vg_attr"), rb_str_new2 (r->val[i].vg_attr));
615 rb_hash_aset (rv, rb_str_new2 ("vg_size"), ULL2NUM (r->val[i].vg_size));
616 rb_hash_aset (rv, rb_str_new2 ("vg_free"), ULL2NUM (r->val[i].vg_free));
617 rb_hash_aset (rv, rb_str_new2 ("vg_sysid"), rb_str_new2 (r->val[i].vg_sysid));
618 rb_hash_aset (rv, rb_str_new2 ("vg_extent_size"), ULL2NUM (r->val[i].vg_extent_size));
619 rb_hash_aset (rv, rb_str_new2 ("vg_extent_count"), ULL2NUM (r->val[i].vg_extent_count));
620 rb_hash_aset (rv, rb_str_new2 ("vg_free_count"), ULL2NUM (r->val[i].vg_free_count));
621 rb_hash_aset (rv, rb_str_new2 ("max_lv"), ULL2NUM (r->val[i].max_lv));
622 rb_hash_aset (rv, rb_str_new2 ("max_pv"), ULL2NUM (r->val[i].max_pv));
623 rb_hash_aset (rv, rb_str_new2 ("pv_count"), ULL2NUM (r->val[i].pv_count));
624 rb_hash_aset (rv, rb_str_new2 ("lv_count"), ULL2NUM (r->val[i].lv_count));
625 rb_hash_aset (rv, rb_str_new2 ("snap_count"), ULL2NUM (r->val[i].snap_count));
626 rb_hash_aset (rv, rb_str_new2 ("vg_seqno"), ULL2NUM (r->val[i].vg_seqno));
627 rb_hash_aset (rv, rb_str_new2 ("vg_tags"), rb_str_new2 (r->val[i].vg_tags));
628 rb_hash_aset (rv, rb_str_new2 ("vg_mda_count"), ULL2NUM (r->val[i].vg_mda_count));
629 rb_hash_aset (rv, rb_str_new2 ("vg_mda_free"), ULL2NUM (r->val[i].vg_mda_free));
630 rb_ary_push (rv, hv);
632 guestfs_free_lvm_vg_list (r);
636 static VALUE ruby_guestfs_lvs_full (VALUE gv)
639 Data_Get_Struct (gv, guestfs_h, g);
641 rb_raise (rb_eArgError, "%s: used handle after closing it", "lvs_full");
644 struct guestfs_lvm_lv_list *r;
646 r = guestfs_lvs_full (g);
648 rb_raise (e_Error, "%s", guestfs_last_error (g));
650 VALUE rv = rb_ary_new2 (r->len);
652 for (i = 0; i < r->len; ++i) {
653 VALUE hv = rb_hash_new ();
654 rb_hash_aset (rv, rb_str_new2 ("lv_name"), rb_str_new2 (r->val[i].lv_name));
655 rb_hash_aset (rv, rb_str_new2 ("lv_uuid"), rb_str_new (r->val[i].lv_uuid, 32));
656 rb_hash_aset (rv, rb_str_new2 ("lv_attr"), rb_str_new2 (r->val[i].lv_attr));
657 rb_hash_aset (rv, rb_str_new2 ("lv_major"), ULL2NUM (r->val[i].lv_major));
658 rb_hash_aset (rv, rb_str_new2 ("lv_minor"), ULL2NUM (r->val[i].lv_minor));
659 rb_hash_aset (rv, rb_str_new2 ("lv_kernel_major"), ULL2NUM (r->val[i].lv_kernel_major));
660 rb_hash_aset (rv, rb_str_new2 ("lv_kernel_minor"), ULL2NUM (r->val[i].lv_kernel_minor));
661 rb_hash_aset (rv, rb_str_new2 ("lv_size"), ULL2NUM (r->val[i].lv_size));
662 rb_hash_aset (rv, rb_str_new2 ("seg_count"), ULL2NUM (r->val[i].seg_count));
663 rb_hash_aset (rv, rb_str_new2 ("origin"), rb_str_new2 (r->val[i].origin));
664 rb_hash_aset (rv, rb_str_new2 ("snap_percent"), rb_dbl2big (r->val[i].snap_percent));
665 rb_hash_aset (rv, rb_str_new2 ("copy_percent"), rb_dbl2big (r->val[i].copy_percent));
666 rb_hash_aset (rv, rb_str_new2 ("move_pv"), rb_str_new2 (r->val[i].move_pv));
667 rb_hash_aset (rv, rb_str_new2 ("lv_tags"), rb_str_new2 (r->val[i].lv_tags));
668 rb_hash_aset (rv, rb_str_new2 ("mirror_log"), rb_str_new2 (r->val[i].mirror_log));
669 rb_hash_aset (rv, rb_str_new2 ("modules"), rb_str_new2 (r->val[i].modules));
670 rb_ary_push (rv, hv);
672 guestfs_free_lvm_lv_list (r);
676 static VALUE ruby_guestfs_read_lines (VALUE gv, VALUE pathv)
679 Data_Get_Struct (gv, guestfs_h, g);
681 rb_raise (rb_eArgError, "%s: used handle after closing it", "read_lines");
683 const char *path = StringValueCStr (pathv);
685 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
686 "path", "read_lines");
690 r = guestfs_read_lines (g, path);
692 rb_raise (e_Error, "%s", guestfs_last_error (g));
695 for (i = 0; r[i] != NULL; ++i) len++;
696 VALUE rv = rb_ary_new2 (len);
697 for (i = 0; r[i] != NULL; ++i) {
698 rb_ary_push (rv, rb_str_new2 (r[i]));
705 static VALUE ruby_guestfs_aug_init (VALUE gv, VALUE rootv, VALUE flagsv)
708 Data_Get_Struct (gv, guestfs_h, g);
710 rb_raise (rb_eArgError, "%s: used handle after closing it", "aug_init");
712 const char *root = StringValueCStr (rootv);
714 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
716 int flags = NUM2INT (flagsv);
720 r = guestfs_aug_init (g, root, flags);
722 rb_raise (e_Error, "%s", guestfs_last_error (g));
727 static VALUE ruby_guestfs_aug_close (VALUE gv)
730 Data_Get_Struct (gv, guestfs_h, g);
732 rb_raise (rb_eArgError, "%s: used handle after closing it", "aug_close");
737 r = guestfs_aug_close (g);
739 rb_raise (e_Error, "%s", guestfs_last_error (g));
744 static VALUE ruby_guestfs_aug_defvar (VALUE gv, VALUE namev, VALUE exprv)
747 Data_Get_Struct (gv, guestfs_h, g);
749 rb_raise (rb_eArgError, "%s: used handle after closing it", "aug_defvar");
751 const char *name = StringValueCStr (namev);
753 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
754 "name", "aug_defvar");
755 const char *expr = StringValueCStr (exprv);
759 r = guestfs_aug_defvar (g, name, expr);
761 rb_raise (e_Error, "%s", guestfs_last_error (g));
766 static VALUE ruby_guestfs_aug_defnode (VALUE gv, VALUE namev, VALUE exprv, VALUE valv)
769 Data_Get_Struct (gv, guestfs_h, g);
771 rb_raise (rb_eArgError, "%s: used handle after closing it", "aug_defnode");
773 const char *name = StringValueCStr (namev);
775 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
776 "name", "aug_defnode");
777 const char *expr = StringValueCStr (exprv);
779 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
780 "expr", "aug_defnode");
781 const char *val = StringValueCStr (valv);
783 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
784 "val", "aug_defnode");
786 struct guestfs_int_bool *r;
788 r = guestfs_aug_defnode (g, name, expr, val);
790 rb_raise (e_Error, "%s", guestfs_last_error (g));
792 VALUE rv = rb_ary_new2 (2);
793 rb_ary_push (rv, INT2NUM (r->i));
794 rb_ary_push (rv, INT2NUM (r->b));
795 guestfs_free_int_bool (r);
799 static VALUE ruby_guestfs_aug_get (VALUE gv, VALUE pathv)
802 Data_Get_Struct (gv, guestfs_h, g);
804 rb_raise (rb_eArgError, "%s: used handle after closing it", "aug_get");
806 const char *path = StringValueCStr (pathv);
808 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
813 r = guestfs_aug_get (g, path);
815 rb_raise (e_Error, "%s", guestfs_last_error (g));
817 VALUE rv = rb_str_new2 (r);
822 static VALUE ruby_guestfs_aug_set (VALUE gv, VALUE pathv, VALUE valv)
825 Data_Get_Struct (gv, guestfs_h, g);
827 rb_raise (rb_eArgError, "%s: used handle after closing it", "aug_set");
829 const char *path = StringValueCStr (pathv);
831 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
833 const char *val = StringValueCStr (valv);
835 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
840 r = guestfs_aug_set (g, path, val);
842 rb_raise (e_Error, "%s", guestfs_last_error (g));
847 static VALUE ruby_guestfs_aug_insert (VALUE gv, VALUE pathv, VALUE labelv, VALUE beforev)
850 Data_Get_Struct (gv, guestfs_h, g);
852 rb_raise (rb_eArgError, "%s: used handle after closing it", "aug_insert");
854 const char *path = StringValueCStr (pathv);
856 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
857 "path", "aug_insert");
858 const char *label = StringValueCStr (labelv);
860 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
861 "label", "aug_insert");
862 int before = NUM2INT (beforev);
866 r = guestfs_aug_insert (g, path, label, before);
868 rb_raise (e_Error, "%s", guestfs_last_error (g));
873 static VALUE ruby_guestfs_aug_rm (VALUE gv, VALUE pathv)
876 Data_Get_Struct (gv, guestfs_h, g);
878 rb_raise (rb_eArgError, "%s: used handle after closing it", "aug_rm");
880 const char *path = StringValueCStr (pathv);
882 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
887 r = guestfs_aug_rm (g, path);
889 rb_raise (e_Error, "%s", guestfs_last_error (g));
894 static VALUE ruby_guestfs_aug_mv (VALUE gv, VALUE srcv, VALUE destv)
897 Data_Get_Struct (gv, guestfs_h, g);
899 rb_raise (rb_eArgError, "%s: used handle after closing it", "aug_mv");
901 const char *src = StringValueCStr (srcv);
903 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
905 const char *dest = StringValueCStr (destv);
907 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
912 r = guestfs_aug_mv (g, src, dest);
914 rb_raise (e_Error, "%s", guestfs_last_error (g));
919 static VALUE ruby_guestfs_aug_match (VALUE gv, VALUE pathv)
922 Data_Get_Struct (gv, guestfs_h, g);
924 rb_raise (rb_eArgError, "%s: used handle after closing it", "aug_match");
926 const char *path = StringValueCStr (pathv);
928 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
929 "path", "aug_match");
933 r = guestfs_aug_match (g, path);
935 rb_raise (e_Error, "%s", guestfs_last_error (g));
938 for (i = 0; r[i] != NULL; ++i) len++;
939 VALUE rv = rb_ary_new2 (len);
940 for (i = 0; r[i] != NULL; ++i) {
941 rb_ary_push (rv, rb_str_new2 (r[i]));
948 static VALUE ruby_guestfs_aug_save (VALUE gv)
951 Data_Get_Struct (gv, guestfs_h, g);
953 rb_raise (rb_eArgError, "%s: used handle after closing it", "aug_save");
958 r = guestfs_aug_save (g);
960 rb_raise (e_Error, "%s", guestfs_last_error (g));
965 static VALUE ruby_guestfs_aug_load (VALUE gv)
968 Data_Get_Struct (gv, guestfs_h, g);
970 rb_raise (rb_eArgError, "%s: used handle after closing it", "aug_load");
975 r = guestfs_aug_load (g);
977 rb_raise (e_Error, "%s", guestfs_last_error (g));
982 static VALUE ruby_guestfs_aug_ls (VALUE gv, VALUE pathv)
985 Data_Get_Struct (gv, guestfs_h, g);
987 rb_raise (rb_eArgError, "%s: used handle after closing it", "aug_ls");
989 const char *path = StringValueCStr (pathv);
991 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
996 r = guestfs_aug_ls (g, path);
998 rb_raise (e_Error, "%s", guestfs_last_error (g));
1001 for (i = 0; r[i] != NULL; ++i) len++;
1002 VALUE rv = rb_ary_new2 (len);
1003 for (i = 0; r[i] != NULL; ++i) {
1004 rb_ary_push (rv, rb_str_new2 (r[i]));
1011 static VALUE ruby_guestfs_rm (VALUE gv, VALUE pathv)
1014 Data_Get_Struct (gv, guestfs_h, g);
1016 rb_raise (rb_eArgError, "%s: used handle after closing it", "rm");
1018 const char *path = StringValueCStr (pathv);
1020 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
1025 r = guestfs_rm (g, path);
1027 rb_raise (e_Error, "%s", guestfs_last_error (g));
1032 static VALUE ruby_guestfs_rmdir (VALUE gv, VALUE pathv)
1035 Data_Get_Struct (gv, guestfs_h, g);
1037 rb_raise (rb_eArgError, "%s: used handle after closing it", "rmdir");
1039 const char *path = StringValueCStr (pathv);
1041 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
1046 r = guestfs_rmdir (g, path);
1048 rb_raise (e_Error, "%s", guestfs_last_error (g));
1053 static VALUE ruby_guestfs_rm_rf (VALUE gv, VALUE pathv)
1056 Data_Get_Struct (gv, guestfs_h, g);
1058 rb_raise (rb_eArgError, "%s: used handle after closing it", "rm_rf");
1060 const char *path = StringValueCStr (pathv);
1062 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
1067 r = guestfs_rm_rf (g, path);
1069 rb_raise (e_Error, "%s", guestfs_last_error (g));
1074 static VALUE ruby_guestfs_mkdir (VALUE gv, VALUE pathv)
1077 Data_Get_Struct (gv, guestfs_h, g);
1079 rb_raise (rb_eArgError, "%s: used handle after closing it", "mkdir");
1081 const char *path = StringValueCStr (pathv);
1083 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
1088 r = guestfs_mkdir (g, path);
1090 rb_raise (e_Error, "%s", guestfs_last_error (g));
1095 static VALUE ruby_guestfs_mkdir_p (VALUE gv, VALUE pathv)
1098 Data_Get_Struct (gv, guestfs_h, g);
1100 rb_raise (rb_eArgError, "%s: used handle after closing it", "mkdir_p");
1102 const char *path = StringValueCStr (pathv);
1104 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
1109 r = guestfs_mkdir_p (g, path);
1111 rb_raise (e_Error, "%s", guestfs_last_error (g));
1116 static VALUE ruby_guestfs_chmod (VALUE gv, VALUE modev, VALUE pathv)
1119 Data_Get_Struct (gv, guestfs_h, g);
1121 rb_raise (rb_eArgError, "%s: used handle after closing it", "chmod");
1123 int mode = NUM2INT (modev);
1124 const char *path = StringValueCStr (pathv);
1126 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
1131 r = guestfs_chmod (g, mode, path);
1133 rb_raise (e_Error, "%s", guestfs_last_error (g));
1138 static VALUE ruby_guestfs_chown (VALUE gv, VALUE ownerv, VALUE groupv, VALUE pathv)
1141 Data_Get_Struct (gv, guestfs_h, g);
1143 rb_raise (rb_eArgError, "%s: used handle after closing it", "chown");
1145 int owner = NUM2INT (ownerv);
1146 int group = NUM2INT (groupv);
1147 const char *path = StringValueCStr (pathv);
1149 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
1154 r = guestfs_chown (g, owner, group, path);
1156 rb_raise (e_Error, "%s", guestfs_last_error (g));
1161 static VALUE ruby_guestfs_exists (VALUE gv, VALUE pathv)
1164 Data_Get_Struct (gv, guestfs_h, g);
1166 rb_raise (rb_eArgError, "%s: used handle after closing it", "exists");
1168 const char *path = StringValueCStr (pathv);
1170 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
1175 r = guestfs_exists (g, path);
1177 rb_raise (e_Error, "%s", guestfs_last_error (g));
1182 static VALUE ruby_guestfs_is_file (VALUE gv, VALUE pathv)
1185 Data_Get_Struct (gv, guestfs_h, g);
1187 rb_raise (rb_eArgError, "%s: used handle after closing it", "is_file");
1189 const char *path = StringValueCStr (pathv);
1191 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
1196 r = guestfs_is_file (g, path);
1198 rb_raise (e_Error, "%s", guestfs_last_error (g));
1203 static VALUE ruby_guestfs_is_dir (VALUE gv, VALUE pathv)
1206 Data_Get_Struct (gv, guestfs_h, g);
1208 rb_raise (rb_eArgError, "%s: used handle after closing it", "is_dir");
1210 const char *path = StringValueCStr (pathv);
1212 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
1217 r = guestfs_is_dir (g, path);
1219 rb_raise (e_Error, "%s", guestfs_last_error (g));
1224 static VALUE ruby_guestfs_pvcreate (VALUE gv, VALUE devicev)
1227 Data_Get_Struct (gv, guestfs_h, g);
1229 rb_raise (rb_eArgError, "%s: used handle after closing it", "pvcreate");
1231 const char *device = StringValueCStr (devicev);
1233 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
1234 "device", "pvcreate");
1238 r = guestfs_pvcreate (g, device);
1240 rb_raise (e_Error, "%s", guestfs_last_error (g));
1245 static VALUE ruby_guestfs_vgcreate (VALUE gv, VALUE volgroupv, VALUE physvolsv)
1248 Data_Get_Struct (gv, guestfs_h, g);
1250 rb_raise (rb_eArgError, "%s: used handle after closing it", "vgcreate");
1252 const char *volgroup = StringValueCStr (volgroupv);
1254 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
1255 "volgroup", "vgcreate");
1258 len = RARRAY_LEN (physvolsv);
1259 physvols = malloc (sizeof (char *) * (len+1));
1260 for (i = 0; i < len; ++i) {
1261 VALUE v = rb_ary_entry (physvolsv, i);
1262 physvols[i] = StringValueCStr (v);
1268 r = guestfs_vgcreate (g, volgroup, physvols);
1271 rb_raise (e_Error, "%s", guestfs_last_error (g));
1276 static VALUE ruby_guestfs_lvcreate (VALUE gv, VALUE logvolv, VALUE volgroupv, VALUE mbytesv)
1279 Data_Get_Struct (gv, guestfs_h, g);
1281 rb_raise (rb_eArgError, "%s: used handle after closing it", "lvcreate");
1283 const char *logvol = StringValueCStr (logvolv);
1285 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
1286 "logvol", "lvcreate");
1287 const char *volgroup = StringValueCStr (volgroupv);
1289 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
1290 "volgroup", "lvcreate");
1291 int mbytes = NUM2INT (mbytesv);
1295 r = guestfs_lvcreate (g, logvol, volgroup, mbytes);
1297 rb_raise (e_Error, "%s", guestfs_last_error (g));
1302 static VALUE ruby_guestfs_mkfs (VALUE gv, VALUE fstypev, VALUE devicev)
1305 Data_Get_Struct (gv, guestfs_h, g);
1307 rb_raise (rb_eArgError, "%s: used handle after closing it", "mkfs");
1309 const char *fstype = StringValueCStr (fstypev);
1311 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
1313 const char *device = StringValueCStr (devicev);
1315 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
1320 r = guestfs_mkfs (g, fstype, device);
1322 rb_raise (e_Error, "%s", guestfs_last_error (g));
1327 static VALUE ruby_guestfs_sfdisk (VALUE gv, VALUE devicev, VALUE cylsv, VALUE headsv, VALUE sectorsv, VALUE linesv)
1330 Data_Get_Struct (gv, guestfs_h, g);
1332 rb_raise (rb_eArgError, "%s: used handle after closing it", "sfdisk");
1334 const char *device = StringValueCStr (devicev);
1336 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
1337 "device", "sfdisk");
1338 int cyls = NUM2INT (cylsv);
1339 int heads = NUM2INT (headsv);
1340 int sectors = NUM2INT (sectorsv);
1343 len = RARRAY_LEN (linesv);
1344 lines = malloc (sizeof (char *) * (len+1));
1345 for (i = 0; i < len; ++i) {
1346 VALUE v = rb_ary_entry (linesv, i);
1347 lines[i] = StringValueCStr (v);
1353 r = guestfs_sfdisk (g, device, cyls, heads, sectors, lines);
1356 rb_raise (e_Error, "%s", guestfs_last_error (g));
1361 static VALUE ruby_guestfs_write_file (VALUE gv, VALUE pathv, VALUE contentv, VALUE sizev)
1364 Data_Get_Struct (gv, guestfs_h, g);
1366 rb_raise (rb_eArgError, "%s: used handle after closing it", "write_file");
1368 const char *path = StringValueCStr (pathv);
1370 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
1371 "path", "write_file");
1372 const char *content = StringValueCStr (contentv);
1374 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
1375 "content", "write_file");
1376 int size = NUM2INT (sizev);
1380 r = guestfs_write_file (g, path, content, size);
1382 rb_raise (e_Error, "%s", guestfs_last_error (g));
1387 static VALUE ruby_guestfs_umount (VALUE gv, VALUE pathordevicev)
1390 Data_Get_Struct (gv, guestfs_h, g);
1392 rb_raise (rb_eArgError, "%s: used handle after closing it", "umount");
1394 const char *pathordevice = StringValueCStr (pathordevicev);
1396 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
1397 "pathordevice", "umount");
1401 r = guestfs_umount (g, pathordevice);
1403 rb_raise (e_Error, "%s", guestfs_last_error (g));
1408 static VALUE ruby_guestfs_mounts (VALUE gv)
1411 Data_Get_Struct (gv, guestfs_h, g);
1413 rb_raise (rb_eArgError, "%s: used handle after closing it", "mounts");
1418 r = guestfs_mounts (g);
1420 rb_raise (e_Error, "%s", guestfs_last_error (g));
1423 for (i = 0; r[i] != NULL; ++i) len++;
1424 VALUE rv = rb_ary_new2 (len);
1425 for (i = 0; r[i] != NULL; ++i) {
1426 rb_ary_push (rv, rb_str_new2 (r[i]));
1433 static VALUE ruby_guestfs_umount_all (VALUE gv)
1436 Data_Get_Struct (gv, guestfs_h, g);
1438 rb_raise (rb_eArgError, "%s: used handle after closing it", "umount_all");
1443 r = guestfs_umount_all (g);
1445 rb_raise (e_Error, "%s", guestfs_last_error (g));
1450 static VALUE ruby_guestfs_lvm_remove_all (VALUE gv)
1453 Data_Get_Struct (gv, guestfs_h, g);
1455 rb_raise (rb_eArgError, "%s: used handle after closing it", "lvm_remove_all");
1460 r = guestfs_lvm_remove_all (g);
1462 rb_raise (e_Error, "%s", guestfs_last_error (g));
1467 static VALUE ruby_guestfs_file (VALUE gv, VALUE pathv)
1470 Data_Get_Struct (gv, guestfs_h, g);
1472 rb_raise (rb_eArgError, "%s: used handle after closing it", "file");
1474 const char *path = StringValueCStr (pathv);
1476 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
1481 r = guestfs_file (g, path);
1483 rb_raise (e_Error, "%s", guestfs_last_error (g));
1485 VALUE rv = rb_str_new2 (r);
1490 static VALUE ruby_guestfs_command (VALUE gv, VALUE argumentsv)
1493 Data_Get_Struct (gv, guestfs_h, g);
1495 rb_raise (rb_eArgError, "%s: used handle after closing it", "command");
1499 len = RARRAY_LEN (argumentsv);
1500 arguments = malloc (sizeof (char *) * (len+1));
1501 for (i = 0; i < len; ++i) {
1502 VALUE v = rb_ary_entry (argumentsv, i);
1503 arguments[i] = StringValueCStr (v);
1509 r = guestfs_command (g, arguments);
1512 rb_raise (e_Error, "%s", guestfs_last_error (g));
1514 VALUE rv = rb_str_new2 (r);
1519 static VALUE ruby_guestfs_command_lines (VALUE gv, VALUE argumentsv)
1522 Data_Get_Struct (gv, guestfs_h, g);
1524 rb_raise (rb_eArgError, "%s: used handle after closing it", "command_lines");
1528 len = RARRAY_LEN (argumentsv);
1529 arguments = malloc (sizeof (char *) * (len+1));
1530 for (i = 0; i < len; ++i) {
1531 VALUE v = rb_ary_entry (argumentsv, i);
1532 arguments[i] = StringValueCStr (v);
1538 r = guestfs_command_lines (g, arguments);
1541 rb_raise (e_Error, "%s", guestfs_last_error (g));
1544 for (i = 0; r[i] != NULL; ++i) len++;
1545 VALUE rv = rb_ary_new2 (len);
1546 for (i = 0; r[i] != NULL; ++i) {
1547 rb_ary_push (rv, rb_str_new2 (r[i]));
1554 static VALUE ruby_guestfs_stat (VALUE gv, VALUE pathv)
1557 Data_Get_Struct (gv, guestfs_h, g);
1559 rb_raise (rb_eArgError, "%s: used handle after closing it", "stat");
1561 const char *path = StringValueCStr (pathv);
1563 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
1566 struct guestfs_stat *r;
1568 r = guestfs_stat (g, path);
1570 rb_raise (e_Error, "%s", guestfs_last_error (g));
1572 VALUE rv = rb_hash_new ();
1573 rb_hash_aset (rv, rb_str_new2 ("dev"), ULL2NUM (r->dev));
1574 rb_hash_aset (rv, rb_str_new2 ("ino"), ULL2NUM (r->ino));
1575 rb_hash_aset (rv, rb_str_new2 ("mode"), ULL2NUM (r->mode));
1576 rb_hash_aset (rv, rb_str_new2 ("nlink"), ULL2NUM (r->nlink));
1577 rb_hash_aset (rv, rb_str_new2 ("uid"), ULL2NUM (r->uid));
1578 rb_hash_aset (rv, rb_str_new2 ("gid"), ULL2NUM (r->gid));
1579 rb_hash_aset (rv, rb_str_new2 ("rdev"), ULL2NUM (r->rdev));
1580 rb_hash_aset (rv, rb_str_new2 ("size"), ULL2NUM (r->size));
1581 rb_hash_aset (rv, rb_str_new2 ("blksize"), ULL2NUM (r->blksize));
1582 rb_hash_aset (rv, rb_str_new2 ("blocks"), ULL2NUM (r->blocks));
1583 rb_hash_aset (rv, rb_str_new2 ("atime"), ULL2NUM (r->atime));
1584 rb_hash_aset (rv, rb_str_new2 ("mtime"), ULL2NUM (r->mtime));
1585 rb_hash_aset (rv, rb_str_new2 ("ctime"), ULL2NUM (r->ctime));
1590 static VALUE ruby_guestfs_lstat (VALUE gv, VALUE pathv)
1593 Data_Get_Struct (gv, guestfs_h, g);
1595 rb_raise (rb_eArgError, "%s: used handle after closing it", "lstat");
1597 const char *path = StringValueCStr (pathv);
1599 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
1602 struct guestfs_stat *r;
1604 r = guestfs_lstat (g, path);
1606 rb_raise (e_Error, "%s", guestfs_last_error (g));
1608 VALUE rv = rb_hash_new ();
1609 rb_hash_aset (rv, rb_str_new2 ("dev"), ULL2NUM (r->dev));
1610 rb_hash_aset (rv, rb_str_new2 ("ino"), ULL2NUM (r->ino));
1611 rb_hash_aset (rv, rb_str_new2 ("mode"), ULL2NUM (r->mode));
1612 rb_hash_aset (rv, rb_str_new2 ("nlink"), ULL2NUM (r->nlink));
1613 rb_hash_aset (rv, rb_str_new2 ("uid"), ULL2NUM (r->uid));
1614 rb_hash_aset (rv, rb_str_new2 ("gid"), ULL2NUM (r->gid));
1615 rb_hash_aset (rv, rb_str_new2 ("rdev"), ULL2NUM (r->rdev));
1616 rb_hash_aset (rv, rb_str_new2 ("size"), ULL2NUM (r->size));
1617 rb_hash_aset (rv, rb_str_new2 ("blksize"), ULL2NUM (r->blksize));
1618 rb_hash_aset (rv, rb_str_new2 ("blocks"), ULL2NUM (r->blocks));
1619 rb_hash_aset (rv, rb_str_new2 ("atime"), ULL2NUM (r->atime));
1620 rb_hash_aset (rv, rb_str_new2 ("mtime"), ULL2NUM (r->mtime));
1621 rb_hash_aset (rv, rb_str_new2 ("ctime"), ULL2NUM (r->ctime));
1626 static VALUE ruby_guestfs_statvfs (VALUE gv, VALUE pathv)
1629 Data_Get_Struct (gv, guestfs_h, g);
1631 rb_raise (rb_eArgError, "%s: used handle after closing it", "statvfs");
1633 const char *path = StringValueCStr (pathv);
1635 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
1638 struct guestfs_statvfs *r;
1640 r = guestfs_statvfs (g, path);
1642 rb_raise (e_Error, "%s", guestfs_last_error (g));
1644 VALUE rv = rb_hash_new ();
1645 rb_hash_aset (rv, rb_str_new2 ("bsize"), ULL2NUM (r->bsize));
1646 rb_hash_aset (rv, rb_str_new2 ("frsize"), ULL2NUM (r->frsize));
1647 rb_hash_aset (rv, rb_str_new2 ("blocks"), ULL2NUM (r->blocks));
1648 rb_hash_aset (rv, rb_str_new2 ("bfree"), ULL2NUM (r->bfree));
1649 rb_hash_aset (rv, rb_str_new2 ("bavail"), ULL2NUM (r->bavail));
1650 rb_hash_aset (rv, rb_str_new2 ("files"), ULL2NUM (r->files));
1651 rb_hash_aset (rv, rb_str_new2 ("ffree"), ULL2NUM (r->ffree));
1652 rb_hash_aset (rv, rb_str_new2 ("favail"), ULL2NUM (r->favail));
1653 rb_hash_aset (rv, rb_str_new2 ("fsid"), ULL2NUM (r->fsid));
1654 rb_hash_aset (rv, rb_str_new2 ("flag"), ULL2NUM (r->flag));
1655 rb_hash_aset (rv, rb_str_new2 ("namemax"), ULL2NUM (r->namemax));
1660 static VALUE ruby_guestfs_tune2fs_l (VALUE gv, VALUE devicev)
1663 Data_Get_Struct (gv, guestfs_h, g);
1665 rb_raise (rb_eArgError, "%s: used handle after closing it", "tune2fs_l");
1667 const char *device = StringValueCStr (devicev);
1669 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
1670 "device", "tune2fs_l");
1674 r = guestfs_tune2fs_l (g, device);
1676 rb_raise (e_Error, "%s", guestfs_last_error (g));
1678 VALUE rv = rb_hash_new ();
1680 for (i = 0; r[i] != NULL; i+=2) {
1681 rb_hash_aset (rv, rb_str_new2 (r[i]), rb_str_new2 (r[i+1]));
1689 static VALUE ruby_guestfs_blockdev_setro (VALUE gv, VALUE devicev)
1692 Data_Get_Struct (gv, guestfs_h, g);
1694 rb_raise (rb_eArgError, "%s: used handle after closing it", "blockdev_setro");
1696 const char *device = StringValueCStr (devicev);
1698 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
1699 "device", "blockdev_setro");
1703 r = guestfs_blockdev_setro (g, device);
1705 rb_raise (e_Error, "%s", guestfs_last_error (g));
1710 static VALUE ruby_guestfs_blockdev_setrw (VALUE gv, VALUE devicev)
1713 Data_Get_Struct (gv, guestfs_h, g);
1715 rb_raise (rb_eArgError, "%s: used handle after closing it", "blockdev_setrw");
1717 const char *device = StringValueCStr (devicev);
1719 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
1720 "device", "blockdev_setrw");
1724 r = guestfs_blockdev_setrw (g, device);
1726 rb_raise (e_Error, "%s", guestfs_last_error (g));
1731 static VALUE ruby_guestfs_blockdev_getro (VALUE gv, VALUE devicev)
1734 Data_Get_Struct (gv, guestfs_h, g);
1736 rb_raise (rb_eArgError, "%s: used handle after closing it", "blockdev_getro");
1738 const char *device = StringValueCStr (devicev);
1740 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
1741 "device", "blockdev_getro");
1745 r = guestfs_blockdev_getro (g, device);
1747 rb_raise (e_Error, "%s", guestfs_last_error (g));
1752 static VALUE ruby_guestfs_blockdev_getss (VALUE gv, VALUE devicev)
1755 Data_Get_Struct (gv, guestfs_h, g);
1757 rb_raise (rb_eArgError, "%s: used handle after closing it", "blockdev_getss");
1759 const char *device = StringValueCStr (devicev);
1761 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
1762 "device", "blockdev_getss");
1766 r = guestfs_blockdev_getss (g, device);
1768 rb_raise (e_Error, "%s", guestfs_last_error (g));
1773 static VALUE ruby_guestfs_blockdev_getbsz (VALUE gv, VALUE devicev)
1776 Data_Get_Struct (gv, guestfs_h, g);
1778 rb_raise (rb_eArgError, "%s: used handle after closing it", "blockdev_getbsz");
1780 const char *device = StringValueCStr (devicev);
1782 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
1783 "device", "blockdev_getbsz");
1787 r = guestfs_blockdev_getbsz (g, device);
1789 rb_raise (e_Error, "%s", guestfs_last_error (g));
1794 static VALUE ruby_guestfs_blockdev_setbsz (VALUE gv, VALUE devicev, VALUE blocksizev)
1797 Data_Get_Struct (gv, guestfs_h, g);
1799 rb_raise (rb_eArgError, "%s: used handle after closing it", "blockdev_setbsz");
1801 const char *device = StringValueCStr (devicev);
1803 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
1804 "device", "blockdev_setbsz");
1805 int blocksize = NUM2INT (blocksizev);
1809 r = guestfs_blockdev_setbsz (g, device, blocksize);
1811 rb_raise (e_Error, "%s", guestfs_last_error (g));
1816 static VALUE ruby_guestfs_blockdev_getsz (VALUE gv, VALUE devicev)
1819 Data_Get_Struct (gv, guestfs_h, g);
1821 rb_raise (rb_eArgError, "%s: used handle after closing it", "blockdev_getsz");
1823 const char *device = StringValueCStr (devicev);
1825 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
1826 "device", "blockdev_getsz");
1830 r = guestfs_blockdev_getsz (g, device);
1832 rb_raise (e_Error, "%s", guestfs_last_error (g));
1837 static VALUE ruby_guestfs_blockdev_getsize64 (VALUE gv, VALUE devicev)
1840 Data_Get_Struct (gv, guestfs_h, g);
1842 rb_raise (rb_eArgError, "%s: used handle after closing it", "blockdev_getsize64");
1844 const char *device = StringValueCStr (devicev);
1846 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
1847 "device", "blockdev_getsize64");
1851 r = guestfs_blockdev_getsize64 (g, device);
1853 rb_raise (e_Error, "%s", guestfs_last_error (g));
1858 static VALUE ruby_guestfs_blockdev_flushbufs (VALUE gv, VALUE devicev)
1861 Data_Get_Struct (gv, guestfs_h, g);
1863 rb_raise (rb_eArgError, "%s: used handle after closing it", "blockdev_flushbufs");
1865 const char *device = StringValueCStr (devicev);
1867 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
1868 "device", "blockdev_flushbufs");
1872 r = guestfs_blockdev_flushbufs (g, device);
1874 rb_raise (e_Error, "%s", guestfs_last_error (g));
1879 static VALUE ruby_guestfs_blockdev_rereadpt (VALUE gv, VALUE devicev)
1882 Data_Get_Struct (gv, guestfs_h, g);
1884 rb_raise (rb_eArgError, "%s: used handle after closing it", "blockdev_rereadpt");
1886 const char *device = StringValueCStr (devicev);
1888 rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
1889 "device", "blockdev_rereadpt");
1893 r = guestfs_blockdev_rereadpt (g, device);
1895 rb_raise (e_Error, "%s", guestfs_last_error (g));
1900 /* Initialize the module. */
1901 void Init__guestfs ()
1903 m_guestfs = rb_define_module ("Guestfs");
1904 c_guestfs = rb_define_class_under (m_guestfs, "Guestfs", rb_cObject);
1905 e_Error = rb_define_class_under (m_guestfs, "Error", rb_eStandardError);
1907 rb_define_module_function (m_guestfs, "create", ruby_guestfs_create, 0);
1908 rb_define_method (c_guestfs, "close", ruby_guestfs_close, 0);
1910 rb_define_method (c_guestfs, "launch",
1911 ruby_guestfs_launch, 0);
1912 rb_define_method (c_guestfs, "wait_ready",
1913 ruby_guestfs_wait_ready, 0);
1914 rb_define_method (c_guestfs, "kill_subprocess",
1915 ruby_guestfs_kill_subprocess, 0);
1916 rb_define_method (c_guestfs, "add_drive",
1917 ruby_guestfs_add_drive, 1);
1918 rb_define_method (c_guestfs, "add_cdrom",
1919 ruby_guestfs_add_cdrom, 1);
1920 rb_define_method (c_guestfs, "config",
1921 ruby_guestfs_config, 2);
1922 rb_define_method (c_guestfs, "set_path",
1923 ruby_guestfs_set_path, 1);
1924 rb_define_method (c_guestfs, "get_path",
1925 ruby_guestfs_get_path, 0);
1926 rb_define_method (c_guestfs, "set_autosync",
1927 ruby_guestfs_set_autosync, 1);
1928 rb_define_method (c_guestfs, "get_autosync",
1929 ruby_guestfs_get_autosync, 0);
1930 rb_define_method (c_guestfs, "set_verbose",
1931 ruby_guestfs_set_verbose, 1);
1932 rb_define_method (c_guestfs, "get_verbose",
1933 ruby_guestfs_get_verbose, 0);
1934 rb_define_method (c_guestfs, "mount",
1935 ruby_guestfs_mount, 2);
1936 rb_define_method (c_guestfs, "sync",
1937 ruby_guestfs_sync, 0);
1938 rb_define_method (c_guestfs, "touch",
1939 ruby_guestfs_touch, 1);
1940 rb_define_method (c_guestfs, "cat",
1941 ruby_guestfs_cat, 1);
1942 rb_define_method (c_guestfs, "ll",
1943 ruby_guestfs_ll, 1);
1944 rb_define_method (c_guestfs, "ls",
1945 ruby_guestfs_ls, 1);
1946 rb_define_method (c_guestfs, "list_devices",
1947 ruby_guestfs_list_devices, 0);
1948 rb_define_method (c_guestfs, "list_partitions",
1949 ruby_guestfs_list_partitions, 0);
1950 rb_define_method (c_guestfs, "pvs",
1951 ruby_guestfs_pvs, 0);
1952 rb_define_method (c_guestfs, "vgs",
1953 ruby_guestfs_vgs, 0);
1954 rb_define_method (c_guestfs, "lvs",
1955 ruby_guestfs_lvs, 0);
1956 rb_define_method (c_guestfs, "pvs_full",
1957 ruby_guestfs_pvs_full, 0);
1958 rb_define_method (c_guestfs, "vgs_full",
1959 ruby_guestfs_vgs_full, 0);
1960 rb_define_method (c_guestfs, "lvs_full",
1961 ruby_guestfs_lvs_full, 0);
1962 rb_define_method (c_guestfs, "read_lines",
1963 ruby_guestfs_read_lines, 1);
1964 rb_define_method (c_guestfs, "aug_init",
1965 ruby_guestfs_aug_init, 2);
1966 rb_define_method (c_guestfs, "aug_close",
1967 ruby_guestfs_aug_close, 0);
1968 rb_define_method (c_guestfs, "aug_defvar",
1969 ruby_guestfs_aug_defvar, 2);
1970 rb_define_method (c_guestfs, "aug_defnode",
1971 ruby_guestfs_aug_defnode, 3);
1972 rb_define_method (c_guestfs, "aug_get",
1973 ruby_guestfs_aug_get, 1);
1974 rb_define_method (c_guestfs, "aug_set",
1975 ruby_guestfs_aug_set, 2);
1976 rb_define_method (c_guestfs, "aug_insert",
1977 ruby_guestfs_aug_insert, 3);
1978 rb_define_method (c_guestfs, "aug_rm",
1979 ruby_guestfs_aug_rm, 1);
1980 rb_define_method (c_guestfs, "aug_mv",
1981 ruby_guestfs_aug_mv, 2);
1982 rb_define_method (c_guestfs, "aug_match",
1983 ruby_guestfs_aug_match, 1);
1984 rb_define_method (c_guestfs, "aug_save",
1985 ruby_guestfs_aug_save, 0);
1986 rb_define_method (c_guestfs, "aug_load",
1987 ruby_guestfs_aug_load, 0);
1988 rb_define_method (c_guestfs, "aug_ls",
1989 ruby_guestfs_aug_ls, 1);
1990 rb_define_method (c_guestfs, "rm",
1991 ruby_guestfs_rm, 1);
1992 rb_define_method (c_guestfs, "rmdir",
1993 ruby_guestfs_rmdir, 1);
1994 rb_define_method (c_guestfs, "rm_rf",
1995 ruby_guestfs_rm_rf, 1);
1996 rb_define_method (c_guestfs, "mkdir",
1997 ruby_guestfs_mkdir, 1);
1998 rb_define_method (c_guestfs, "mkdir_p",
1999 ruby_guestfs_mkdir_p, 1);
2000 rb_define_method (c_guestfs, "chmod",
2001 ruby_guestfs_chmod, 2);
2002 rb_define_method (c_guestfs, "chown",
2003 ruby_guestfs_chown, 3);
2004 rb_define_method (c_guestfs, "exists",
2005 ruby_guestfs_exists, 1);
2006 rb_define_method (c_guestfs, "is_file",
2007 ruby_guestfs_is_file, 1);
2008 rb_define_method (c_guestfs, "is_dir",
2009 ruby_guestfs_is_dir, 1);
2010 rb_define_method (c_guestfs, "pvcreate",
2011 ruby_guestfs_pvcreate, 1);
2012 rb_define_method (c_guestfs, "vgcreate",
2013 ruby_guestfs_vgcreate, 2);
2014 rb_define_method (c_guestfs, "lvcreate",
2015 ruby_guestfs_lvcreate, 3);
2016 rb_define_method (c_guestfs, "mkfs",
2017 ruby_guestfs_mkfs, 2);
2018 rb_define_method (c_guestfs, "sfdisk",
2019 ruby_guestfs_sfdisk, 5);
2020 rb_define_method (c_guestfs, "write_file",
2021 ruby_guestfs_write_file, 3);
2022 rb_define_method (c_guestfs, "umount",
2023 ruby_guestfs_umount, 1);
2024 rb_define_method (c_guestfs, "mounts",
2025 ruby_guestfs_mounts, 0);
2026 rb_define_method (c_guestfs, "umount_all",
2027 ruby_guestfs_umount_all, 0);
2028 rb_define_method (c_guestfs, "lvm_remove_all",
2029 ruby_guestfs_lvm_remove_all, 0);
2030 rb_define_method (c_guestfs, "file",
2031 ruby_guestfs_file, 1);
2032 rb_define_method (c_guestfs, "command",
2033 ruby_guestfs_command, 1);
2034 rb_define_method (c_guestfs, "command_lines",
2035 ruby_guestfs_command_lines, 1);
2036 rb_define_method (c_guestfs, "stat",
2037 ruby_guestfs_stat, 1);
2038 rb_define_method (c_guestfs, "lstat",
2039 ruby_guestfs_lstat, 1);
2040 rb_define_method (c_guestfs, "statvfs",
2041 ruby_guestfs_statvfs, 1);
2042 rb_define_method (c_guestfs, "tune2fs_l",
2043 ruby_guestfs_tune2fs_l, 1);
2044 rb_define_method (c_guestfs, "blockdev_setro",
2045 ruby_guestfs_blockdev_setro, 1);
2046 rb_define_method (c_guestfs, "blockdev_setrw",
2047 ruby_guestfs_blockdev_setrw, 1);
2048 rb_define_method (c_guestfs, "blockdev_getro",
2049 ruby_guestfs_blockdev_getro, 1);
2050 rb_define_method (c_guestfs, "blockdev_getss",
2051 ruby_guestfs_blockdev_getss, 1);
2052 rb_define_method (c_guestfs, "blockdev_getbsz",
2053 ruby_guestfs_blockdev_getbsz, 1);
2054 rb_define_method (c_guestfs, "blockdev_setbsz",
2055 ruby_guestfs_blockdev_setbsz, 2);
2056 rb_define_method (c_guestfs, "blockdev_getsz",
2057 ruby_guestfs_blockdev_getsz, 1);
2058 rb_define_method (c_guestfs, "blockdev_getsize64",
2059 ruby_guestfs_blockdev_getsize64, 1);
2060 rb_define_method (c_guestfs, "blockdev_flushbufs",
2061 ruby_guestfs_blockdev_flushbufs, 1);
2062 rb_define_method (c_guestfs, "blockdev_rereadpt",
2063 ruby_guestfs_blockdev_rereadpt, 1);