slitaz-tools annotate tinyutils/frugal @ rev 939

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