sup annotate sup @ rev 16

Fix sup-install.desktop
author Christophe Lincoln <pankso@slitaz.org>
date Sun Feb 26 17:59:31 2017 +0100 (2017-02-26)
parents 2d6da8d88ae8
children 6e287a70e3d7
rev   line source
pankso@6 1 #!/bin/sh
pankso@6 2 #
pankso@6 3 # SliTaz Users Package - Minimal cmdline tools - README for devel info
pankso@6 4 #
pankso@6 5 # Copyright (C) 2017 SliTaz GNU/Linux - BSD License
pankso@6 6 # Author: Christophe Lincoln <pankso@slitaz.org>
pankso@6 7 #
pankso@6 8 if [ -f "/usr/lib/slitaz/libsup.sh" ]; then
pankso@6 9 . /usr/lib/slitaz/libsup.sh
pankso@6 10 else
pankso@6 11 . ./libsup.sh
pankso@6 12 fi
pankso@6 13
pankso@6 14 # Sanity check
pankso@13 15 if ! [ -d "/home/$(id -un)" ]; then
pankso@13 16 gettext "Not a valid user:"; colorize 31 " $(id -un)" && exit 1
pankso@6 17 fi
pankso@6 18 mkdir -p ${cache} ${installed}
pankso@6 19
pankso@6 20 #
pankso@6 21 # Functions
pankso@6 22 #
pankso@6 23
pankso@6 24 help() {
pankso@6 25 cat << EOT
pankso@6 26
pankso@6 27 $(boldify $(gettext "Usage:")) $(basename $0) [command] [package]
pankso@6 28
pankso@6 29 $(boldify $(gettext "Commands:"))
pankso@6 30 -c cook
pankso@6 31 -e extract
pankso@6 32 -i install
pankso@6 33 -l list
pankso@6 34
pankso@6 35 $(boldify $(gettext "Options:"))
pankso@6 36 --init cook $(gettext "Initialize sup build environment")
paul@9 37 --verbose all $(gettext "Display more output messages")
pankso@6 38
pankso@6 39 EOT
pankso@6 40 exit 0
pankso@6 41 }
pankso@6 42
pankso@6 43 cook_init() {
pankso@6 44 mkdir -p ${wok} ${cooked}
pankso@6 45 if [ ! -d "$supcook/wok" ]; then
pankso@6 46 ln -s ${wok} ${supcook}/wok
pankso@6 47 fi
pankso@6 48 }
pankso@6 49
pankso@15 50 # new_receipt "package"
pankso@15 51 new_receip() {
pankso@15 52 cat > receip << EOT
pankso@15 53 # SliTaz User Package receipt
pankso@15 54
pankso@16 55 PACKAGE="$1"
pankso@15 56 VERSION=""
pankso@15 57 SHORT_DESC=""
pankso@15 58 MAINTAINER=""
pankso@15 59 LICENSE=""
pankso@15 60 WEB_SITE=""
pankso@15 61
pankso@15 62 # Sup dependencies will be automatically downloaded but system wide
pankso@15 63 # deps must be manually installed by root.
pankso@15 64 SUP_DEPS=""
pankso@15 65 DEPENDS=""
pankso@15 66
pankso@15 67 # Here are the optional install rules (download, configure, etc)
pankso@15 68 sup_install() {
pankso@15 69 echo ""
pankso@15 70 }
pankso@15 71
pankso@15 72 EOT
pankso@15 73 }
pankso@15 74
pankso@6 75 #
pankso@6 76 # Commands
pankso@6 77 #
pankso@6 78
pankso@6 79 case "$1" in
pankso@6 80
pankso@6 81 -c|cook)
pankso@6 82 # Cook in $cache/cook amd mv pkg to a visible dir
pankso@6 83 pkg="$2"
pankso@12 84 receip="$wok/$pkg/receip"
pankso@6 85 cache="$cache/cook"
pankso@6 86
pankso@6 87 # Handle --init
pankso@6 88 if [ "$init" ]; then
pankso@6 89 gettext "Initializing sup cook environment..."
pankso@6 90 cook_init
pankso@6 91 status && exit 0
pankso@6 92 fi
pankso@6 93
pankso@6 94 # Sanity check
pankso@6 95 if [ ! "$pkg" ]; then
pankso@6 96 gettext "You must specify a package to cook:"
pankso@6 97 boldify " sup cook [package]" && exit 1
pankso@6 98 fi
pankso@12 99 if [ ! -f "$receip" ]; then
pankso@12 100 gettext "Can't find receip in wok for:"
pankso@6 101 colorize 31 " $pkg" && exit 1
pankso@6 102 fi
pankso@6 103
pankso@6 104 newline
pankso@6 105 gettext "Building package:"; colorize 36 " $pkg"
pankso@6 106 separator
pankso@6 107 rm -rf ${cache} && mkdir -p ${cache} ${cooked}
pankso@6 108
pankso@12 109 # Check receip
pankso@12 110 [ "$verbose" ] && gettext "Checking receip variables..."
pankso@12 111 . ${receip}
pankso@6 112 for var in PACKAGE VERSION SHORT_DESC MAINTAINER LICENSE WEB_SITE
pankso@6 113 do
pankso@12 114 value="$(. $receip; eval echo \$$var)"
pankso@6 115 case "$var" in
pankso@6 116 PACKAGE|VERSION|SHORT_DESC|MAINTAINER|LICENSE)
pankso@6 117 if [ ! "$value" ]; then
pankso@6 118 gettext "Empty variable:"; colorize 31 " $var=\"\""
pankso@6 119 exit 1
pankso@6 120 fi ;;
pankso@6 121 WEB_SITE)
pankso@6 122 if [ ! "$value" ]; then
pankso@6 123 gettext "Empty variable:"; colorize 31 " $var=\"\""
pankso@6 124 gettext "You can use:"
pankso@6 125 boldify " http://scn.slitaz.org/?sup&pkg=$PACKAGE"
pankso@6 126 exit 1
pankso@6 127 fi ;;
pankso@6 128 esac
pankso@6 129 done
pankso@6 130 [ "$verbose" ] && status
pankso@6 131
pankso@6 132 # Set $PACKAGE-$VERSION.sup and copy pkg to cache
pankso@6 133 supfile="$PACKAGE-$VERSION.sup"
pankso@6 134 cp -rf ${wok}/${pkg} ${cache}/${supfile%.sup}
pankso@6 135 cd ${cache}/${supfile%.sup}
pankso@6 136
paul@9 137 # Move to hidden dir: ~/.local and ~/.config
pankso@6 138 for dir in local config; do
pankso@6 139 mv files/${dir} files/.${dir}
pankso@6 140 done
pankso@6 141
pankso@6 142 # Add $build_date
pankso@12 143 echo "build_date=\"$(date "+%Y-%m-%d %H:%M")\"" >> ${receip}
pankso@6 144
pankso@6 145 gettext "Creating compressed archive..."
pankso@6 146 find files | cpio -o -H newc --quiet | lzma e files.lzma -si
pankso@6 147 rm -rf files
pankso@6 148 find . -print | cpio -o -H newc --quiet > ${cooked}/${supfile}
pankso@6 149 status
pankso@6 150
pankso@6 151 size="$(du -sh $cooked/$supfile | cut -d " " -f 1)"
pankso@6 152 echo "$(gettext 'Packages:') $(colorize 33 $supfile) ($size)"
pankso@12 153 sed -i "/^build_date=/"d ${receip}
pankso@6 154 rm -rf ${cache} && newline ;;
pankso@6 155
pankso@6 156 -e|extract)
pankso@6 157 # Extract package.sup to current dir
pankso@6 158 pkg="$2"
pankso@6 159
pankso@6 160 # Sanity check
pankso@6 161 if [ ! "$pkg" ]; then
pankso@6 162 gettext "Missing package in argument:"
pankso@6 163 colorize 35 " sup extract [package.sup]" && exit 1
pankso@6 164 fi
pankso@6 165 if [ ! -f "$pkg" ]; then
pankso@6 166 gettext "Can't find package file:"; colorize 35 " $pkg" && exit 1
pankso@6 167 fi
pankso@6 168
pankso@6 169 newline
pankso@6 170 gettext "Extract package:"; colorize 36 " $(basename $pkg)"
pankso@6 171 separator
pankso@6 172
pankso@6 173 extract_sup "$pkg"
pankso@6 174
pankso@6 175 echo "$(gettext 'Packages:') $(colorize 33 $pkg) ($size)"
pankso@6 176 newline ;;
pankso@6 177
pankso@6 178 -i|install)
pankso@6 179 # Download/extract run install() in $cache/install
pankso@6 180 pkg="$2"
pankso@6 181
pankso@6 182 if [ ! "$pkg" ]; then
pankso@6 183 gettext "Missing package in argument:"
pankso@6 184 boldify " sup install [name|pkg.sup]" && exit 1
pankso@6 185 fi
pankso@6 186
pankso@6 187 # Sup pkg in current dir
pankso@6 188 if [ -f "$pkg" ]; then
pankso@6 189 install_sup "$pkg" && exit 0
pankso@6 190 fi
pankso@6 191
pankso@6 192 # Sup cooked
pankso@6 193 if [ -f "$cooked/$pkg" ]; then
pankso@6 194 install_sup "$cooked/$pkg" && exit 0
pankso@6 195 fi
pankso@6 196
pankso@6 197 gettext "Can't find sup package:"; colorize 31 " $pkg" ;;
pankso@6 198
pankso@6 199 -l|list)
pankso@6 200 installed_nb=$(ls ${installed} | wc -l)
pankso@6 201 newline
pankso@6 202 echo -n "$(colorize 36 $(gettext 'Installed sup packages:'))"
pankso@6 203 boldify " $installed_nb"
pankso@6 204 separator
pankso@6 205 for pkg in $(ls ${installed}); do
pankso@12 206 . ${wok}/${pkg}/receip
pankso@6 207 echo "$pkg $(indent 26 $VERSION) $(indent 42 $MAINTAINER)"
pankso@6 208 done
pankso@6 209 if [ "$installed_nb" == 0 ]; then
pankso@6 210 gettext "No sup packages installed"; echo
pankso@6 211 fi
pankso@6 212 newline
pankso@6 213 if [ -d "$wok" ]; then
pankso@6 214 echo -n "$(colorize 35 $(gettext 'Sup packages in your wok:'))"
pankso@6 215 boldify " $(ls ${wok} | wc -l)"
pankso@6 216 separator
pankso@6 217 for pkg in $(ls ${wok}); do
pankso@12 218 . ${wok}/${pkg}/receip
pankso@6 219 echo "$pkg $(indent 26 $VERSION) $(indent 42 $MAINTAINER)"
pankso@6 220 done
pankso@6 221 newline
pankso@6 222 fi ;;
pankso@6 223
pankso@6 224 ""|-h|help) help ;;
pankso@6 225
pankso@6 226 *)
pankso@6 227 # Display pkg info if installed
pankso@6 228 pkg="$1"
pankso@12 229 if [ -f "$installed/$pkg/receip" ]; then
pankso@12 230 . ${installed}/${pkg}/receip
pankso@6 231 newline
pankso@6 232 gettext "Installed package:"; colorize 32 " $PACKAGE $VERSION"
pankso@6 233 separator
pankso@6 234 echo "Short desc: $SHORT_DESC"
pankso@6 235 echo ""
pankso@6 236 boldify "Installed files size: $sup_size"
pankso@6 237 #
pankso@6 238 cat ${installed}/${pkg}/files.list
pankso@6 239 newline
pankso@6 240 else
pankso@6 241 gettext "Can't find installed package:"; colorize 31 " $pkg"
pankso@6 242 fi ;;
pankso@6 243
pankso@6 244 esac && exit 0