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 |