captive_init(): 'image_iochannel' is now optional to just parse 'captive_args'
[captive.git] / src / client / cmdline / main.c
1 /* FIXME: test source only! Don't pass into CVS! */
2
3 #include "config.h"
4
5 #include <glib/gmessages.h>
6 #include <stdio.h>
7 #include <stdlib.h>
8 #include <glib/giochannel.h>
9
10 #include <captive/client.h>     /* for captive_init() */
11
12
13 void captive_sandbox_init(void);
14
15 int main(int argc,char **argv)
16 {
17         if (argc>3) {
18                 fprintf(stderr,"Syntax: captivecmdline <captive_args> <image_filename>");
19                 exit(EXIT_FAILURE);
20                 }
21
22         if (FALSE!=captive_init(
23                         argv[1],        /* captive_args */
24                         NULL))  /* image_iochannel */
25                 g_error(_("captive_init captive_args phase FAIL"));
26
27         if (TRUE!=captive_init(NULL,    /* captive_args */
28                         (               /* image_iochannel */
29                                         !argv[2] ? NULL : g_io_channel_new_file(        /* FIXME: g_io_channel_new_file() is NOT 64-bit compliant! */
30                                                         argv[2],        /* filename */
31                                                         (captive_option_rwmode==CAPTIVE_OPTION_RWMODE_RW ? "w+" : "r"), /* mode */
32                                                         NULL))))        /* error */
33                 g_error(_("captive_init image_iochannel FAIL"));
34
35         return EXIT_SUCCESS;
36 }