seb annotate seb @ rev 27
Small fix to seb and use default prebuilt kernel
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Mon Mar 13 19:56:17 2017 +0100 (2017-03-13) |
parents | 33333de28e73 |
children | ad9ff08f754a |
rev | line source |
---|---|
pankso@7 | 1 #!/bin/sh |
pankso@7 | 2 # |
pankso@7 | 3 # SEB - SliTaz Embedded Builder - Back to the roots with SliTaz in |
pankso@7 | 4 # only a few MB. Please read the README file for more information. |
pankso@7 | 5 # |
pankso@7 | 6 # Copyright (C) 2017 SliTaz GNU/Linux - BSD License |
pankso@7 | 7 # Author: Christophe Lincoln <pankso@slitaz.org> |
pankso@7 | 8 # |
pankso@7 | 9 . /lib/libtaz.sh |
pankso@7 | 10 unset status get_cols separator colorize boldify |
pankso@7 | 11 |
pankso@7 | 12 # --iso --work --linux can be set in config file or from cmdline |
pankso@7 | 13 [ -f "build.conf" ] && . build.conf |
pankso@7 | 14 |
pankso@7 | 15 rootfs="$work/rootfs" |
pankso@7 | 16 rootiso="$work/rootiso" |
pankso@7 | 17 sebfs="$work/sebfs" |
pankso@7 | 18 sebpkgs="$work/sebpkgs" |
pankso@7 | 19 cache="$work/cache" |
pankso@7 | 20 vdisk="$work/sebhome.img" |
pankso@7 | 21 qemu_opts="-m 512" |
pankso@7 | 22 |
pankso@7 | 23 tools="/usr/share/seb/tools" |
pankso@7 | 24 initfs="/usr/share/seb/initfs" |
pankso@7 | 25 packages="/usr/share/seb/packages" |
pankso@7 | 26 |
pankso@27 | 27 [ "$work" ] || work="$(pwd)" |
pankso@27 | 28 [ "$iso" ] || iso="seb-os-$(date '+%Y%m%d').iso" |
pankso@27 | 29 [ "$linux" ] || linux="$tools/bzImage-4.9.13" |
pankso@27 | 30 [ "$port" ] || port="8940" |
pankso@27 | 31 |
pankso@7 | 32 # Working from source tree |
pankso@7 | 33 [ -d "tools" ] && tools="$(pwd)/tools" |
pankso@7 | 34 [ -d "initfs" ] && initfs="$(pwd)/initfs" |
pankso@7 | 35 [ -d "packages" ] && packages="$(pwd)/packages" |
pankso@7 | 36 |
pankso@7 | 37 # Source libseb.sh (overwrite libtaz.sh function) |
pankso@7 | 38 if [ -f "$PWD/libseb.sh" ]; then |
pankso@7 | 39 libseb="$PWD/libseb.sh" |
pankso@7 | 40 . ${libseb} |
pankso@7 | 41 else |
pankso@7 | 42 if ! . /lib/libseb.sh; then |
pankso@7 | 43 echo "Can't source any: libseb.sh"; exit 1 |
pankso@7 | 44 fi |
pankso@7 | 45 libseb="/lib/libseb.sh" |
pankso@7 | 46 fi |
pankso@7 | 47 debug "work=$work" |
pankso@7 | 48 |
pankso@7 | 49 # |
pankso@7 | 50 # Functions |
pankso@7 | 51 # |
pankso@7 | 52 |
pankso@7 | 53 help() { |
pankso@7 | 54 cat << EOT |
pankso@7 | 55 |
pankso@7 | 56 $(colorize 35 "SliTaz Embedded Builder") |
pankso@7 | 57 |
pankso@7 | 58 $(boldify "Usage:") $(basename $0) [command] [--opts] |
paul@14 | 59 $(boldify "Manual:") man seb |
pankso@7 | 60 |
pankso@7 | 61 $(boldify "Commands:") |
pankso@7 | 62 -h help Display this short built-in help |
paul@14 | 63 -i init Create base files to customize |
pankso@7 | 64 -b build Generate a distribution (initramfs & iso) |
pankso@7 | 65 -p packages Handle packages: --list --add |
pankso@7 | 66 -g geniso Re-generate the ISO image |
pankso@7 | 67 -c clean Remove all SEB generated files |
pankso@7 | 68 -l lsfs List all files in rootfs (-type f) |
pankso@7 | 69 -v vdisk Create, mount or unmount a virtual disk |
pankso@7 | 70 -e emu Emulate ISO image with Qemu |
pankso@24 | 71 -w web Start seb graphical web interface |
pankso@7 | 72 env Print current seb environment |
pankso@7 | 73 |
pankso@7 | 74 $(boldify "Options:") |
pankso@7 | 75 --work= Path to build directory |
pankso@7 | 76 --iso= Specify SliTaz Embedded ISO image name |
pankso@7 | 77 --linux= Path to a custom Linux kernel |
pankso@24 | 78 --port= Httpd port for the web interface |
pankso@7 | 79 --all Clean all files including sebfs |
pankso@7 | 80 --emu Emulate ISO image after build |
pankso@7 | 81 --check Check a virtual disk image |
pankso@7 | 82 |
pankso@7 | 83 EOT |
pankso@7 | 84 } |
pankso@7 | 85 |
paul@14 | 86 # Initial files which can be modified via sebfs/ |
pankso@7 | 87 init() { |
pankso@7 | 88 mkdir -p ${sebfs} ${sebpkgs} |
pankso@7 | 89 cp -rf ${initfs}/* ${sebfs} |
pankso@7 | 90 } |
pankso@7 | 91 |
pankso@7 | 92 geniso() { |
pankso@7 | 93 echo -n "Generating ISO image: ${iso}" |
pankso@7 | 94 cd ${work} |
pankso@7 | 95 genisoimage -R -o ${iso} \ |
pankso@7 | 96 -b boot/isolinux/isolinux.bin \ |
pankso@7 | 97 -c boot/isolinux/boot.cat -no-emul-boot -boot-load-size 4 \ |
pankso@7 | 98 -V "SliTaz Embedded" -input-charset iso8859-1 \ |
pankso@7 | 99 -boot-info-table rootiso 2> /dev/null; check |
pankso@7 | 100 echo -n "Checking ISO image size..." |
pankso@7 | 101 info 035 $(du -mhs $iso | awk '{print $1}') |
pankso@7 | 102 } |
pankso@7 | 103 |
pankso@7 | 104 emulate() { |
pankso@7 | 105 if [ -x "/usr/bin/qemu" ]; then |
pankso@7 | 106 echo "qemu $qemu_opts -cdrom $1" |
pankso@7 | 107 if [ -f "$vdisk" ]; then |
pankso@7 | 108 hda="-hda $vdisk" |
pankso@7 | 109 umount ${vdisk} 2>/dev/null |
pankso@7 | 110 fi |
pankso@7 | 111 qemu ${qemu_opts} ${hda} -cdrom ${1} |
pankso@7 | 112 else |
pankso@7 | 113 echo $(echo "Please install:") $(boldify qemu); exit 0 |
pankso@7 | 114 fi |
pankso@7 | 115 } |
pankso@7 | 116 |
paul@14 | 117 # Install files in the rootfs with same path as on the build host |
pankso@7 | 118 # Usage: install_files "/file/1" "/lib/lib.so*" "/file/N" |
pankso@7 | 119 install_files() { |
pankso@7 | 120 for file in ${@} ; do |
pankso@7 | 121 path=$(dirname $file) |
pankso@19 | 122 if [ ! -d "${rootfs}${path}" ]; then |
pankso@19 | 123 mkdir -p ${rootfs}${path} |
pankso@19 | 124 fi |
pankso@7 | 125 echo -n "Installing: $file" |
pankso@19 | 126 cp -a ${file} ${rootfs}${path}; check |
pankso@7 | 127 done |
pankso@7 | 128 } |
pankso@7 | 129 |
pankso@7 | 130 # Populate /dev + 'mdev -s' on boot |
pankso@7 | 131 create_dev_files() { |
pankso@7 | 132 echo -n "Populating: /dev" |
pankso@7 | 133 mkdir -p ${rootfs}/dev/pts ${rootfs}/dev/shm |
pankso@7 | 134 cd ${rootfs}/dev |
pankso@7 | 135 mknod -m 0666 null c 1 3 |
pankso@7 | 136 mknod -m 0622 console c 5 1 |
pankso@7 | 137 mknod -m 0666 tty c 5 0 |
pankso@7 | 138 for i in 0 1 2; do |
pankso@7 | 139 mknod -m 0666 tty$i c 4 $i |
pankso@7 | 140 done; check |
pankso@7 | 141 } |
pankso@7 | 142 |
paul@14 | 143 # Configuration files for /etc not generated by init to keep initfs/sebfs |
paul@14 | 144 # filesystems minimal |
pankso@7 | 145 create_etc_files() { |
pankso@7 | 146 echo -n "Creating config files in: /etc" |
pankso@7 | 147 (echo "127.0.0.1 localhost seb" > ${rootfs}/etc/hosts |
pankso@7 | 148 echo "localnet 127.0.0.1" > ${rootfs}/etc/networks |
pankso@7 | 149 echo "order hosts,bind" > ${rootfs}/etc/host.conf |
pankso@7 | 150 echo "multi on" >> ${rootfs}/etc/host.conf |
pankso@7 | 151 # Users & passwd |
pankso@7 | 152 echo "root:x:0:0:root:/root:/bin/sh" > ${rootfs}/etc/passwd |
pankso@7 | 153 echo "root::13525:0:99999:7:::" > ${rootfs}/etc/shadow |
pankso@7 | 154 cat > ${rootfs}/etc/group << EOT |
pankso@7 | 155 root:x:0: |
pankso@7 | 156 www:x:80: |
pankso@7 | 157 EOT |
pankso@7 | 158 cat > ${rootfs}/etc/gshadow << EOT |
pankso@7 | 159 root:*:: |
pankso@7 | 160 www:!:: |
pankso@7 | 161 EOT |
pankso@7 | 162 chmod 640 ${rootfs}/etc/*shadow) |
pankso@7 | 163 cat > ${rootfs}/etc/nsswitch.conf << EOT |
pankso@7 | 164 # /etc/nsswitch.conf: GNU Name Service Switch config. |
pankso@7 | 165 # |
pankso@7 | 166 |
pankso@7 | 167 passwd: files |
pankso@7 | 168 group: files |
pankso@7 | 169 shadow: files |
pankso@7 | 170 |
pankso@7 | 171 hosts: files dns |
pankso@7 | 172 networks: files |
pankso@7 | 173 EOT |
pankso@7 | 174 check |
pankso@18 | 175 mkdir -p ${rootfs}/etc/daemons |
pankso@7 | 176 } |
pankso@7 | 177 |
pankso@7 | 178 build() { |
pankso@7 | 179 title "Starting SliTaz Embedded builder" |
pankso@7 | 180 |
pankso@7 | 181 # Build environment |
pankso@7 | 182 rm -rf ${rootfs} ${rootiso} |
pankso@7 | 183 mkdir -p ${rootfs} ${rootiso}/boot/isolinux |
pankso@7 | 184 |
pankso@7 | 185 # FSH Tree |
pankso@7 | 186 echo -n "Populating: filesystem" |
pankso@7 | 187 for d in bin dev etc lib root run home proc media sbin sys \ |
pankso@10 | 188 usr/bin usr/sbin usr/share var/log var/cache var/lib var/run |
pankso@7 | 189 do |
pankso@7 | 190 mkdir -p ${rootfs}/${d} |
pankso@7 | 191 done |
pankso@7 | 192 install -d -m 1777 ${rootfs}/tmp; check |
pankso@7 | 193 |
pankso@7 | 194 # /etc + /dev |
pankso@7 | 195 create_etc_files |
pankso@7 | 196 create_dev_files |
pankso@7 | 197 |
pankso@7 | 198 # Initial sebfs from initfs: files can be modified |
pankso@7 | 199 [ ! -d "$sebfs" ] && init |
pankso@7 | 200 |
pankso@7 | 201 # GNU libc before chroot /bin/busybox --install + name resolution |
pankso@21 | 202 for lib in /lib/libm[-.]* /lib/libc[-.]*; do |
pankso@7 | 203 echo -n "Installing: $lib" |
pankso@7 | 204 cp -a ${lib} ${rootfs}/lib && check |
pankso@7 | 205 done |
pankso@21 | 206 install_files "/lib/ld-*" "/lib/libnss_dns*" "/lib/libnss_file*" \ |
pankso@21 | 207 "/lib/libresolv*" "/lib/libpthread*" "/lib/libdl*" |
pankso@7 | 208 |
pankso@7 | 209 # Busybox applets |
pankso@24 | 210 echo -n "Installing: busybox" |
pankso@7 | 211 cp -a /bin/busybox ${rootfs}/bin |
pankso@7 | 212 chroot ${rootfs} /bin/busybox --install -s; check |
pankso@7 | 213 |
pankso@7 | 214 # Busybox configs |
pankso@7 | 215 echo -n "Installing: busybox configs" |
pankso@7 | 216 cp -r /usr/share/udhcpc ${rootfs}/usr/share |
pankso@7 | 217 cp -f /etc/udhcpd.conf ${rootfs}/etc |
pankso@7 | 218 cp -f /etc/httpd.conf ${rootfs}/etc |
pankso@7 | 219 check |
pankso@7 | 220 |
pankso@7 | 221 # Busybox keymap |
pankso@7 | 222 echo -n "Dumping : keymap" |
pankso@7 | 223 mkdir -p ${rootfs}/usr/share/kmap |
pankso@7 | 224 dumpkmap > ${rootfs}/usr/share/kmap/default; check |
pankso@7 | 225 |
pankso@7 | 226 # Kilo editor (20K) with syntax highlight and search (Thanks Paul :-) |
pankso@24 | 227 echo -n "$(colorize 034 'Installing: kilo text editor')" |
pankso@7 | 228 cp -a ${tools}/kilo ${rootfs}/usr/bin; check |
pankso@7 | 229 |
pankso@7 | 230 # Ncursesw && dialog for sebos and additional tools |
pankso@10 | 231 install_files "/lib/libncursesw.so*" "/lib/libtinfo.so*" |
pankso@7 | 232 mkdir -p ${rootfs}/usr/share/terminfo/l |
pankso@7 | 233 cp /usr/share/terminfo/l/linux ${rootfs}/usr/share/terminfo/l |
pankso@10 | 234 install_files "/usr/bin/dialog" "/etc/dialogrc" |
pankso@7 | 235 |
pankso@7 | 236 # /lib/libseb.sh & sebos config tool |
pankso@7 | 237 echo -n "Installing: /lib/libseb.sh" |
pankso@7 | 238 cp ${libseb} ${rootfs}/lib; check |
pankso@24 | 239 echo -n "$(colorize 034 'Installing: sebos config tool')" |
pankso@7 | 240 cp ${tools}/sebos ${rootfs}/usr/bin; check |
pankso@7 | 241 |
pankso@7 | 242 # httphelper.sh for amazing CGI/Shell functions |
pankso@7 | 243 mkdir -p ${rootfs}/usr/lib/slitaz |
pankso@7 | 244 cp /usr/lib/slitaz/httphelper.sh ${rootfs}/usr/lib/slitaz |
pankso@7 | 245 |
pankso@7 | 246 # Packages TODO: handle deps |
pankso@7 | 247 touch ${rootfs}/var/lib/packages |
pankso@7 | 248 for pkg in $(ls $sebpkgs); do |
pankso@7 | 249 echo -n $(colorize 035 "Installing package:"); info 036 "$pkg" |
pankso@10 | 250 . ${sebpkgs}/${pkg} |
pankso@7 | 251 seb_install; echo "$pkg|$desc" >> ${rootfs}/var/lib/packages |
pankso@7 | 252 done |
pankso@7 | 253 |
pankso@7 | 254 # Custom files NOW |
pankso@7 | 255 if [ -d "$sebfs" ]; then |
pankso@7 | 256 echo -n "Copying custom files from sebfs..." |
pankso@7 | 257 cp -rf ${sebfs}/* ${rootfs}; check |
pankso@7 | 258 fi |
pankso@7 | 259 |
pankso@7 | 260 # COPYING |
pankso@7 | 261 mkdir -p ${rootfs}/usr/share/licenses |
pankso@7 | 262 cat > ${rootfs}/usr/share/licenses/COPYING << EOT |
pankso@7 | 263 Copyright (c) 2007-$(date '+%Y') SliTaz GNU/Linux |
pankso@7 | 264 |
pankso@7 | 265 SliTaz is free software; you can redistribute it and/or modify it under |
pankso@7 | 266 the terms of the GNU General Public License as published by the Free |
pankso@7 | 267 Software Foundation; either version 3 of the License, or (at your option) |
pankso@7 | 268 any later version. |
pankso@7 | 269 |
pankso@7 | 270 SliTaz is distributed in the hope that it will be useful, but WITHOUT ANY |
pankso@7 | 271 WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS |
pankso@7 | 272 FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. |
pankso@7 | 273 |
pankso@7 | 274 EOT |
pankso@7 | 275 |
pankso@7 | 276 # Build date |
pankso@7 | 277 cat >> ${rootfs}/etc/seb.conf << EOT |
pankso@7 | 278 |
pankso@7 | 279 # Seb-OS Build date |
pankso@7 | 280 build_date="$(date '+%Y%m%d')" |
pankso@7 | 281 |
pankso@7 | 282 # Seb-OS/SliTaz release string |
pankso@7 | 283 seb_os_release="$(cat /etc/slitaz-release)" |
pankso@7 | 284 |
pankso@7 | 285 EOT |
pankso@7 | 286 |
pankso@7 | 287 # Security check |
pankso@11 | 288 chown -R 0.0 ${rootfs} |
pankso@7 | 289 chmod 0600 ${rootfs}/etc/busybox.conf |
pankso@7 | 290 |
pankso@21 | 291 # Rootfs archive: lzma e -si -so |
pankso@24 | 292 echo -n "$(colorize 034 'Creating the initramfs...')" |
pankso@7 | 293 cd ${rootfs} |
pankso@21 | 294 find . -print | cpio -o -H newc | xz -9 --format=lzma \ |
pankso@21 | 295 > ${rootiso}/boot/rootfs.xz 2>/dev/null |
pankso@7 | 296 check |
pankso@7 | 297 |
pankso@7 | 298 # Linux Kernel |
pankso@7 | 299 echo -n "Copying the Linux kernel..." |
pankso@22 | 300 cp ${linux} ${rootiso}/boot/bzImage |
pankso@22 | 301 info 035 "$(du -mh $linux | awk '{print $1}')" |
pankso@7 | 302 |
pankso@7 | 303 # Bootloader |
pankso@7 | 304 echo -n "Copying the bootloader (isolinux)..." |
pankso@7 | 305 cp ${tools}/isolinux.bin ${rootiso}/boot/isolinux; check |
pankso@7 | 306 |
pankso@7 | 307 echo -n "Creating bootloader configs..." |
pankso@7 | 308 cat > ${rootiso}/boot/isolinux/isolinux.cfg << EOF |
pankso@7 | 309 display display.txt |
pankso@7 | 310 default seb |
pankso@7 | 311 label seb |
pankso@7 | 312 kernel /boot/bzImage |
pankso@21 | 313 append initrd=/boot/rootfs.xz rw root=/dev/null rdinit=/sbin/init |
pankso@7 | 314 implicit 0 |
pankso@7 | 315 prompt 1 |
pankso@7 | 316 timeout 40 |
pankso@7 | 317 EOF |
pankso@7 | 318 cat > ${rootiso}/boot/isolinux/display.txt << EOF |
pankso@7 | 319 |
pankso@7 | 320 ____ _ _ _ _ ___ _ |
pankso@7 | 321 / ___| \ | | | | | / / | (_)_ __ _ ___ __ |
pankso@7 | 322 | | _| \| | | | |/ /| | | | '_ \| | | \ \/ / |
pankso@7 | 323 | |_| | |\ | |_| / / | |___| | | | | |_| |> < |
pankso@7 | 324 \____|_| \_|\___/_/ |_____|_|_| |_|\__,_/_/\_\ |
pankso@7 | 325 |
pankso@7 | 326 SliTaz Embedded OS - Press <ENTER> to boot |
pankso@7 | 327 www.slitaz.org |
pankso@7 | 328 |
pankso@7 | 329 |
pankso@7 | 330 EOF |
pankso@7 | 331 check |
pankso@7 | 332 |
pankso@7 | 333 echo -n "Checking rootfs size..." |
pankso@7 | 334 info 035 $(du -mhs $rootfs | awk '{print $1}') |
pankso@7 | 335 echo -n "Installed files in rootfs..." |
pankso@7 | 336 info 036 $(find ${rootfs} -type f | wc -l) |
pankso@7 | 337 |
pankso@7 | 338 # ISO image |
pankso@7 | 339 geniso; footer |
pankso@7 | 340 } |
pankso@7 | 341 |
pankso@7 | 342 # Handle seb packages |
pankso@7 | 343 packages_handler() { |
pankso@7 | 344 |
paul@14 | 345 # List available packages |
pankso@7 | 346 if [ ! "$1" ]; then |
pankso@7 | 347 title "Seb packages" |
pankso@7 | 348 for pkg in $(ls ${packages}); do |
pankso@7 | 349 . ${packages}/${pkg} |
pankso@7 | 350 echo -n "$(colorize 036 $pkg)"; indent 20 "$desc" |
pankso@7 | 351 unset desc deps |
pankso@7 | 352 done |
pankso@7 | 353 footer && exit 0 |
pankso@7 | 354 fi |
pankso@7 | 355 |
pankso@7 | 356 # Add package(s) |
pankso@7 | 357 if [ "$add" ]; then |
pankso@7 | 358 for pkg in ${@}; do |
pankso@7 | 359 case "$pkg" in |
pankso@7 | 360 --*) continue ;; |
pankso@7 | 361 *) |
pankso@7 | 362 if [ -f "$packages/$pkg" ]; then |
paul@14 | 363 echo -n "Adding package: $pkg" |
pankso@7 | 364 mkdir -p ${sebpkgs} |
pankso@7 | 365 cp -f ${packages}/${pkg} ${sebpkgs}; check |
pankso@7 | 366 else |
pankso@7 | 367 echo "Can't find package: $package/$pkg" |
pankso@7 | 368 fi ;; |
pankso@7 | 369 esac |
pankso@7 | 370 done |
pankso@7 | 371 fi |
pankso@7 | 372 } |
pankso@7 | 373 |
pankso@7 | 374 # Handle vdisk: create, check, mount, umount |
pankso@7 | 375 vdisk_hanler() { |
pankso@7 | 376 title "SEB Virtual disk" |
pankso@13 | 377 vsize=60 |
pankso@7 | 378 root=${vdisk%.img} |
pankso@7 | 379 |
pankso@7 | 380 # Info or create |
pankso@7 | 381 if [ -f "$vdisk" ]; then |
pankso@7 | 382 echo -n "Virtual disk: $vdisk" |
pankso@7 | 383 info 035 "$(du -mhs $vdisk | awk '{print $1}')" |
pankso@7 | 384 else |
pankso@7 | 385 echo "Creating virtual disk image..." |
pankso@13 | 386 dd if=/dev/zero of=${vdisk} bs=1M count=${vsize} |
pankso@24 | 387 colorize 034 "Creating ext3 filesystem..." |
pankso@7 | 388 mkfs.ext3 -L "SebOShome" ${vdisk} |
pankso@7 | 389 fi |
pankso@7 | 390 |
pankso@7 | 391 # Check |
pankso@7 | 392 if [ "$check" ]; then |
pankso@7 | 393 echo "Umounting vdisk before: e2fsck -p" |
pankso@7 | 394 umount ${vdisk} >/dev/null |
pankso@7 | 395 e2fsck -p ${vdisk} |
pankso@7 | 396 fi |
pankso@7 | 397 |
pankso@7 | 398 # Action: mount/unmount |
pankso@7 | 399 if ! mount | grep -q "^$vdisk"; then |
pankso@7 | 400 echo -n "Mounting virtual disk..."; mkdir -p ${root} |
pankso@7 | 401 mount -o loop -t ext3 ${vdisk} ${root}; status |
pankso@7 | 402 else |
pankso@7 | 403 echo -n "Unmounting virtual disk..." |
pankso@7 | 404 umount ${vdisk}; status; sleep 1 |
pankso@7 | 405 fi; footer |
pankso@7 | 406 } |
pankso@7 | 407 |
pankso@7 | 408 # |
pankso@7 | 409 # Commands |
pankso@7 | 410 # |
pankso@7 | 411 |
pankso@7 | 412 case "$1" in |
pankso@7 | 413 |
pankso@7 | 414 -i|init) |
pankso@7 | 415 rootfs="$sebfs" |
pankso@7 | 416 echo -n "Creating files in: ${rootfs}" |
pankso@7 | 417 init; check ;; |
pankso@7 | 418 |
pankso@7 | 419 -b|build) |
pankso@7 | 420 check_root |
pankso@7 | 421 build |
pankso@7 | 422 [ "$emu" ] && emulate ${work}/${iso} ;; |
pankso@7 | 423 |
pankso@7 | 424 -g|geniso) |
pankso@7 | 425 check_root |
pankso@7 | 426 geniso ;; |
pankso@7 | 427 |
pankso@7 | 428 -c|clean) |
pankso@7 | 429 check_root |
pankso@7 | 430 echo -n "Cleaning: ${work}" |
pankso@7 | 431 [ "$all" ] && rm -rf ${sebfs} ${cache} |
pankso@7 | 432 rm -rf ${rootfs}* ${rootiso} ${work}/*.iso |
pankso@7 | 433 check ;; |
pankso@7 | 434 |
pankso@7 | 435 -p|package*) |
pankso@7 | 436 shift |
pankso@7 | 437 packages_handler "$@" ;; |
pankso@7 | 438 |
pankso@7 | 439 -v|vdisk) |
pankso@7 | 440 vdisk_hanler ;; |
pankso@7 | 441 |
pankso@7 | 442 -l|lsfs) |
pankso@7 | 443 title "Listing: $rootfs" |
pankso@7 | 444 cd ${rootfs}; find . -type f | sed s'/^.//'g |
pankso@7 | 445 footer "Rootfs files: $(find . -type f | wc -l)" ;; |
pankso@7 | 446 |
pankso@11 | 447 -e|emu) |
pankso@7 | 448 title "Emulating: $iso" |
pankso@7 | 449 emulate ${work}/${iso} |
pankso@7 | 450 footer ;; |
pankso@24 | 451 |
pankso@24 | 452 -w|web) |
pankso@27 | 453 pid=$(ps | grep $port | grep -v grep | awk '{print $1}') |
pankso@24 | 454 if [ "$stop" ] && [ "$pid" ]; then |
pankso@24 | 455 echo -n "Stopping Web interface... pid:" |
pankso@24 | 456 kill ${pid}; info 035 "$pid"; exit 0 |
pankso@24 | 457 fi |
pankso@24 | 458 # Need the cgi script in server root |
pankso@24 | 459 if [ ! -f "$work/seb.cgi" ]; then |
pankso@24 | 460 cp ${tools}/web/seb.cgi . |
pankso@24 | 461 fi |
pankso@24 | 462 if [ "$pid" ]; then |
pankso@24 | 463 echo -n "Web interface is already running with pid:" |
pankso@24 | 464 info 035 "$pid" |
pankso@24 | 465 else |
pankso@24 | 466 echo -n "Starting web interface on port:"; info 035 "$port" |
pankso@24 | 467 httpd -p ${port} -u 0:0 -h ${work} \ |
pankso@24 | 468 -c ${tools}/web/httpd.conf |
pankso@24 | 469 fi |
pankso@24 | 470 tazweb --notoolbar http://localhost:${port}/ & ;; |
pankso@7 | 471 |
pankso@7 | 472 env) |
pankso@7 | 473 title "SEB environment" |
pankso@7 | 474 cat << EOT |
pankso@7 | 475 work=$work |
pankso@7 | 476 rootfs=$rootfs |
pankso@7 | 477 rootiso=$rootiso |
pankso@7 | 478 sebfs=$sebfs |
pankso@7 | 479 sebpkgs=$sebpkgs |
pankso@7 | 480 cache=$cache |
pankso@7 | 481 vdisk=$vdisk |
pankso@7 | 482 tools=$tools |
pankso@7 | 483 initfs=$initfs |
pankso@7 | 484 packages=$packages |
pankso@7 | 485 iso=$iso |
pankso@7 | 486 linux=$linux |
pankso@7 | 487 EOT |
pankso@7 | 488 footer ;; |
pankso@7 | 489 |
pankso@7 | 490 -t|testsuite) |
pankso@24 | 491 # Development/debug purpose |
pankso@24 | 492 if [ -x "./libseb.sh" ]; then |
pankso@24 | 493 ./libseb.sh |
pankso@24 | 494 else |
pankso@24 | 495 /lib/libseb.sh |
pankso@24 | 496 fi ;; |
pankso@7 | 497 |
pankso@7 | 498 *) help ;; |
pankso@7 | 499 |
pankso@7 | 500 esac && exit 0 |