5 #include <sys/kos_io.h>
11 void process_task(list_t
*task
);
13 #define BUFFSIZE (64*1024)
15 #define OPTION_STD_BASE 150
19 OPTION_HELP
= OPTION_STD_BASE
,
21 OPTION_LIST_INSTALLED
,
25 static const struct option longopts
[] =
27 {"list-packages", no_argument
, NULL
, OPTION_LIST_PACKAGES
},
28 {"list-installed",no_argument
, NULL
, OPTION_LIST_INSTALLED
},
29 {"install-all",no_argument
, NULL
, OPTION_INSTALL_ALL
},
33 static void show_usage ()
35 sprintf (conbuf
, "Usage: kpm [option...]\n");
36 con_write_asciiz(conbuf
);
41 show available packages\n"));
42 con_write_asciiz(conbuf
);
46 show available packages\n"));
47 con_write_asciiz(conbuf
);
51 install all packages\n"));
52 con_write_asciiz(conbuf
);
55 int main(int argc
, char *argv
[])
57 LIST_HEAD(server_list
);
58 LIST_HEAD(download_list
);
59 LIST_HEAD(cache_list
);
60 LIST_HEAD(local_list
);
73 con_init(80, 25, 80, 250, "Kolibri package manager");
75 tmp_path
= make_tmp_path("packages.xml");
77 count
= http_load_file(tmp_path
, make_url("packages.xml"));
80 build_server_list(&server_list
, tmp_path
);
87 val
= getopt_long_only(argc
, argv
,"",longopts
, &index
);
91 case OPTION_LIST_PACKAGES
:
92 sprintf(conbuf
,"available packages:\n\n");
93 con_write_asciiz(conbuf
);
94 print_pkg_list(&server_list
);
98 case OPTION_LIST_INSTALLED
:
99 sprintf(conbuf
,"installed packages:\n\n");
100 con_write_asciiz(conbuf
);
101 print_pkg_list(&local_list
);
105 case OPTION_INSTALL_ALL
:
106 copy_list(&task_list
, &server_list
);
107 process_task(&task_list
);
122 printf("HTTP library initialization failed\n");