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