slitaz-tools annotate tinyutils/frugal @ rev 817
Add: frugal (small to to handle SliTaz frugal install from cmdline)
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Thu Jan 02 18:52:54 2014 +0100 (2014-01-02) |
parents | |
children | a4f64dd9b359 |
rev | line source |
---|---|
pankso@817 | 1 #!/bin/sh |
pankso@817 | 2 # |
pankso@817 | 3 # Frugal is a tiny tool to handle SliTaz frugal installation. |
pankso@817 | 4 # |
pankso@817 | 5 # Copyright (C) 2013 SliTaz GNU/Linux - BSD License |
pankso@817 | 6 # |
pankso@817 | 7 # Author: Christophe Lincoln <pankso@slitaz.org> |
pankso@817 | 8 # |
pankso@817 | 9 . /lib/libtaz.sh |
pankso@817 | 10 |
pankso@817 | 11 [ "$root" ] || root="/boot/frugal" |
pankso@817 | 12 |
pankso@817 | 13 # NOTES: |
pankso@817 | 14 # Have a --web option to dl ISO ? |
pankso@817 | 15 # Auto configure GRUB ? |
pankso@817 | 16 # |
pankso@817 | 17 |
pankso@817 | 18 # Internationalization |
pankso@817 | 19 . /usr/bin/gettext.sh |
pankso@817 | 20 TEXTDOMAIN='slitaz-tools' |
pankso@817 | 21 export TEXTDOMAIN |
pankso@817 | 22 |
pankso@817 | 23 # |
pankso@817 | 24 # Functions |
pankso@817 | 25 # |
pankso@817 | 26 |
pankso@817 | 27 # Small help and usage. |
pankso@817 | 28 usage() { |
pankso@817 | 29 name=$(basename $0) |
pankso@817 | 30 cat << EOT |
pankso@817 | 31 |
pankso@817 | 32 $(boldify $(gettext "Usage:")) $name [iso|command] [--options] |
pankso@817 | 33 |
pankso@817 | 34 $(gettext "SliTaz frugal installation") |
pankso@817 | 35 |
pankso@817 | 36 $(boldify $(gettext "Commands:")) |
pankso@817 | 37 info $(gettext "Display install path and size stats") |
pankso@817 | 38 clean $(gettext "Remove all frugal files") |
pankso@817 | 39 grub-ex $(gettext "Show GRUB configuration example") |
pankso@817 | 40 |
pankso@817 | 41 $(boldify $(gettext "Options:")) |
pankso@817 | 42 --root= $(gettext "Set root installation path") |
pankso@817 | 43 --debug $(gettext "Display some useful debug information") |
pankso@817 | 44 |
pankso@817 | 45 $(boldify $(gettext "Examples:")) |
pankso@817 | 46 $name slitaz-rolling.iso |
pankso@817 | 47 $name slitaz-5.0.iso --root=/boot/frugal |
pankso@817 | 48 |
pankso@817 | 49 EOT |
pankso@817 | 50 } |
pankso@817 | 51 |
pankso@817 | 52 # GRUB config example. |
pankso@817 | 53 grub_example() { |
pankso@817 | 54 cat << EOT |
pankso@817 | 55 title SliTaz GNU/Linux (frugal) |
pankso@817 | 56 root (hd0,0) |
pankso@817 | 57 kernel /boot/frugal/bzImage root=/dev/null lang=en kmap=us |
pankso@817 | 58 initrd /boot/frugal/rootfs.gz |
pankso@817 | 59 EOT |
pankso@817 | 60 } |
pankso@817 | 61 |
pankso@817 | 62 # |
pankso@817 | 63 # Commands |
pankso@817 | 64 # |
pankso@817 | 65 |
pankso@817 | 66 case "$1" in |
pankso@817 | 67 "") usage ;; |
pankso@817 | 68 info) |
pankso@817 | 69 newline |
pankso@817 | 70 boldify "Frugal info" |
pankso@817 | 71 separator |
pankso@817 | 72 # First check if we are running in frugal mode |
pankso@817 | 73 if fgrep -q 'root=/dev/null' /proc/cmdline; then |
pankso@817 | 74 gettext "Frugal system running detected"; newline |
pankso@817 | 75 separator && newline && exit 0 |
pankso@817 | 76 fi |
pankso@817 | 77 gettext "Installation directory:"; indent 30 $(colorize 36 "$root") |
pankso@817 | 78 gettext "Kernel size:" |
pankso@817 | 79 if [ -f "${root}/bzImage" ]; then |
pankso@817 | 80 indent 30 $(du -sh ${root}/bzImage | awk '{print $1}') |
pankso@817 | 81 else |
pankso@817 | 82 indent 30 $(boldify "N/A") |
pankso@817 | 83 fi |
pankso@817 | 84 gettext "Rootfs size:" |
pankso@817 | 85 if [ -f "${root}/rootfs.gz" ]; then |
pankso@817 | 86 indent 30 $(du -sh ${root}/rootfs.gz | awk '{print $1}') |
pankso@817 | 87 else |
pankso@817 | 88 indent 30 $(boldify "N/A") |
pankso@817 | 89 fi |
pankso@817 | 90 separator && newline ;; |
pankso@817 | 91 clean) |
pankso@817 | 92 check_root |
pankso@817 | 93 gettext "Cleaning:"; echo " $root" |
pankso@817 | 94 rm -rf ${root}/* ;; |
pankso@817 | 95 grub-ex) |
pankso@817 | 96 newline |
pankso@817 | 97 boldify "GRUB config example" |
pankso@817 | 98 separator |
pankso@817 | 99 grub_example |
pankso@817 | 100 separator && newline ;; |
pankso@817 | 101 *) |
pankso@817 | 102 iso="$1" |
pankso@817 | 103 loop="/tmp/frugal-$$" |
pankso@817 | 104 check_root |
pankso@817 | 105 newline |
pankso@817 | 106 boldify "SliTaz Frugal" |
pankso@817 | 107 separator |
pankso@817 | 108 if [ ! -f "$iso" ]; then |
pankso@817 | 109 gettext "Unable to find ISO image:"; colorize 31 " $iso" |
pankso@817 | 110 newline && return 1 |
pankso@817 | 111 fi |
pankso@817 | 112 debug "$iso $root" |
pankso@817 | 113 gettext "Mounting ISO image..." |
pankso@817 | 114 mkdir -p ${loop} |
pankso@817 | 115 mount -o loop "$iso" ${loop} 2>/dev/null |
pankso@817 | 116 status |
pankso@817 | 117 gettext "Installing the Kernel..." |
pankso@817 | 118 cp -a ${loop}/boot/bzImage ${root} |
pankso@817 | 119 status |
pankso@817 | 120 gettext "Installing the root filesystem..." |
pankso@817 | 121 if [ -f ${loop}/boot/rootfs1.gz ]; then |
pankso@817 | 122 cd ${loop}/boot |
pankso@817 | 123 cat $(ls -r rootfs*.gz) > ${root}/rootfs.gz |
pankso@817 | 124 cd - >/dev/null |
pankso@817 | 125 else |
pankso@817 | 126 cp -a ${loop}/boot/rootfs.gz ${root} |
pankso@817 | 127 fi |
pankso@817 | 128 status |
pankso@817 | 129 # Umount the loop device |
pankso@817 | 130 gettext "Unmounting ISO image..." |
pankso@817 | 131 sleep 1 |
pankso@817 | 132 umount ${loop} && rm -rf ${loop} |
pankso@817 | 133 status |
pankso@817 | 134 separator && newline ;; |
pankso@817 | 135 esac |
pankso@817 | 136 |
pankso@817 | 137 exit 0 |