spk annotate spk @ rev 161

Remove ashism ==
author Pascal Bellard <pascal.bellard@slitaz.org>
date Tue Feb 26 12:27:19 2019 +0100 (2019-02-26)
parents a8e93994f7b5
children
rev   line source
pankso@19 1 #!/bin/sh
pankso@19 2 #
pankso@19 3 # Spk - The SliTaz Packages toolset. Read the README before adding or
paul@131 4 # modifying any code in spk!
pankso@19 5 #
pankso@19 6 # Copyright (C) SliTaz GNU/Linux - BSD License
pankso@19 7 # Author: See AUTHORS files
pankso@19 8 #
pankso@68 9 . /usr/lib/slitaz/libspk.sh
pankso@68 10 #. lib/libspk.sh
pankso@19 11
pankso@19 12 #
pankso@19 13 # Functions
pankso@19 14 #
pankso@19 15
pankso@149 16 VERSION=1.4
erjo@124 17
pankso@19 18 # Help and usage
pankso@19 19 usage() {
pankso@19 20 name=$(basename $0)
pankso@19 21 cat << EOT
pankso@19 22
pankso@19 23 $(boldify $(gettext "Usage:")) $name [packages|--options]
pankso@19 24
erjo@124 25 $(gettext "SliTaz Packages toolset v$VERSION")
pankso@19 26
pankso@19 27 $(boldify $(gettext "Commands:"))
pankso@20 28 info $(gettext "Display path, mirror and other stats")
pankso@20 29 activity $(gettext "Display packages activities")
pankso@67 30 clean $(gettext "Clean cache and temporary files")
paul@141 31 reconf $(gettext "Reconfigure installed packages")
pankso@19 32
pankso@19 33 $(boldify $(gettext "Options:"))
pankso@20 34 --add $(gettext "Install packages if mirrored")
pankso@20 35 --rm $(gettext "Remove installed packages")
pankso@67 36 --get $(gettext "Download packages specified on cmdline")
pankso@20 37 --block $(gettext "Add packages to the blocked list")
pankso@20 38 --unblock $(gettext "Remove packages from the blocked list")
pankso@66 39 --log $(gettext "Show package install and upgrade log")
pankso@67 40 --cache $(gettext "Used with --get to download in cache")
pankso@67 41 --forced $(gettext "Force packages reinstall or download")
pankso@36 42 --root= $(gettext "Set the root file system path")
mojo@79 43 --debug $(gettext "Display some useful debug information")
pankso@19 44
pankso@19 45 $(boldify $(gettext "Examples:"))
pankso@19 46 $name package1 package2 packageN
pankso@20 47 $name package package2 --block
pankso@19 48
pankso@19 49 EOT
pankso@19 50 exit 0
pankso@19 51 }
pankso@19 52
pankso@19 53 #
pankso@19 54 # Commands and exit
pankso@19 55 #
pankso@19 56
pankso@19 57 case "$1" in
pankso@19 58 ""|*usage|*help) usage ;;
pankso@19 59 info)
pankso@36 60 cache="$(du -sh $CACHE_DIR | awk '{print $1 " " $2}')"
pankso@60 61 extra=$(ls $extradb | wc -l)
pankso@19 62 newline
pankso@59 63 boldify "Spk info"
pankso@19 64 separator
pankso@60 65 gettext "Architecture :"; echo " $SLITAZ_ARCH"
pankso@60 66 gettext "Database :"; echo " $installed"
pankso@60 67 gettext "Cache info :"; echo " $cache"
pankso@60 68 gettext "Mirror URL :"; echo " $(cat $mirrorurl)"
pankso@60 69 gettext "Extra mirrors :"; echo " $extra"
pankso@19 70 count_installed
pankso@19 71 count_mirrored
meshca@99 72 separator && newline
meshca@99 73 exit 0 ;;
pankso@19 74 activity)
pankso@58 75 # --lines=NB
pankso@58 76 : ${lines=18}
pankso@19 77 newline
pankso@19 78 boldify "Spk Activity"
pankso@19 79 separator
pankso@58 80 cat $activity | tail -n $lines
pankso@19 81 separator && newline
pankso@19 82 exit 0 ;;
pankso@67 83 clean)
pankso@67 84 newline
pankso@67 85 boldify "Spk Clean"
pankso@67 86 separator
pankso@67 87 size=$(du -sh $CACHE_DIR | awk '{print $1}')
pankso@67 88 gettext "Cleaning cache:"; echo -n " $CACHE_DIR ($size)"
pankso@67 89 rm -rf $CACHE_DIR/* && status
pankso@67 90 gettext "Cleaning tmp :"; echo -n " $(dirname $tmpdir)"
pankso@67 91 rm -rf $(dirname $tmpdir) && status
pankso@67 92 separator && newline
pankso@67 93 exit 0 ;;
pankso@140 94 reconf|reconfigure)
pankso@140 95 packages="$@"
pankso@140 96 [ "$all" ] && packages=$(ls $installed)
pankso@140 97 for pkg in ${packages}
pankso@140 98 do
pankso@140 99 receipt="$installed/$pkg/receipt"
pankso@140 100 [ ! -f "$receipt" ] && continue
pankso@140 101 if grep -q ^post_install ${receipt}; then
pankso@140 102 gettext "Configuring packages:"; echo " $pkg"
pankso@140 103 . ${receipt}
pankso@140 104 post_install
pankso@140 105 fi
pankso@140 106 done && exit 0 ;;
pankso@19 107 esac
pankso@19 108
pankso@19 109 #
pankso@19 110 # Handle packages: spk package1 ... packageN
pankso@19 111 #
pankso@19 112
pankso@67 113 #debug "cmdline: $@"
pankso@19 114 count=0
pankso@19 115
pankso@19 116 for pkg in $@
pankso@19 117 do
pankso@67 118 # Handle general: --options
pankso@67 119 case " $@ " in
pankso@67 120 *\ --get\ *)
pankso@67 121 # We want: package-version.tazpkg
pankso@67 122 package_full=$(full_package $pkg)
pankso@67 123 mirrored_pkg $pkg
pankso@67 124 [ "$mirrored" ] || continue
pascal@161 125 [ "$count" = 0 ] && newline
pankso@67 126 count=$(($count + 1))
pankso@67 127 download $package_full $mirror
pankso@68 128 unset_mirrored
pankso@127 129 if [ ! "$cache" ]; then
pankso@127 130 gettext "Moving package to current directory..."
pankso@127 131 mv -f "$CACHE_DIR/$package_full" .
pankso@127 132 status
pankso@127 133 fi
pankso@67 134 newline && continue ;;
pankso@67 135 esac
pankso@19 136 # Installed ?
pankso@19 137 if [ -d "$installed/$pkg" ]; then
pankso@20 138 # Handle: --options
pankso@20 139 case " $@ " in
pankso@20 140 *\ --block\ *)
pankso@20 141 check_root
pankso@20 142 [ -d "$installed/$pkg" ] || continue
pankso@20 143 if grep -qs ^${pkg}$ $blocked; then
meshca@70 144 echo $(boldify $pkg) $(gettext "is already blocked")
pankso@20 145 else
pankso@20 146 gettext "Blocking package:"; echo -n " $pkg"
pankso@20 147 echo $pkg >> $blocked
pankso@20 148 log "Blocked package: $pkg" && status
meshca@70 149 fi
meshca@70 150 continue ;;
pankso@20 151 *\ --unblock\ *)
pankso@20 152 check_root
pankso@20 153 [ -d "$installed/$pkg" ] || continue
pankso@20 154 if grep -qs ^${pkg}$ $blocked; then
pankso@20 155 gettext "Unblocking package:"; echo -n " $pkg"
pankso@20 156 sed -i /"^${pkg}$"/d $blocked
pankso@20 157 log "Unblocked package: $pkg" && status
pankso@20 158 else
meshca@70 159 echo $(boldify $pkg) $(gettext "is not blocked")
meshca@70 160 fi
meshca@70 161 continue ;;
pankso@20 162 *\ --rm\ *)
meshca@70 163 is_package_installed $pkg || continue
pankso@20 164 spk-rm $pkg --count=$count
pankso@20 165 count=$(($count + 1))
pankso@20 166 continue ;;
pankso@58 167 *\ --log\ *)
paul@98 168 # Display package's log
pankso@58 169 if [ -f "$logdir/$pkg/install.log" ]; then
pankso@58 170 count=$(($count + 1))
pascal@161 171 [ "$count" = "1" ] && newline
meshca@69 172 colorize 36 $(gettext "Install log for:"; echo " $pkg")
pankso@58 173 separator
pankso@58 174 cat $logdir/$pkg/install.log
pankso@58 175 else
pankso@58 176 gettext "Any install log for:"; boldify " $pkg"
pankso@58 177 fi
pankso@58 178 if [ -f "$logdir/$pkg/up.log" ]; then
meshca@69 179 colorize 36 $(gettext "Upgrade log for:"; echo " $pkg")
pankso@58 180 separator
pankso@58 181 cat $logdir/$pkg/up.log
pankso@58 182 else
meshca@69 183 colorize 36 $(gettext "Any upgrade log for:"; echo " $pkg")
pankso@58 184 newline
meshca@70 185 fi
meshca@70 186 continue ;;
pankso@78 187 *\ --extract\ *)
pankso@78 188 newline
pankso@78 189 echo $(boldify $(gettext "Extracting:")) $pkg
pankso@78 190 separator ;;
slaxemulator@108 191 *\ --forced\ *)
slaxemulator@108 192 spk-add --forced $pkg --count=$count
slaxemulator@108 193 count=$(($count + 1))
slaxemulator@108 194 continue ;;
pankso@20 195 esac
pankso@20 196 count=$(($count + 1))
pascal@161 197 [ "$count" = 1 ] && newline
pankso@19 198 unset_receipt
meshca@104 199 source_receipt $installed/$pkg/receipt
meshca@70 200 boldify $(gettext "Package") $pkg
pankso@19 201 separator
meshca@69 202 gettext "Status :"; colorize 32 " installed"
pankso@19 203 receipt_info
pankso@19 204 separator && newline
pankso@19 205 continue
pankso@19 206 fi
pankso@19 207 # Mirrored ?
pankso@67 208 mirrored_pkg $pkg
pankso@19 209 if [ "$mirrored" ]; then
pankso@67 210 # Handle mirrored: --options
pankso@20 211 case " $@ " in
pankso@20 212 *\ --add\ *)
pankso@58 213 spk-add $pkg --count=$count
pankso@58 214 count=$(($count + 1))
pankso@58 215 continue ;;
pankso@20 216 esac
pankso@21 217 count=$(($count + 1))
pascal@161 218 [ "$count" = 1 ] && newline
meshca@70 219 boldify $(gettext "Package") $pkg
pankso@20 220 separator
meshca@69 221 gettext "Status :"; colorize 31 " not installed"
pankso@85 222 gettext "Version :"; echo "$mirrored" | cut -d '|' -f 2
pankso@85 223 gettext "Short desc :"; echo "$mirrored" | cut -d '|' -f 3
pankso@85 224 gettext "Category :"; echo "$mirrored" | cut -d '|' -f 4
pankso@20 225 separator && newline
pankso@19 226 continue
pankso@19 227 fi
pankso@67 228 unset mirrored
mojo@86 229 # Skip options such as --confirm or unknown package
pankso@19 230 case "$pkg" in
pankso@19 231 --*) continue ;;
mojo@86 232 *) gettext "WARNING: Unknown package"; echo ": $pkg"
pankso@19 233 esac
pankso@19 234 done
pankso@19 235 exit 0