X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;ds=sidebyside;f=fish%2Fcmds.c;h=bc9d5a9c69fe42565aabdc516a3a503047630100;hb=6d37b7698c1e2add43f0e8908e1bc30700f95f7e;hp=a181b875048d1b398bce2a4e05e6218f43a93e1e;hpb=b4c040d30e2677313a892ffe4cde0d53e446da7d;p=libguestfs.git diff --git a/fish/cmds.c b/fish/cmds.c index a181b87..bc9d5a9 100644 --- a/fish/cmds.c +++ b/fish/cmds.c @@ -49,16 +49,58 @@ void display_command (const char *cmd) display_builtin_command (cmd); } +static int run_mount (const char *cmd, int argc, char *argv[]) +{ + int r; + const char *device; + const char *mountpoint; + if (argc != 2) { + fprintf (stderr, "%s should have 2 parameter(s)\n", cmd); + fprintf (stderr, "type 'help %s' for help on %s\n", cmd, cmd); + return -1; + } + device = argv[0]; + mountpoint = argv[1]; + r = guestfs_mount (g, device, mountpoint); + return r; +} + +static int run_sync (const char *cmd, int argc, char *argv[]) +{ + int r; + if (argc != 0) { + fprintf (stderr, "%s should have 0 parameter(s)\n", cmd); + fprintf (stderr, "type 'help %s' for help on %s\n", cmd, cmd); + return -1; + } + r = guestfs_sync (g); + return r; +} + +static int run_touch (const char *cmd, int argc, char *argv[]) +{ + int r; + const char *path; + if (argc != 1) { + fprintf (stderr, "%s should have 1 parameter(s)\n", cmd); + fprintf (stderr, "type 'help %s' for help on %s\n", cmd, cmd); + return -1; + } + path = argv[0]; + r = guestfs_touch (g, path); + return r; +} + int run_action (const char *cmd, int argc, char *argv[]) { if (strcasecmp (cmd, "mount") == 0) - printf ("running mount ...\n"); + return run_mount (cmd, argc, argv); else if (strcasecmp (cmd, "sync") == 0) - printf ("running sync ...\n"); + return run_sync (cmd, argc, argv); else if (strcasecmp (cmd, "touch") == 0) - printf ("running touch ...\n"); + return run_touch (cmd, argc, argv); else { fprintf (stderr, "%s: unknown command\n", cmd);