Subversion Repositories Kolibri OS

Rev

Rev 5731 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
5728 serge 1
#include 
5725 serge 2
#include 
3
#include 
4
#include 
5728 serge 5
#include 
6
 
5737 serge 7
#include "getopt.h"
5728 serge 8
#include "package.h"
5725 serge 9
#include "http.h"
10
 
11
#define BUFFSIZE  (64*1024)
12
 
5737 serge 13
extern char conbuf[256];
5726 serge 14
 
5737 serge 15
#define OPTION_STD_BASE 150
5725 serge 16
 
5737 serge 17
enum option_values
5726 serge 18
{
5737 serge 19
      OPTION_HELP = OPTION_STD_BASE,
20
      OPTION_LIST_PACKAGES,
21
      OPTION_LIST_INSTALLED
5726 serge 22
};
5725 serge 23
 
5737 serge 24
static const struct option longopts[] =
5727 serge 25
{
5737 serge 26
    {"list-packages", no_argument, NULL, OPTION_LIST_PACKAGES},
27
    {"list-installed",no_argument, NULL, OPTION_LIST_INSTALLED},
28
    {NULL,0,NULL,0}
5727 serge 29
};
30
 
5737 serge 31
int main(int argc, char *argv[])
5725 serge 32
{
5737 serge 33
    LIST_HEAD(server_list);
34
    LIST_HEAD(download_list);
35
    LIST_HEAD(cache_list);
36
    LIST_HEAD(local_list);
37
    LIST_HEAD(task_list);
5725 serge 38
 
39
    int   count;
5726 serge 40
    char *cache_path;
5727 serge 41
    char *tmp_path;
5725 serge 42
 
43
    if(http_init())
44
        goto err_init;
45
 
5737 serge 46
    set_cwd("/tmp0/1");
47
 
5731 serge 48
    con_init(80, 25, 80, 250, "Kolibri package manager");
49
 
5727 serge 50
    tmp_path = make_tmp_path("packages.xml");
5725 serge 51
 
5727 serge 52
    count = http_load_file(tmp_path, make_url("packages.xml"));
5726 serge 53
 
5725 serge 54
    if(count)
5737 serge 55
        build_server_list(&server_list, tmp_path);
56
 
57
    while(1)
5725 serge 58
    {
5737 serge 59
        int val;
60
        int index;
61
 
62
        val = getopt_long_only(argc, argv,"",longopts, &index);
63
 
64
        if(val == -1)
65
            break;
66
 
67
        switch(val)
68
        {
69
            case OPTION_LIST_PACKAGES:
70
                sprintf(conbuf,"available packages:\n\n");
71
                con_write_asciiz(conbuf);
72
                print_pkg_list(&server_list);
73
                con_exit(0);
74
                return 0;
75
 
76
            case OPTION_LIST_INSTALLED:
77
                sprintf(conbuf,"installed packages:\n\n");
78
                con_write_asciiz(conbuf);
79
                print_pkg_list(&local_list);
80
                con_exit(0);
81
                return 0;
82
 
83
            default:
84
                break;
85
        }
86
    };
87
 
88
#if 0
89
    {
5727 serge 90
        package_t   *pkg;
91
        LIST_HEAD(install_list);
92
        LIST_HEAD(download_list);
5725 serge 93
 
5727 serge 94
        if(collection && build_install_list(&install_list, collection))
5725 serge 95
        {
5727 serge 96
            if(build_download_list(&download_list, &install_list))
5728 serge 97
                do_download(&download_list);
98
 
99
            if(!list_empty(&download_list))
5729 serge 100
                remove_missing_packages(&install_list, &download_list);
5728 serge 101
 
102
            list_for_each_entry(pkg, &install_list, list)
5731 serge 103
            {
104
                sprintf(conbuf,"install package %s-%s\n", pkg->name, pkg->version);
105
                con_write_asciiz(conbuf);
106
            };
5729 serge 107
 
108
            do_install(&install_list);
5725 serge 109
        };
5731 serge 110
    }
5737 serge 111
#endif
5725 serge 112
 
5731 serge 113
    con_exit(0);
114
 
5725 serge 115
    return 0;
116
 
117
err_init:
118
    printf("HTTP library initialization failed\n");
119
    return -1;
120
}
5728 serge 121