source: lliurex-ubiquity-addons/trunk/fuentes/src/UbiLliureXExtraPackages.py @ 6834

Last change on this file since 6834 was 6834, checked in by daduve, 19 months ago

Adding Flash screen to install and fix bug when you visit last selection and change it.

File size: 3.2 KB
Line 
1from ubiquity import misc, plugin, validation
2import os
3import inspect
4import socket
5
6NAME = 'lliurex'
7AFTER = 'console_setup'
8BEFORE = 'usersetup'
9WEIGHT = 13
10
11class PageGtk(plugin.PluginUI):
12        plugin_title = 'lliurex/installextradebs'
13
14        def __init__(self, controller, *args, **kwargs):
15                from gi.repository import Gio, Gtk
16                self.resolver = Gio.Resolver.get_default()
17                self.controller = controller
18                builder = Gtk.Builder()
19                self.controller.add_builder(builder)
20                builder.add_from_file(os.path.join(
21                        os.environ['UBIQUITY_GLADE'], 'UbiLliureXExtraPackages.ui'))
22                builder.connect_signals(self)
23                self.page = builder.get_object('UbiLliureXExtraPackages')
24                # Office
25                self.ocrfeeder = builder.get_object('cb_ocrfeeder')
26                self.posterazor = builder.get_object('cb_posterazor')
27
28                # PDI
29                self.mrpdi = builder.get_object('cb_mrpdi')
30                self.sankore = builder.get_object('cb_openboard')
31
32                # Technology
33                self.s4a = builder.get_object('cb_s4a')
34                self.appinventor = builder.get_object('cb_appinventor')
35                self.arduino = builder.get_object('cb_arduino')
36                self.openscad = builder.get_object('cb_openscad')
37
38                # End
39                self.plugin_widgets = self.page
40                self.skip = False
41               
42        def plugin_skip_page(self):
43                # Set from the command line with --wireless
44                ip_success=""
45                internet= False
46       
47                try:
48                        ip_success = socket.gethostbyname("lliurex.net")
49                        print ("LliureX is reachable : " + ip_success)
50                        internet = True
51                except Exception as e:
52                        print ("LliureX is unreachable:  "+ str(e))
53       
54                try:
55                        ip_success = socket.gethostbyname("server")
56                        print ("Server is reachable : " + ip_success)
57                        internet = True
58                except Exception as e:
59                        print ("Server is unreachable:  "+ str(e))
60       
61                if internet:
62                        return False
63                else:
64                        return True
65       
66
67class Page(plugin.Plugin):
68       
69
70       
71        @misc.raise_privileges
72        def ok_handler(self):
73                list_packages = []
74                all_avaiable_packages = ['ocrfeeder', 'posterazor', 'mrpdi-gui', 'openboard', 's4a', 'appinventor2-setup', 'arduino-ide', 'openscad']
75                # First office
76                if self.ui.ocrfeeder.get_active():
77                        list_packages.append('ocrfeeder')
78                if self.ui.posterazor.get_active():
79                        list_packages.append('posterazor')
80               
81                # Secondly PDI
82                if self.ui.mrpdi.get_active():
83                        list_packages.append('mrpdi-gui')
84                if self.ui.sankore.get_active():
85                        list_packages.append('openboard')
86
87                # At last technology
88                if self.ui.s4a.get_active():
89                        list_packages.append('s4a')
90                if self.ui.appinventor.get_active():
91                        list_packages.append('appinventor2-setup')
92                if self.ui.arduino.get_active():
93                        list_packages.append('arduino-ide')
94                if self.ui.openscad.get_active():
95                        list_packages.append('openscad')
96       
97                # End of checkboxes
98                #s = inspect.stack()
99                #ob = s[1][0]
100                #parent = inspect.getargvalues(ob).locals['self']
101                #parent.success_cmd = 'chroot /target apt-get update && apt-get install ' +' '.join(list_packages)
102
103                os.system("mkdir -p /var/lib/ubiquity/")
104                #Clean the file
105                for p in all_avaiable_packages:
106                        f = open("/var/lib/ubiquity/apt-installed","r")
107                        lines = f.readlines()
108                        f.close()
109                        f = open("/var/lib/ubiquity/apt-installed","w")
110                        for line in lines:
111                                if line!=p+"\n":
112                                        f.write(line)
113                        f.close()
114                       
115                for p in list_packages:
116                        f = open("/var/lib/ubiquity/apt-installed","a")
117                        f.write(str(p)+"\n")
118                        f.close()
119                       
120                plugin.Plugin.ok_handler(self)
Note: See TracBrowser for help on using the repository browser.