rev |
line source |
pankso@15
|
1 #!/bin/sh
|
pankso@15
|
2 #
|
pankso@15
|
3 # Gtkdialog box for Tazlito - SliTaz Live Tool.
|
pankso@15
|
4 # Tabs are used for ident ans all action should go into functions to
|
pankso@15
|
5 # separate GUI and commands.
|
pankso@15
|
6 #
|
pankso@15
|
7 # (C) GNU gpl v3 - SliTaz GNU/Linux 2010.
|
pankso@15
|
8 #
|
pankso@15
|
9 VERSION=2.2
|
pankso@15
|
10
|
pankso@15
|
11 export BIN=$0
|
pankso@15
|
12
|
pankso@15
|
13 # Check if user is root.
|
pankso@15
|
14 check_root()
|
pankso@15
|
15 {
|
pankso@15
|
16 if test $(id -u) != 0 ; then
|
pankso@15
|
17 echo -e "
|
pankso@15
|
18 You must be root to run `basename $0`. Please type 'su' and
|
pankso@15
|
19 root password to become super-user.\n"
|
pankso@15
|
20 exit 0
|
pankso@15
|
21 fi
|
pankso@15
|
22 }
|
pankso@15
|
23
|
pankso@15
|
24 # We need to parse flavors.list for GTK tree.
|
pankso@15
|
25 list_flavors()
|
pankso@15
|
26 {
|
pankso@15
|
27 tazlito list-flavors | grep ^[a-z] | while read line
|
pankso@15
|
28 do
|
pankso@15
|
29 info=`echo -n $line | awk '{print $1 " " $2 " " $3}'`
|
pankso@15
|
30 printinfo=`echo -n $line | awk '{print $1 "|" $2 "|" $3}'`
|
pankso@15
|
31 echo "$printinfo|`echo $line | sed s/\"$info\"//`"
|
pankso@15
|
32 done
|
pankso@15
|
33 }
|
pankso@15
|
34
|
pankso@15
|
35 recharge_list()
|
pankso@15
|
36 {
|
pankso@15
|
37 xterm -geometry 90x14 \
|
pankso@15
|
38 -title "list-flavors --recharge" \
|
pankso@15
|
39 -e "tazlito list-flavors --recharge | grep ^[a-z] && sleep 2"
|
pankso@15
|
40 }
|
pankso@15
|
41
|
pankso@15
|
42 # When using gen-liveflavor, gen-flavor or gen-distro, user can put some
|
pankso@15
|
43 # addfiles copied into the rootfs.
|
pankso@15
|
44 addfiles_action()
|
pankso@15
|
45 {
|
pankso@15
|
46 cd /home/slitaz
|
pankso@15
|
47 mkdir -p distro/addfiles/rootfs/usr/share/images
|
pankso@15
|
48 mkdir -p distro/addfiles/rootcd
|
pankso@15
|
49 file-manager distro/addfiles &
|
pankso@15
|
50 }
|
pankso@15
|
51
|
pankso@15
|
52 writeiso_action()
|
pankso@15
|
53 {
|
pankso@15
|
54 xterm -geometry 80x16 \
|
pankso@15
|
55 -title "writeiso" \
|
pankso@15
|
56 -e "tazlito writeiso $COMPRESSION"
|
pankso@15
|
57 }
|
pankso@15
|
58
|
pankso@15
|
59 gen_liveflavor_action()
|
pankso@15
|
60 {
|
pankso@15
|
61 cd /home/slitaz
|
pankso@15
|
62 sed -i "s/ISO_NAME=.*/ISO_NAME=\"slitaz-$GEN_LIVEFLAVOR_NAME\"/" \
|
pankso@15
|
63 /etc/tazlito/tazlito.conf
|
pankso@15
|
64 xterm -geometry 80x16 \
|
pankso@15
|
65 -title "gen-liveflavor" \
|
pankso@15
|
66 -e "tazlito gen-liveflavor $GEN_LIVEFLAVOR_NAME && echo -e \"----\nENTER to continue...\" && read close"
|
pankso@15
|
67 }
|
pankso@15
|
68
|
pankso@15
|
69 clean_distro_action()
|
pankso@15
|
70 {
|
pankso@15
|
71 cd /home/slitaz
|
pankso@15
|
72 xterm -geometry 80x16 \
|
pankso@15
|
73 -title "clean-distro" \
|
pankso@15
|
74 -e "tazlito clean-distro && sleep 1"
|
pankso@15
|
75 }
|
pankso@15
|
76
|
pankso@15
|
77 get_flavor_action()
|
pankso@15
|
78 {
|
pankso@15
|
79 cd /home/slitaz
|
pankso@15
|
80 xterm -geometry 80x16 \
|
pankso@15
|
81 -title "get-flavor $COMMUNITY_FLAVOR" \
|
pankso@15
|
82 -e "tazlito get-flavor $COMMUNITY_FLAVOR && echo -e \"----\nENTER to continue...\" && read close"
|
pankso@15
|
83 }
|
pankso@15
|
84
|
pankso@15
|
85 gen_distro_action()
|
pankso@15
|
86 {
|
pankso@15
|
87 cd /home/slitaz
|
pankso@15
|
88 xterm -geometry 80x16 \
|
pankso@15
|
89 -title "gen-distro" \
|
pankso@15
|
90 -e "tazlito gen-distro && echo -e \"----\nENTER to continue...\" && read close"
|
pankso@15
|
91 }
|
pankso@15
|
92
|
pankso@15
|
93 gen_flavor_action()
|
pankso@15
|
94 {
|
pankso@15
|
95 cd /home/slitaz
|
pankso@15
|
96 xterm -geometry 80x16 \
|
pankso@15
|
97 -title "gen-flavor $GEN_FLAVOR_NAME" \
|
pankso@15
|
98 -e "tazlito gen-flavor $GEN_FLAVOR_NAME && echo -e \"----\nENTER to continue...\" && read close"
|
pankso@15
|
99 }
|
pankso@15
|
100
|
pankso@15
|
101 edit_distro_script()
|
pankso@15
|
102 {
|
pankso@15
|
103 [ ! -f $DISTRO_SCRIPT ] && echo "#!/bin/sh" > $DISTRO_SCRIPT
|
pankso@15
|
104 chmod +x $DISTRO_SCRIPT
|
pankso@15
|
105 editor $DISTRO_SCRIPT
|
pankso@15
|
106 }
|
pankso@15
|
107
|
pankso@15
|
108 # Boxes
|
pankso@15
|
109
|
pankso@15
|
110 export HELP='
|
pankso@15
|
111 <window title="Tazlito Box - Help" icon-name="media-cdrom">
|
pankso@15
|
112 <vbox>
|
pankso@15
|
113 <text use-markup="true">
|
pankso@15
|
114 <label>"
|
pankso@15
|
115 <b>Tazlito Box - Help</b>"
|
pankso@15
|
116 </label>
|
pankso@15
|
117 </text>
|
pankso@15
|
118
|
pankso@15
|
119 <frame Overview>
|
pankso@15
|
120 <text wrap="true" width-chars="52" use-markup="true">
|
pankso@15
|
121 <label>
|
pankso@15
|
122 "
|
pankso@15
|
123 Tazlito Box is a tiny interface to the SliTaz Live Tool aka Tazlito.
|
pankso@15
|
124 You can simply generate a LiveCD in a few minutes, using your
|
pankso@15
|
125 own flavor or one from the SliTaz community. Tazlito can also
|
pankso@15
|
126 generate a LiveCD flavor using all of the currently installed
|
pankso@15
|
127 packages. Tazlito commands are executed in a XTerm, you can
|
pankso@15
|
128 press ENTER or the mouse to close the window.
|
pankso@15
|
129 "
|
pankso@15
|
130 </label>
|
pankso@15
|
131 </text>
|
pankso@15
|
132 </frame>
|
pankso@15
|
133
|
pankso@15
|
134 <frame Default paths>
|
pankso@15
|
135 <text wrap="true" width-chars="50" use-markup="true">
|
pankso@15
|
136 <label>
|
pankso@15
|
137 "
|
pankso@15
|
138 Distro : /home/slitaz/distro
|
pankso@15
|
139 Flavors : /home/slitaz/flavors
|
pankso@15
|
140 Packages : /home/slitaz/packages
|
pankso@15
|
141 "
|
pankso@15
|
142 </label>
|
pankso@15
|
143 </text>
|
pankso@15
|
144 </frame>
|
pankso@15
|
145
|
pankso@15
|
146 <hbox>
|
pankso@15
|
147 <button>
|
pankso@15
|
148 <input file icon="exit"></input>
|
pankso@15
|
149 <action type="closewindow">HELP</action>
|
pankso@15
|
150 </button>
|
pankso@15
|
151 </hbox>
|
pankso@15
|
152
|
pankso@15
|
153 </vbox>
|
pankso@15
|
154 </window>
|
pankso@15
|
155 '
|
pankso@15
|
156
|
pankso@15
|
157 # List all flavors on the mirror.
|
pankso@15
|
158 export LIST_FLAVORS_BOX='
|
pankso@15
|
159 <window title="Community flavors list" icon-name="tazlito">
|
pankso@15
|
160 <vbox>
|
pankso@15
|
161 <tree>
|
pankso@15
|
162 <width>500</width><height>200</height>
|
pankso@15
|
163 <variable>COMMUNITY_FLAVOR</variable>
|
pankso@15
|
164 <label>Name|ISO|Rootfs|Description</label>
|
pankso@15
|
165 <input exported_column="0">$BIN list_flavors</input>
|
pankso@15
|
166 </tree>
|
pankso@15
|
167 <hbox>
|
pankso@15
|
168 <button>
|
pankso@15
|
169 <label>Recharge list</label>
|
pankso@15
|
170 <input file icon="reload"></input>
|
pankso@15
|
171 <action>$BIN recharge_list</action>
|
pankso@15
|
172 <action>refresh:COMMUNITY_FLAVOR</action>
|
pankso@15
|
173 </button>
|
pankso@15
|
174 <button>
|
pankso@15
|
175 <label>Exit</label>
|
pankso@15
|
176 <input file icon="exit"></input>
|
pankso@15
|
177 <action type="closewindow">LIST_FLAVORS_BOX</action>
|
pankso@15
|
178 </button>
|
pankso@15
|
179 </hbox>
|
pankso@15
|
180 </vbox>
|
pankso@15
|
181 </window>'
|
pankso@15
|
182
|
pankso@15
|
183 # Execute tazlito commands in a XTerm. Notebook: tab-pos="GTK_POS_LEFT"
|
pankso@15
|
184 export TAZLITO_BOX='
|
pankso@15
|
185 <window title="Tazlito Box" icon-name="media-cdrom">
|
pankso@15
|
186 <vbox>
|
pankso@15
|
187
|
pankso@15
|
188 <hbox>
|
pankso@15
|
189 <text use-markup="true">
|
pankso@15
|
190 <label>"<b>SliTaz Live Tool</b>"</label>
|
pankso@15
|
191 </text>
|
pankso@15
|
192 <pixmap>
|
pankso@15
|
193 <input file>/usr/share/pixmaps/tazlito.png</input>
|
pankso@15
|
194 </pixmap>
|
pankso@15
|
195 </hbox>
|
pankso@15
|
196
|
pankso@15
|
197 <notebook labels="Writeiso|Live flavor|Flavors list|Gen flavor|Configuration">
|
pankso@15
|
198
|
pankso@15
|
199 <frame Filesystem to ISO>
|
pankso@15
|
200
|
pankso@15
|
201 <text wrap="true" width-chars="60" use-markup="true">
|
pankso@15
|
202 <label>
|
pankso@15
|
203 "
|
pankso@15
|
204 Writeiso will generate an ISO image of the current filesystem as
|
pankso@15
|
205 is, including the /home directory. It is an easy way to remaster a
|
pankso@15
|
206 SliTaz Live system, you just have to: boot, modify, writeiso.
|
pankso@15
|
207 "
|
pankso@15
|
208 </label>
|
pankso@15
|
209 </text>
|
pankso@15
|
210
|
pankso@15
|
211 <hbox>
|
pankso@15
|
212 <text use-markup="true">
|
pankso@15
|
213 <label>"<b>Compression (gzip,lzma,none):</b>"</label>
|
pankso@15
|
214 </text>
|
pankso@15
|
215 <entry>
|
pankso@15
|
216 <default>gzip</default>
|
pankso@15
|
217 <variable>COMPRESSION</variable>
|
pankso@15
|
218 </entry>
|
pankso@15
|
219 </hbox>
|
pankso@15
|
220
|
pankso@15
|
221 <hbox>
|
pankso@15
|
222 <button>
|
pankso@15
|
223 <label>Writeiso</label>
|
pankso@15
|
224 <input file icon="forward"></input>
|
pankso@15
|
225 <action>$BIN writeiso_action</action>
|
pankso@15
|
226 </button>
|
pankso@15
|
227 </hbox>
|
pankso@15
|
228
|
pankso@15
|
229 </frame>
|
pankso@15
|
230
|
pankso@15
|
231 <frame Current packages selection>
|
pankso@15
|
232
|
pankso@15
|
233 <text wrap="true" width-chars="60" use-markup="true">
|
pankso@15
|
234 <label>
|
pankso@15
|
235 "
|
pankso@15
|
236 Gen Live flavor will create a LiveCD based on all the currently
|
pankso@15
|
237 installed packages. To build the rootfs and ISO image it will use
|
pankso@15
|
238 original SliTaz packages. Some addfiles can be copied before
|
pankso@15
|
239 gen distro.
|
pankso@15
|
240 "
|
pankso@15
|
241 </label>
|
pankso@15
|
242 </text>
|
pankso@15
|
243
|
pankso@15
|
244 <hbox>
|
pankso@15
|
245 <text use-markup="true">
|
pankso@15
|
246 <label>"<b>Flavor name :</b>"</label>
|
pankso@15
|
247 </text>
|
pankso@15
|
248 <entry>
|
pankso@15
|
249 <default>slitaz</default>
|
pankso@15
|
250 <variable>GEN_LIVEFLAVOR_NAME</variable>
|
pankso@15
|
251 </entry>
|
pankso@15
|
252 </hbox>
|
pankso@15
|
253
|
pankso@15
|
254 <hbox>
|
pankso@15
|
255 <button>
|
pankso@15
|
256 <label>Addfiles</label>
|
pankso@15
|
257 <input file icon="gtk-open"></input>
|
pankso@15
|
258 <action>$BIN addfiles_action</action>
|
pankso@15
|
259 </button>
|
pankso@15
|
260 <button>
|
pankso@15
|
261 <label>Gen distro</label>
|
pankso@15
|
262 <input file icon="forward"></input>
|
pankso@15
|
263 <action>$BIN gen_liveflavor_action</action>
|
pankso@15
|
264 </button>
|
pankso@15
|
265 <button>
|
pankso@15
|
266 <label>Clean distro</label>
|
pankso@15
|
267 <input file icon="edit-clear"></input>
|
pankso@15
|
268 <action>$BIN clean_distro_action</action>
|
pankso@15
|
269 </button>
|
pankso@15
|
270 </hbox>
|
pankso@15
|
271
|
pankso@15
|
272 </frame>
|
pankso@15
|
273
|
pankso@15
|
274 <frame Community and personal flavors>
|
pankso@15
|
275
|
pankso@15
|
276 <text wrap="true" width-chars="60" use-markup="true">
|
pankso@15
|
277 <label>
|
pankso@15
|
278 "
|
pankso@15
|
279 Get and build preconfigured flavors from the community. Flavors
|
pankso@15
|
280 llist can be recharged from SliTaz mirror. Some addfiles can be
|
pankso@15
|
281 copied before generating the distro.
|
pankso@15
|
282 "
|
pankso@15
|
283 </label>
|
pankso@15
|
284 </text>
|
pankso@15
|
285
|
pankso@15
|
286 <hbox>
|
pankso@15
|
287 <text use-markup="true">
|
pankso@15
|
288 <label>"<b>Flavor :</b>"</label>
|
pankso@15
|
289 </text>
|
pankso@15
|
290 <entry>
|
pankso@15
|
291 <default>core</default>
|
pankso@15
|
292 <variable>COMMUNITY_FLAVOR</variable>
|
pankso@15
|
293 </entry>
|
pankso@15
|
294 <button>
|
pankso@15
|
295 <label>List flavors</label>
|
pankso@15
|
296 <input file icon="media-cdrom"></input>
|
pankso@15
|
297 <action type="launch">LIST_FLAVORS_BOX</action>
|
pankso@15
|
298 </button>
|
pankso@15
|
299 </hbox>
|
pankso@15
|
300
|
pankso@15
|
301 <hbox>
|
pankso@15
|
302 <button>
|
pankso@15
|
303 <label>Get flavor</label>
|
pankso@15
|
304 <input file icon="forward"></input>
|
pankso@15
|
305 <action>$BIN get_flavor_action</action>
|
pankso@15
|
306 </button>
|
pankso@15
|
307 <button>
|
pankso@15
|
308 <label>Addfiles</label>
|
pankso@15
|
309 <input file icon="gtk-open"></input>
|
pankso@15
|
310 <action>$BIN addfiles_action</action>
|
pankso@15
|
311 </button>
|
pankso@15
|
312 <button>
|
pankso@15
|
313 <label>Gen distro</label>
|
pankso@15
|
314 <input file icon="forward"></input>
|
pankso@15
|
315 <action>$BIN gen_distro_action</action>
|
pankso@15
|
316 </button>
|
pankso@15
|
317 <button>
|
pankso@15
|
318 <label>Clean distro</label>
|
pankso@15
|
319 <input file icon="edit-clear"></input>
|
pankso@15
|
320 <action>$BIN clean_distro_action</action>
|
pankso@15
|
321 </button>
|
pankso@15
|
322 </hbox>
|
pankso@15
|
323
|
pankso@15
|
324 </frame>
|
pankso@15
|
325 <frame Generate a flavor>
|
pankso@15
|
326
|
pankso@15
|
327 <text wrap="true" width-chars="60" use-markup="true">
|
pankso@15
|
328 <label>
|
pankso@15
|
329 "
|
pankso@15
|
330 Gen Flavor will generate a new flavor file based on rootfs in
|
pankso@15
|
331 /home/slitaz/distro. All addfiles will be included in the flavor file.
|
pankso@15
|
332 "
|
pankso@15
|
333 </label>
|
pankso@15
|
334 </text>
|
pankso@15
|
335
|
pankso@15
|
336 <hbox>
|
pankso@15
|
337 <text use-markup="true">
|
pankso@15
|
338 <label>"<b>New flavor :</b>"</label>
|
pankso@15
|
339 </text>
|
pankso@15
|
340 <entry>
|
pankso@15
|
341 <default>slitaz</default>
|
pankso@15
|
342 <variable>GEN_FLAVOR_NAME</variable>
|
pankso@15
|
343 </entry>
|
pankso@15
|
344 </hbox>
|
pankso@15
|
345
|
pankso@15
|
346 <hbox>
|
pankso@15
|
347 <button>
|
pankso@15
|
348 <label>Addfiles</label>
|
pankso@15
|
349 <input file icon="gtk-open"></input>
|
pankso@15
|
350 <action>$BIN addfiles_action</action>
|
pankso@15
|
351 </button>
|
pankso@15
|
352 <button>
|
pankso@15
|
353 <label>Gen new flavor</label>
|
pankso@15
|
354 <input file icon="forward"></input>
|
pankso@15
|
355 <action>$BIN gen_flavor_action</action>
|
pankso@15
|
356 </button>
|
pankso@15
|
357 </hbox>
|
pankso@15
|
358
|
pankso@15
|
359 </frame>
|
pankso@15
|
360
|
pankso@15
|
361 <frame Flavor config and packages list>
|
pankso@15
|
362
|
pankso@15
|
363 <text wrap="true" width-chars="60" use-markup="true">
|
pankso@15
|
364 <label>
|
pankso@15
|
365 "
|
pankso@15
|
366 Before editing files you must have a flavor description. Distro
|
pankso@15
|
367 script can be used to perform actions into the rootfs before
|
pankso@15
|
368 compression.
|
pankso@15
|
369 "
|
pankso@15
|
370 </label>
|
pankso@15
|
371 </text>
|
pankso@15
|
372
|
pankso@15
|
373 <hbox>
|
pankso@15
|
374 <text use-markup="true">
|
pankso@15
|
375 <label>"<b>Flavor config :</b>"</label>
|
pankso@15
|
376 </text>
|
pankso@15
|
377 <entry>
|
pankso@15
|
378 <default>/home/slitaz/tazlito.conf</default>
|
pankso@15
|
379 <variable>CONFIG_FILE</variable>
|
pankso@15
|
380 </entry>
|
pankso@15
|
381 <button>
|
pankso@15
|
382 <input file icon="accessories-text-editor"></input>
|
pankso@15
|
383 <action>editor $CONFIG_FILE</action>
|
pankso@15
|
384 </button>
|
pankso@15
|
385 </hbox>
|
pankso@15
|
386
|
pankso@15
|
387 <hbox>
|
pankso@15
|
388 <text use-markup="true">
|
pankso@15
|
389 <label>"<b>Packages list :</b>"</label>
|
pankso@15
|
390 </text>
|
pankso@15
|
391 <entry>
|
pankso@15
|
392 <default>/home/slitaz/distro-packages.list</default>
|
pankso@15
|
393 <variable>PKGS_LIST</variable>
|
pankso@15
|
394 </entry>
|
pankso@15
|
395 <button>
|
pankso@15
|
396 <input file icon="accessories-text-editor"></input>
|
pankso@15
|
397 <action>editor $PKGS_LIST</action>
|
pankso@15
|
398 </button>
|
pankso@15
|
399 </hbox>
|
pankso@15
|
400
|
pankso@15
|
401 <hbox>
|
pankso@15
|
402 <text use-markup="true">
|
pankso@15
|
403 <label>"<b>Distro script :</b> "</label>
|
pankso@15
|
404 </text>
|
pankso@15
|
405 <entry>
|
pankso@15
|
406 <default>/home/slitaz/distro.sh</default>
|
pankso@15
|
407 <variable>DISTRO_SCRIPT</variable>
|
pankso@15
|
408 </entry>
|
pankso@15
|
409 <button>
|
pankso@15
|
410 <input file icon="accessories-text-editor"></input>
|
pankso@15
|
411 <action>$BIN edit_distro_script</action>
|
pankso@15
|
412 </button>
|
pankso@15
|
413 </hbox>
|
pankso@15
|
414
|
pankso@15
|
415 </frame>
|
pankso@15
|
416
|
pankso@15
|
417 </notebook>
|
pankso@15
|
418
|
pankso@15
|
419 <hbox>
|
pankso@15
|
420 <button help>
|
pankso@15
|
421 <input file icon="help-browser"></input>
|
pankso@15
|
422 <action type="launch">HELP</action>
|
pankso@15
|
423 </button>
|
pankso@15
|
424 <button>
|
pankso@15
|
425 <label>Exit</label>
|
pankso@15
|
426 <input file icon="exit"></input>
|
pankso@15
|
427 <action type="exit">Exit</action>
|
pankso@15
|
428 </button>
|
pankso@15
|
429 </hbox>
|
pankso@15
|
430
|
pankso@15
|
431 </vbox>
|
pankso@15
|
432 </window>
|
pankso@15
|
433 '
|
pankso@15
|
434
|
pankso@15
|
435 case $1 in
|
pankso@15
|
436 *_*)
|
pankso@15
|
437 # Exec all function called by args (must have an underscore).
|
pankso@15
|
438 $1 ;;
|
pankso@15
|
439 *)
|
pankso@15
|
440 # Tazlitobox action.
|
pankso@15
|
441 check_root
|
pankso@15
|
442 gtkdialog --center --program=TAZLITO_BOX ;;
|
pankso@15
|
443 esac
|
pankso@15
|
444
|
pankso@15
|
445 exit 0
|