source: titan/titan/extensions.h @ 45616

Last change on this file since 45616 was 45616, checked in by obi, 8 months ago

readd ipkg

File size: 28.3 KB
Line 
1#ifndef EXTENSIONS_H
2#define EXTENSIONS_H
3
4//flag 0: inputbox
5//flag 1: auto
6void screenfeed(int flag)
7{
8        char* tmpstr = NULL, *line = NULL, *lastline = NULL;
9        char* pos = NULL;
10
11        tmpstr = readsys(getconfig("feed", NULL), 4); //line4
12        tmpstr = string_replace("src/gz secret http://", "", tmpstr, 1);
13
14        if(tmpstr != NULL)
15                pos = strchr(tmpstr, '/');
16        if(pos != NULL)
17                pos[0] = '\0';
18
19        if(tmpstr == NULL || ostrcmp(tmpstr, "") == 0 || ostrcmp(tmpstr, "\n") == 0)
20                tmpstr = ostrcat(tmpstr, "000.000.000.000", 1, 0);
21
22        if(flag == 1)
23                lastline = ostrcat("999.999.999.999", NULL, 0, 0);
24        else   
25                lastline = numinput(_("Feed"), tmpstr, "000.000.000.000", 1);
26       
27        //for devs, who have secret feed not in mind
28        if(ostrcmp("999.999.999.999", lastline) == 0)
29        {
30                free(lastline); lastline = NULL;
31                lastline = ostrcat("097.074.032.010", NULL, 0, 0);
32        }
33
34        if(lastline != NULL)
35        {
36                free(tmpstr); tmpstr = NULL;
37                tmpstr = fixip(lastline, 1);
38                free(lastline); lastline = tmpstr;
39
40                tmpstr = readsys(getconfig("feed", NULL), 1); //line1
41                if(tmpstr == NULL || (tmpstr != NULL && strlen(tmpstr) == 0))
42                        line = ostrcat(line, "#", 1, 0);
43                else
44                        line = ostrcat(line, tmpstr, 1, 0);
45                free(tmpstr); tmpstr = NULL;
46
47                if(line[strlen(line) - 1] != '\n')
48                        line = ostrcat(line, "\n", 1, 0);
49
50                tmpstr = readsys(getconfig("feed", NULL), 2); //line2
51                if(tmpstr == NULL || (tmpstr != NULL && strlen(tmpstr) == 0))
52                        line = ostrcat(line, "#\n", 1, 0);
53                else
54                        line = ostrcat(line, tmpstr, 1, 0);
55                free(tmpstr); tmpstr = NULL;
56/////
57                if(line[strlen(line) - 1] != '\n')
58                        line = ostrcat(line, "\n", 1, 0);
59
60                tmpstr = readsys(getconfig("feed", NULL), 3); //line3
61                if(tmpstr == NULL || (tmpstr != NULL && strlen(tmpstr) == 0))
62                        line = ostrcat(line, "#\n", 1, 0);
63                else
64                        line = ostrcat(line, tmpstr, 1, 0);
65                free(tmpstr); tmpstr = NULL;
66/////
67                if(line[strlen(line) - 1] == '\n')
68                        tmpstr = ostrcat(line, "src/gz secret http://", 0, 0);
69                else
70                        tmpstr = ostrcat(line, "\nsrc/gz secret http://", 0, 0);
71
72                if(strlen(lastline) == 0)
73                {
74                        free(tmpstr);
75                        tmpstr = ostrcat(line, NULL, 0, 0);
76                }
77
78                tmpstr = ostrcat(tmpstr, lastline, 1, 0);
79//              tmpstr = ostrcat(tmpstr, "/svn/tpk/sh4", 1, 0);
80#ifdef SH4
81                tmpstr = ostrcat(tmpstr, "/svn/tpk/nightly-sh4-secret", 1, 0); 
82#else
83#ifdef ARM
84                tmpstr = ostrcat(tmpstr, "/svn/tpk/nightly-arm-secret", 1, 0); 
85#else
86                tmpstr = ostrcat(tmpstr, "/svn/tpk/nightly-mipsel-secret", 1, 0);       
87#endif
88#endif
89                writesys(getconfig("feed", NULL), tmpstr, 0);
90        }
91
92        free(tmpstr);
93        free(line);
94        free(lastline);
95}
96
97//flag 0: install ok
98//flag 1: install err
99//flag 2: remove ok
100//flag 3: remove err
101char* gettpklog(char* installpath, int flag)
102{
103        char* tmpstr = NULL;
104
105        if(flag == 0 || flag == 1)
106                tmpstr = ostrcat(tmpstr, _("Installation start"), 1, 0);
107        else
108                tmpstr = ostrcat(tmpstr, _("Remove start"), 1, 0);
109        tmpstr = ostrcat(tmpstr, "\n\n", 1, 0);
110       
111        tmpstr = ostrcat(tmpstr, readfiletomem(TPKLOG, 0), 1, 1);
112       
113        tmpstr = ostrcat(tmpstr, "\n\n", 1, 0);
114       
115        if(installpath != NULL)
116        {
117                tmpstr = ostrcat(tmpstr, _("New free space (KB): "), 1, 0);
118                tmpstr = ostrcat(tmpstr, ollutoa(getfreespace(installpath) / 1024), 1, 1);
119                tmpstr = ostrcat(tmpstr, "\n", 1, 0);
120        }
121       
122        if(flag == 0)
123                tmpstr = ostrcat(tmpstr, _("Install success"), 1, 0);
124        if(flag == 1)
125                tmpstr = ostrcat(tmpstr, _("Install error"), 1, 0);
126        if(flag == 2)
127                tmpstr = ostrcat(tmpstr, _("Remove success"), 1, 0);
128        if(flag == 3)
129                tmpstr = ostrcat(tmpstr, _("Remove error"), 1, 0);
130               
131        if(installpath == NULL || ostrcmp("/var/swap", installpath) == 0)
132                sync();
133       
134        return tmpstr;
135}
136
137char* getinstallpath(char* path, char* size)
138{
139        int count = 0, isize = 0;
140        char* tmpstr = NULL;
141        struct menulist* mlist = NULL, *mbox = NULL, *tmpmlist = NULL;
142       
143        if(size != NULL) isize = atoi(size);
144       
145        if(path == NULL || path[0] == '*' || ostrstr(path, "mnt") != NULL)
146        {
147                if(tpkchecksize(NULL, "/mnt/swapextensions", isize) == 0)
148                {
149                        tmpmlist = addmenulist(&mlist, _("Install to MNT"), NULL, NULL, 0, 0);
150                        changemenulistparam(tmpmlist, "/mnt/swapextensions", NULL, NULL, NULL);
151                        free(tmpstr); tmpstr = NULL;
152                        tmpstr = ostrcat("/mnt/swapextensions", NULL, 0, 0);
153                        count++;
154                }
155        }
156       
157        if(path == NULL || path[0] == '*' || ostrstr(path, "var") != NULL)
158        {
159                if(tpkchecksize(NULL, "/var", isize) == 0)
160                {
161                        tmpmlist = addmenulist(&mlist, _("Install to FLASH"), NULL, NULL, 0, 0);
162                        changemenulistparam(tmpmlist, "/var", NULL, NULL, NULL);
163                        free(tmpstr); tmpstr = NULL;
164                        tmpstr = ostrcat("/var", NULL, 0, 0);
165                        count++;
166                }
167        }
168       
169        if(path == NULL || path[0] == '*' || ostrstr(path, "swap") != NULL)
170        {
171#ifdef OEBUILD
172                if(file_exist("/media/.swapextensionsdev") == 1 || (file_exist("/var/swap") && !isdir("/var/swap")))
173#else
174                if(file_exist("/tmp/.swapextensionsdev") == 1 || file_exist("/var/swap"))
175#endif
176                {
177                        if(tpkchecksize(NULL, "/var/swap", isize) == 0)
178                        {
179                                tmpmlist = addmenulist(&mlist, _("Install to SWAP"), NULL, NULL, 0, 0);
180                                changemenulistparam(tmpmlist, "/var/swap", NULL, NULL, NULL);
181                                free(tmpstr); tmpstr = NULL;
182                                tmpstr = ostrcat("/var/swap", NULL, 0, 0);
183                                count++;
184                        }
185                }
186        }
187       
188        //if(count > 1) // if only 1 installpath, don't show choicebox
189        if(count > 0) // show always choicebox
190        {
191                free(tmpstr); tmpstr = NULL;
192                mbox = menulistbox(mlist, "tpkinstallinfo", _("Choice Install Medium"), NULL, NULL, NULL, 0, 0);
193                if(mbox != NULL)
194                        tmpstr = ostrcat(mbox->param, NULL, 0, 0);
195        }
196        else if(count == 0)
197        {
198                textbox(_("Tpk Install Info"), _("Can't install Package. Package to big."), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 800, 200, 0, 0);
199                free(tmpstr); tmpstr = NULL;
200        }
201       
202        freemenulist(mlist, 0); mlist = NULL;
203        return tmpstr;
204}
205
206void screenextensions(int mode, char* path, char* defentry, int first)
207{
208        char* tmpstr = NULL, *tmpinfo = NULL, *installpath = NULL;
209        struct menulist* mlist = NULL, *mbox = NULL;
210        struct menulist* mlist1 = NULL, *mbox1 = NULL;
211        struct skin* load = getscreen("loading");
212               
213        status.hangtime = 99999;
214        unlink(TPKLOG);
215       
216        if(mode == 0)
217        {
218                drawscreen(load, 0, 0);
219
220                if(first == 1) tpkgetindex(0);
221                tpklist();
222
223                clearscreen(load);
224
225                mbox = tpkmenulist(mlist, NULL, _("Tpk Install - select section"), NULL, NULL, 1, defentry, 0);
226
227                if(mbox != NULL)
228                {
229                        debug(130, "section: %s", mbox->name);
230                        mbox1 = tpkmenulist(mlist1, "tpkinstall", _("Tpk Install - select file"), "/tmp/tpk", mbox->name, 2, NULL, 1);
231                       
232                        if(mbox1 != NULL && mbox1->param != NULL && mbox1->param1 != NULL)
233                        {
234                                debug(130, "file: %s", mbox1->name);
235                                if(ostrstr(mbox1->name, _("There may only be one package installed from this section. To install another package from this section, remove the installed one. If the package is not visible after a software update, perform a TPK update to: ")) == NULL)
236                                {
237                                        installpath = getinstallpath(mbox1->param2, mbox1->param3);
238                                        if(installpath != NULL)
239                                        {
240                                                tmpinfo = ostrcat(tmpinfo, _("Installing"), 1, 0);
241                                                tmpinfo = ostrcat(tmpinfo, " ", 1, 0);
242                                                tmpinfo = ostrcat(tmpinfo, mbox->name, 1, 0);
243                                                tmpinfo = ostrcat(tmpinfo, "-", 1, 0);
244                                                tmpinfo = ostrcat(tmpinfo, mbox1->name, 1, 0);
245                                                tmpinfo = ostrcat(tmpinfo, " ", 1, 0);
246                                                tmpinfo = ostrcat(tmpinfo, _("starting"), 1, 0);
247                                                tmpinfo = ostrcat(tmpinfo, " ?", 1, 0);
248                       
249                                                if(textbox(_("Tpk Install Info"), _(tmpinfo), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 1000, 200, 0, 0) == 1)
250                                                {
251                                                        drawscreen(load, 0, 0);
252                                                        resettvpic();
253                                                        char* log = NULL;
254                                                        int tpkret = tpkgetpackage(mbox1->param, mbox1->param1, installpath, 0, 0);
255                                                        if(tpkret == 0)
256                                                        {
257                                                                log = gettpklog(installpath, 0);
258                                                                textbox(_("Tpk Install Info - Install OK"), _(log), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 1000, 600, 0, 2);
259                                                        }
260                                                        else if(tpkret == 2)
261                                                        {
262                                                                textbox(_("Tpk Install Info - Install ERROR"), _("There may only be one package installed from this section. To install another package from this section, remove the installed one. If the package is not visible after a software update, perform a TPK update to: "), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 1000, 600, 0, 2);
263                                                        }
264                                                        else
265                                                        {
266                                                                log = gettpklog(installpath, 1);
267                                                                textbox(_("Tpk Install Info - Install ERROR"), _(log), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 1000, 600, 0, 2);
268                                                        }
269        //                                              textbox(_("Message"), _("Some plugins needs restart.\nIf the plugin is not active\nreboot the box."), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 1000, 200, 0, 0);
270                                                        loadplugin();
271                                                        free(log), log = NULL;
272                                                        unlink(TPKLOG);
273                                                        if(file_exist("/tmp/.tpk_needs_reboot"))
274                                                        {
275                                                                unlink("/tmp/.tpk_needs_reboot");
276                                                                textbox(_("Message"), _("Titan will be restarted!"), _("OK"), getrcconfigint("rcok", NULL), NULL, 0, NULL, 0, NULL, 0, 600, 200, 0, 0);
277                                                                //sync usb
278                                                                system("sync");
279                                                                //write only config file
280                                                                writeallconfig(3);
281                                                                //gui restart and write no config
282                                                                oshutdown(3, 2);
283                                                        }
284                                                }
285                                        }
286                                }
287                        }
288                }
289                free(installpath); installpath = NULL;
290                free(tmpstr); tmpstr = NULL;   
291                freemenulist(mlist1, 0); mlist1 = NULL;
292                if(mbox != NULL) tmpstr = ostrcat(mbox->name, NULL, 0, 0);
293                freemenulist(mlist, 0); mlist = NULL;
294                free(tmpinfo); tmpinfo = NULL;
295                freetpk();
296                if(mbox != NULL) screenextensions(0, path, tmpstr, 0);
297                free(tmpstr); tmpstr = NULL;
298        }
299        else if(mode == 1)
300        {
301                tpklistinstalled(0);
302                mbox = tpkmenulist(mlist, NULL, _("Tpk Remove - select file"), NULL, NULL, 1, defentry, 2);
303               
304                if(mbox != NULL && mbox->param != NULL)
305                {
306                        debug(130, "file: %s", mbox->name);
307
308                        tmpinfo = ostrcat(tmpinfo, _("Removeing"), 1, 0);
309                        tmpinfo = ostrcat(tmpinfo, " ", 1, 0);
310                        tmpinfo = ostrcat(tmpinfo, mbox->name, 1, 0);
311                        tmpinfo = ostrcat(tmpinfo, " ?", 1, 0);
312
313                        if(textbox(_("Tpk Remove Info"), _(tmpinfo), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 800, 200, 0, 0) == 1)
314                        {
315                                drawscreen(load, 0, 0);
316                                resettvpic();
317                                char* log = NULL;
318                                if(tpkremove(mbox->param, 0, 0) == 0)
319                                {
320                                        log = gettpklog(NULL, 2);
321                                        textbox(_("Tpk Remove Info - Remove OK"), _(log), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 1000, 600, 0, 2);
322                                        //del plugin from memory if Titanname is defined in plugin control file
323                                        if(mbox->param1 != NULL && mbox->param1[0] != '*') delplugin(mbox->param1);
324                                }
325                                else
326                                {
327                                        log = gettpklog(NULL, 3);
328                                        textbox(_("Tpk Remove Info - Remove ERROR"), _(log), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 1000, 600, 0, 2);
329                                }
330//                              textbox(_("Message"), _("Some plugins needs restart.\nIf the plugin is not active\nreboot the box."), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 1000, 200, 0, 0);
331                                free(log); log = NULL;
332                                unlink(TPKLOG);
333                                if(file_exist("/tmp/.tpk_needs_reboot"))
334                                {
335                                        unlink("/tmp/.tpk_needs_reboot");
336                                        textbox(_("Message"), _("Titan will be restarted!"), _("OK"), getrcconfigint("rcok", NULL), NULL, 0, NULL, 0, NULL, 0, 600, 200, 0, 0);
337                                        //sync usb
338                                        system("sync");
339                                        //write only config file
340                                        writeallconfig(3);
341                                        //gui restart and write no config
342                                        oshutdown(3, 2);
343                                }
344                        }
345                }
346                free(tmpstr); tmpstr = NULL;
347                freemenulist(mlist, 0); mlist = NULL;
348                if(mbox != NULL) tmpstr = ostrcat(mbox->name, NULL, 0, 0);
349                free(tmpinfo); tmpinfo = NULL;
350                freetpk();
351                if(mbox != NULL) screenextensions(1, path, tmpstr, 0);
352                free(tmpstr); tmpstr = NULL;
353        }
354        else if(mode == 2)
355        {
356                char* text1 = "Tpk Tmp Install - select file";
357                char* text2 = "Tpk Tmp Info";
358
359                if(path == NULL)
360                        tmpstr = gettpktmplist("/tmp");
361                else
362                {
363                        tmpstr = gettpktmplist(path);
364                        text1 = "Tpk Media Install - select file";
365                        text2 = "Tpk Media Info";
366                }
367   
368                if(tmpstr == NULL || strlen(tmpstr) == 0)
369                {
370                        textbox(_("Message"), _("No plugin found."), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 600, 200, 0, 0);
371                }
372                else
373                {
374                        addmenulistall(&mlist, tmpstr, NULL, 0, defentry);
375                        mbox = menulistbox(mlist, NULL, text1, NULL, NULL, "/skin/plugin.png", 1, 0);
376                }
377               
378                free(tmpstr); tmpstr = NULL;
379               
380                if(mbox != NULL)
381                {
382                        installpath = getinstallpath(NULL, 0);
383                        debug(130, "installpath: %s", installpath);
384                        if(installpath != NULL)
385                        {
386                                debug(130, "file: %s", mbox->name);
387       
388                                tmpinfo = ostrcat(tmpinfo, _("Installing"), 1, 0);
389                                tmpinfo = ostrcat(tmpinfo, " ", 1, 0);
390                                tmpinfo = ostrcat(tmpinfo, mbox->name, 1, 0);
391                                tmpinfo = ostrcat(tmpinfo, " ", 1, 0);
392                                tmpinfo = ostrcat(tmpinfo, _("starting"), 1, 0);
393                                tmpinfo = ostrcat(tmpinfo, " ?", 1, 0);
394                                debug(130, "tmpinfo: %s", tmpinfo);
395       
396                                if(textbox(_(text2), _(tmpinfo), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 1000, 200, 0, 0) == 1)
397                                {
398                                        char* log = NULL;
399                                        int ret = 0;                           
400                                        drawscreen(load, 0, 0);
401                                        resettvpic();                           
402                                        if(path == NULL)
403                                        {
404                                                tmpstr = ostrcat(tmpstr, "/tmp", 1, 0);
405                                                tmpstr = ostrcat(tmpstr, "/", 1, 0);
406                                                tmpstr = ostrcat(tmpstr, mbox->name, 1, 0);
407                                                debug(130, "tmpstr: %s", tmpstr);
408                                                ret = tpkinstall(tmpstr, installpath, 0);
409                                                free(tmpstr); tmpstr = NULL;
410                                        }
411                                        else
412                                        {
413                                                tmpstr = ostrcat(tmpstr, path, 1, 0);
414                                                tmpstr = ostrcat(tmpstr, "/", 1, 0);
415                                                tmpstr = ostrcat(tmpstr, mbox->name, 1, 0);
416                                                debug(130, "tmpstr: %s", tmpstr);
417                                                ret = tpkinstall(tmpstr, installpath, 0);
418                                                free(tmpstr); tmpstr = NULL;
419                                        }
420       
421                                        if(ret == 0)
422                                                log = gettpklog(installpath, 0);
423                                        else if(ret == 2)
424                                                log = ostrcat(_("There may only be one package installed from this section. To install another package from this section, remove the installed one. If the package is not visible after a software update, perform a TPK update to: "), NULL, 0, 0);
425                                        else
426                                                log = gettpklog(installpath, 1);
427                                        textbox(_(text2), log, _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 1000, 600, 0, 0);
428                                        free(log); log = NULL;
429                                        unlink(TPKLOG);
430                                        textbox(_("Message"), _("Some plugins needs restart.\nIf the plugin is not active\nreboot the box."), "EXIT", getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, NULL, 0, 1000, 200, 0, 0);
431                                        loadplugin();
432                                        if(file_exist("/tmp/.tpk_needs_reboot"))
433                                        {
434                                                unlink("/tmp/.tpk_needs_reboot");
435                                                textbox(_("Message"), _("Titan will be restarted!"), _("OK"), getrcconfigint("rcok", NULL), NULL, 0, NULL, 0, NULL, 0, 600, 200, 0, 0);
436                                                //sync usb
437                                                system("sync");
438                                                //write only config file
439                                                writeallconfig(3);
440                                                //gui restart and write no config
441                                                oshutdown(3, 2);
442                                        }
443                                }
444                        }
445                }
446                free(installpath); installpath = NULL;
447                free(tmpstr); tmpstr = NULL;
448                freemenulist(mlist, 0); mlist = NULL;
449                if(mbox != NULL) tmpstr = ostrcat(mbox->name, NULL, 0, 0);
450                free(tmpinfo); tmpinfo = NULL;
451                if(mbox != NULL) screenextensions(2, path, tmpstr, 0);
452                free(tmpstr); tmpstr = NULL;
453        }
454        else if(mode == 3)
455        {
456                drawscreen(load, 0, 0);
457                resettvpic();
458                if(first == 1)
459                {
460                        if(tpkgetindex(0) != 0)
461                                textbox(_("Tpk Update Info - Update ERROR"), _("Can't get all TPK index !"), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 600, 200, 0, 0);
462                }
463                writesys("/tmp/.tpk_upgrade_start", "0", 0);
464                if(tpkupdate(0) != 0)
465                        textbox(_("Tpk Update Info - Update ERROR"), _("Can't update all packages !"), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 600, 200, 0, 0);
466                loadplugin();
467                clearscreen(load);
468                drawscreen(skin, 0, 0);
469                unlink(TPKLOG);
470
471                if(file_exist("/tmp/.tpk_needs_reboot"))
472                {
473                        unlink("/tmp/.tpk_needs_reboot");
474                        textbox(_("Message"), _("Titan will be restarted!"), _("OK"), getrcconfigint("rcok", NULL), NULL, 0, NULL, 0, NULL, 0, 600, 200, 0, 0);
475                        //sync usb
476                        system("sync");
477                        //write only config file
478                        writeallconfig(3);
479                        //gui restart and write no config
480                        oshutdown(3, 2);
481                }
482                unlink("/tmp/.tpk_upgrade_start");
483        }
484
485        if(first == 1) tpkcleantmp(0);
486        status.hangtime = getconfigint("hangtime", NULL);
487}
488
489//flag 0: without message
490//flag 1: with message
491void screenextensions_check(int flag)
492{
493        int treffer = 0;
494        struct hdd *node = NULL;
495        char* tmpstr = NULL, *tmpstr1 = NULL;
496
497        if(status.security >= 1)
498        {
499                addhddall();
500                node = hdd;
501
502                while(node != NULL)
503                {
504                        if(node->partition != 0)
505                        {
506                                tmpstr = ostrcat("/autofs/", node->device, 0, 0);
507                                tmpstr1 = gettpktmplist(tmpstr);
508
509                                if(tmpstr1 != NULL)
510                                {
511                                        treffer = 1;
512                                        screenextensions(2, tmpstr, NULL, 1);
513                                }
514
515                                free(tmpstr); tmpstr = NULL;
516                                free(tmpstr1); tmpstr1 = NULL;
517                        }
518                        node = node->next;
519                }
520
521                if(flag == 1 && treffer == 0)
522                        textbox(_("Tpk Install Info"), _("No plugin found."), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 600, 200, 0, 0);
523        }
524}
525
526#ifdef OVBUILD
527void screenfeed_ipk(int flag)
528{
529        char* tmpstr = NULL, *line = NULL, *lastline = NULL;
530        char* pos = NULL;
531
532        tmpstr = readsys(getconfig("feed", NULL), 3); //line3
533        tmpstr = string_replace("src/gz secret http://", "", tmpstr, 1);
534
535        if(tmpstr != NULL)
536                pos = strchr(tmpstr, '/');
537        if(pos != NULL)
538                pos[0] = '\0';
539
540        if(tmpstr == NULL || ostrcmp(tmpstr, "") == 0 || ostrcmp(tmpstr, "\n") == 0)
541                tmpstr = ostrcat(tmpstr, "000.000.000.000", 1, 0);
542
543        lastline = numinput(_("Feed"), tmpstr, "000.000.000.000", 1);
544
545        //for devs, who have secret feed not in mind
546        if(ostrcmp("999.999.999.999", lastline) == 0)
547        {
548                free(lastline); lastline = NULL;
549                lastline = ostrcat("097.074.032.010", NULL, 0, 0);
550        }
551
552        if(lastline != NULL)
553        {
554                free(tmpstr); tmpstr = NULL;
555                tmpstr = fixip(lastline, 1);
556                free(lastline); lastline = tmpstr;
557
558                tmpstr = readsys(getconfig("feed", NULL), 1); //line1
559                if(tmpstr == NULL || (tmpstr != NULL && strlen(tmpstr) == 0))
560                        line = ostrcat(line, "#", 1, 0);
561                else
562                        line = ostrcat(line, tmpstr, 1, 0);
563                free(tmpstr); tmpstr = NULL;
564
565                if(line[strlen(line) - 1] != '\n')
566                        line = ostrcat(line, "\n", 1, 0);
567
568                tmpstr = readsys(getconfig("feed", NULL), 2); //line2
569                if(tmpstr == NULL || (tmpstr != NULL && strlen(tmpstr) == 0))
570                        line = ostrcat(line, "#\n", 1, 0);
571                else
572                        line = ostrcat(line, tmpstr, 1, 0);
573                free(tmpstr); tmpstr = NULL;
574
575                if(line[strlen(line) - 1] == '\n')
576                        tmpstr = ostrcat(line, "src/gz secret http://", 0, 0);
577                else
578                        tmpstr = ostrcat(line, "\nsrc/gz secret http://", 0, 0);
579
580                if(strlen(lastline) == 0)
581                {
582                        free(tmpstr);
583                        tmpstr = ostrcat(line, NULL, 0, 0);
584                }
585
586                tmpstr = ostrcat(tmpstr, lastline, 1, 0);
587                tmpstr = ostrcat(tmpstr, "/svn/ipk/sh4/titan", 1, 0);
588                writesys(getconfig("feed", NULL), tmpstr, 0);
589        }
590
591        free(tmpstr);
592        free(line);
593        free(lastline);
594}
595
596void screenextensions_ipk(int mode, char* path, char* defentry, int first)
597{
598        char* tmpstr = NULL, *tmpinfo = NULL;
599        struct menulist* mlist = NULL, *mbox = NULL;
600        struct menulist* mlist1 = NULL, *mbox1 = NULL;
601        struct skin* load = getscreen("loading");
602               
603        status.hangtime = 99999;
604       
605        if(mode == 0)
606        {
607                drawscreen(load, 0, 0);
608
609                ipkg_update();
610                ipkg_list();
611
612                clearscreen(load);
613
614                mbox = ipkmenulist(mlist, NULL, _("Ipk Install - select section"), NULL, NULL, 1, defentry, 0);
615
616                if(mbox != NULL)
617                {
618                        debug(130, "section: %s", mbox->name);
619                        mbox1 = ipkmenulist(mlist1, "ipkinstall", "Ipk Install - select file", "/tmp/preview", mbox->name, 2, NULL, 1);
620                       
621                        if(mbox1 != NULL)
622                        {
623                                debug(130, "file: %s", mbox1->name);
624                                tmpstr = ostrcat("titan-plugin-", mbox->name, 0, 0);
625                                tmpstr = ostrcat(tmpstr, "-", 1, 0);
626                                tmpstr = ostrcat(tmpstr, mbox1->param, 1, 0);
627
628                                tmpinfo = ostrcat(tmpinfo, _("Installing"), 1, 0);
629                                tmpinfo = ostrcat(tmpinfo, " ", 1, 0);
630                                tmpinfo = ostrcat(tmpinfo, mbox->name, 1, 0);
631                                tmpinfo = ostrcat(tmpinfo, "-", 1, 0);
632                                tmpinfo = ostrcat(tmpinfo, mbox1->name, 1, 0);
633                                tmpinfo = ostrcat(tmpinfo, " ", 1, 0);
634                                tmpinfo = ostrcat(tmpinfo, _("started"), 1, 0);
635                                tmpinfo = ostrcat(tmpinfo, " ?", 1, 0);
636
637                                if(textbox(_("Ipk Install Info"), _(tmpinfo), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 600, 200, 0, 0) == 1)
638                                {
639                                        drawscreen(load, 0, 0);
640                                        resettvpic();
641                                        char* log = NULL;
642                                        if(ipkg_install(tmpstr) == 0)
643                                        {
644                                                log = readfiletomem("/tmp/ipkg.log", 0);
645                                                if(log == NULL) log = ostrcat("Install success", NULL, 0, 0);
646                                                textbox(_("Ipk Install Info - Install OK"), _(log), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 1000, 600, 0, 0);
647                                        }
648                                        else
649                                        {
650                                                log = readfiletomem("/tmp/ipkg.log", 0);
651                                                if(log == NULL) log = ostrcat("Install error", NULL, 0, 0);
652                                                textbox(_("Ipk Install Info - Install ERROR"), _(log), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 1000, 600, 0, 0);
653                                        }
654                                        textbox(_("Message"), _("Some plugins needs restart.\nIf the plugin is not active\nreboot the box."), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 1000, 200, 0, 0);
655                                        loadplugin();
656                                        free(log), log = NULL;
657                                        unlink("/tmp/ipkg.log");
658                                        if(file_exist("/tmp/.ipkg_needs_reboot"))
659                                        {
660                                                textbox(_("Message"), _("IPK Install Done your system rebooting !"), "EXIT", getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, NULL, 0, 600, 200, 0, 0);
661                                                system("init 6");
662                                        }
663                                }
664                        }
665                }
666/*
667                freemenulist(mlist1, 1); mlist1 = NULL;
668                freemenulist(mlist, 1); mlist = NULL;
669                free(tmpstr); tmpstr = NULL;
670                free(tmpinfo); tmpinfo = NULL;
671                freeipkg();
672                if(mbox != NULL) screenextensions_ipk(0, path);
673*/
674
675//              free(installpath); installpath = NULL;
676                free(tmpstr); tmpstr = NULL;   
677                freemenulist(mlist1, 0); mlist1 = NULL;
678                if(mbox != NULL) tmpstr = ostrcat(mbox->name, NULL, 0, 0);
679                freemenulist(mlist, 0); mlist = NULL;
680                free(tmpinfo); tmpinfo = NULL;
681                freeipkg();
682                if(mbox != NULL) screenextensions_ipk(0, path, tmpstr, 0);
683                free(tmpstr); tmpstr = NULL;
684        }
685        else if(mode == 1)
686        {
687                ipkg_list_installed();
688                mbox = ipkmenulist(mlist, NULL, _("Ipk Remove - select file"), NULL, NULL, 1, defentry, 2);
689
690                if(mbox != NULL)
691                {
692                        debug(130, "file: %s", mbox->name);
693
694                        tmpstr = ostrcat("titan-plugin-", mbox->name, 0, 0);
695
696                        tmpinfo = ostrcat(tmpinfo, _("Removeing"), 1, 0);
697                        tmpinfo = ostrcat(tmpinfo, " ", 1, 0);
698                        tmpinfo = ostrcat(tmpinfo, mbox->name, 1, 0);
699                        tmpinfo = ostrcat(tmpinfo, " ", 1, 0);
700                        tmpinfo = ostrcat(tmpinfo, _("started"), 1, 0);
701                        tmpinfo = ostrcat(tmpinfo, " ?", 1, 0);
702
703                        if(textbox(_("Ipk Remove Info"), _(tmpinfo), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 600, 200, 0, 0) == 1)
704                        {
705                                drawscreen(load, 0, 0);
706                                resettvpic();
707                                char* log = NULL;
708                                if(ipkg_remove(tmpstr, 1) == 0)
709                                {
710                                        log = readfiletomem("/tmp/ipkg.log", 0);
711                                        if(log == NULL) log = ostrcat("Remove success", NULL, 0, 0);
712                                        textbox(_("Ipk Remove Info - Remove OK"), _(log), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 1000, 600, 0, 0);
713                                }
714                                else
715                                {
716                                        log = readfiletomem("/tmp/ipkg.log", 0);
717                                        if(log == NULL) log = ostrcat("Remove error", NULL, 0, 0);
718                                        textbox(_("Ipk Remove Info - Remove ERROR"), _(log), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 1000, 600, 0, 0);
719                                }
720                                textbox(_("Message"), _("Some plugins needs restart.\nIf the plugin is not active\nreboot the box."), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 1000, 200, 0, 0);
721                                free(log), log = NULL;
722                                unlink("/tmp/ipkg.log");
723                                if(file_exist("/tmp/.ipkg_needs_reboot"))
724                                {
725                                        textbox(_("Message"), _("IPK Remove Done your system rebooting !"), "EXIT", getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, NULL, 0, 600, 200, 0, 0);
726                                        system("init 6");
727                                }
728                        }
729                }
730/*
731                freemenulist(mlist, 1); mlist = NULL;
732                free(tmpstr); tmpstr = NULL;
733                free(tmpinfo); tmpinfo = NULL;
734                freeipkg();
735                if(mbox != NULL) screenextensions_ipk(1, path);
736*/
737                free(tmpstr); tmpstr = NULL;
738                freemenulist(mlist, 0); mlist = NULL;
739                if(mbox != NULL) tmpstr = ostrcat(mbox->name, NULL, 0, 0);
740                free(tmpinfo); tmpinfo = NULL;
741                freeipkg();
742                if(mbox != NULL) screenextensions_ipk(1, path, tmpstr, 0);
743                free(tmpstr); tmpstr = NULL;
744        }
745        else if(mode == 2)
746        {
747                char* text1 = "Ipk Tmp Install - select file";
748                char* text2 = "Ipk Tmp Info";
749
750                if(path == NULL)
751                        tmpstr = get_ipk_tmplistinstall("/tmp");
752                else
753                {
754                        tmpstr = get_ipk_tmplistinstall(path);
755                        text1 = "Ipk Media Install - select file";
756                        text2 = "Ipk Media Info";
757                }
758   
759                if(tmpstr == NULL || strlen(tmpstr) == 0)
760                {
761                        textbox(_("Message"), _("No plugin found."), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 600, 200, 0, 0);
762                }
763                else
764                {
765                        addmenulistall(&mlist, tmpstr, NULL, 0, defentry);
766                        mbox = menulistbox(mlist, NULL, text1, NULL, NULL, "/skin/plugin.png", 1, 0);
767                }
768               
769                free(tmpstr); tmpstr = NULL;
770               
771                if(mbox != NULL)
772                {
773                        debug(130, "file: %s", mbox->name);
774
775                        tmpinfo = ostrcat(tmpinfo, _("Installing"), 1, 0);
776                        tmpinfo = ostrcat(tmpinfo, " ", 1, 0);
777                        tmpinfo = ostrcat(tmpinfo, mbox->name, 1, 0);
778                        tmpinfo = ostrcat(tmpinfo, " ", 1, 0);
779                        tmpinfo = ostrcat(tmpinfo, _("started"), 1, 0);
780                        tmpinfo = ostrcat(tmpinfo, " ?", 1, 0);
781
782                        if(textbox(_(text2), _(tmpinfo), "EXIT", getrcconfigint("rcexit", NULL), "OK", getrcconfigint("rcok", NULL), NULL, 0, NULL, 0, 600, 200, 0, 0) == 2)
783                        {
784                                char* log = NULL;                               
785                                drawscreen(load, 0, 0);
786                                resettvpic();                           
787                                if(path == NULL)
788                                        log = get_ipk_tmpinstall("/tmp", mbox->name);
789                                else
790                                        log = get_ipk_tmpinstall(path, mbox->name);
791
792                                if(log == NULL) log = ostrcat("No output found !", NULL, 0, 0);
793                                textbox(_(text2), log, "EXIT", getrcconfigint("rcexit", NULL), "OK", getrcconfigint("rcok", NULL), NULL, 0, NULL, 0, 800, 600, 0, 0);
794                                free(log); log = NULL;
795                                textbox(_("Message"), _("Some plugins needs restart.\nIf the plugin is not active\nreboot the box."), "EXIT", getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, NULL, 0, 600, 200, 0, 0);
796                                loadplugin();
797                                if(file_exist("/tmp/.ipkg_needs_reboot"))
798                                {
799                                        textbox(_("Message"), _("IPK Tmp Install Done your system rebooting !"), "EXIT", getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, NULL, 0, 600, 200, 0, 0);
800                                        system("init 6");
801                                }
802                        }
803                }
804/*
805                freemenulist(mlist, 1); mlist = NULL;
806                free(tmpstr); tmpstr = NULL;
807                free(tmpinfo); tmpinfo = NULL;
808                if(mbox != NULL) screenextensions_ipk(2, path);
809*/
810//              free(installpath); installpath = NULL;
811                free(tmpstr); tmpstr = NULL;
812                freemenulist(mlist, 0); mlist = NULL;
813                if(mbox != NULL) tmpstr = ostrcat(mbox->name, NULL, 0, 0);
814                free(tmpinfo); tmpinfo = NULL;
815                if(mbox != NULL) screenextensions_ipk(2, path, tmpstr, 0);
816                free(tmpstr); tmpstr = NULL;
817        }
818        else if(mode == 3)
819        {
820                drawscreen(load, 0, 0);
821                resettvpic();
822                unlink("/tmp/ipkg.log");
823                writesys("/tmp/.ipkg_upgrade_start", "0", 0);
824                ipkg_update();
825                ipkg_upgrade();
826                freeipkg();
827                loadplugin();
828                clearscreen(load);
829                drawscreen(skin, 0, 0);
830
831                if(file_exist("/tmp/.ipkg_needs_reboot"))
832                {
833                        textbox(_("Message"), _("IPK Upgrade Done your system rebooting !"), "EXIT", getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, NULL, 0, 600, 200, 0, 0);
834                        system("init 6");
835                }
836                unlink("/tmp/.ipkg_upgrade_start");
837        }
838        status.hangtime = getconfigint("hangtime", NULL);
839}
840
841//flag 0: without message
842//flag 1: with message
843void screenextensions_check_ipk(int flag)
844{
845        int treffer = 0;
846        struct hdd *node = NULL;
847        char* tmpstr = NULL, *tmpstr1 = NULL;
848
849        if(status.security == 1)
850        {
851                addhddall();
852                node = hdd;
853
854                while(node != NULL)
855                {
856                        if(node->partition != 0)
857                        {
858                                tmpstr = ostrcat("/autofs/", node->device, 0, 0);
859                                tmpstr1 = get_ipk_tmplistinstall(tmpstr);
860
861                                if(tmpstr1 != NULL)
862                                {
863                                        treffer = 1;
864                    screenextensions_ipk(2, tmpstr, NULL, 1);
865                                }
866
867                                free(tmpstr); tmpstr = NULL;
868                                free(tmpstr1); tmpstr1 = NULL;
869                        }
870                        node = node->next;
871                }
872
873                if(flag == 1 && treffer == 0)
874                        textbox(_("Ipk Install Info"), _("No plugin found."), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 600, 200, 0, 0);
875        }
876}
877#endif
878
879#endif
Note: See TracBrowser for help on using the repository browser.