flavors annotate core/rootfs/usr/bin/tazlitobox @ rev 15

Keep 4 flavors + loram + 3in1 and add tmp addfiles for core
author Christophe Lincoln <pankso@slitaz.org>
date Tue Feb 02 22:26:52 2010 +0100 (2010-02-02)
parents
children
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