tazlito annotate tazlitobox @ rev 136

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