tazlito annotate tazlitobox @ rev 144

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