spk annotate spk @ rev 131

Tiny edits
author Paul Issott <paul@slitaz.org>
date Mon Mar 03 16:06:46 2014 +0000 (2014-03-03)
parents ee5a53b16e51
children 4f34d6addbf3
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
erjo@124 16 VERSION=1.0
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")
pankso@19 31
pankso@19 32 $(boldify $(gettext "Options:"))
pankso@20 33 --add $(gettext "Install packages if mirrored")
pankso@20 34 --rm $(gettext "Remove installed packages")
pankso@67 35 --get $(gettext "Download packages specified on cmdline")
pankso@20 36 --block $(gettext "Add packages to the blocked list")
pankso@20 37 --unblock $(gettext "Remove packages from the blocked list")
pankso@66 38 --log $(gettext "Show package install and upgrade log")
pankso@67 39 --cache $(gettext "Used with --get to download in cache")
pankso@67 40 --forced $(gettext "Force packages reinstall or download")
pankso@36 41 --root= $(gettext "Set the root file system path")
mojo@79 42 --debug $(gettext "Display some useful debug information")
pankso@19 43
pankso@19 44 $(boldify $(gettext "Examples:"))
pankso@19 45 $name package1 package2 packageN
pankso@20 46 $name package package2 --block
pankso@19 47
pankso@19 48 EOT
pankso@19 49 exit 0
pankso@19 50 }
pankso@19 51
pankso@19 52 #
pankso@19 53 # Commands and exit
pankso@19 54 #
pankso@19 55
pankso@19 56 case "$1" in
pankso@19 57 ""|*usage|*help) usage ;;
pankso@19 58 info)
pankso@36 59 cache="$(du -sh $CACHE_DIR | awk '{print $1 " " $2}')"
pankso@60 60 extra=$(ls $extradb | wc -l)
pankso@19 61 newline
pankso@59 62 boldify "Spk info"
pankso@19 63 separator
pankso@60 64 gettext "Architecture :"; echo " $SLITAZ_ARCH"
pankso@60 65 gettext "Database :"; echo " $installed"
pankso@60 66 gettext "Cache info :"; echo " $cache"
pankso@60 67 gettext "Mirror URL :"; echo " $(cat $mirrorurl)"
pankso@60 68 gettext "Extra mirrors :"; echo " $extra"
pankso@19 69 count_installed
pankso@19 70 count_mirrored
meshca@99 71 separator && newline
meshca@99 72 exit 0 ;;
pankso@19 73 activity)
pankso@58 74 # --lines=NB
pankso@58 75 : ${lines=18}
pankso@19 76 newline
pankso@19 77 boldify "Spk Activity"
pankso@19 78 separator
pankso@58 79 cat $activity | tail -n $lines
pankso@19 80 separator && newline
pankso@19 81 exit 0 ;;
pankso@67 82 clean)
pankso@67 83 newline
pankso@67 84 boldify "Spk Clean"
pankso@67 85 separator
pankso@67 86 size=$(du -sh $CACHE_DIR | awk '{print $1}')
pankso@67 87 gettext "Cleaning cache:"; echo -n " $CACHE_DIR ($size)"
pankso@67 88 rm -rf $CACHE_DIR/* && status
pankso@67 89 gettext "Cleaning tmp :"; echo -n " $(dirname $tmpdir)"
pankso@67 90 rm -rf $(dirname $tmpdir) && status
pankso@67 91 separator && newline
pankso@67 92 exit 0 ;;
pankso@19 93 esac
pankso@19 94
pankso@19 95 #
pankso@19 96 # Handle packages: spk package1 ... packageN
pankso@19 97 #
pankso@19 98
pankso@67 99 #debug "cmdline: $@"
pankso@19 100 count=0
pankso@19 101
pankso@19 102 for pkg in $@
pankso@19 103 do
pankso@67 104 # Handle general: --options
pankso@67 105 case " $@ " in
pankso@67 106 *\ --get\ *)
pankso@67 107 # We want: package-version.tazpkg
pankso@67 108 package_full=$(full_package $pkg)
pankso@67 109 mirrored_pkg $pkg
pankso@67 110 [ "$mirrored" ] || continue
pankso@67 111 [ "$count" == 0 ] && newline
pankso@67 112 count=$(($count + 1))
pankso@67 113 download $package_full $mirror
pankso@68 114 unset_mirrored
pankso@127 115 if [ ! "$cache" ]; then
pankso@127 116 gettext "Moving package to current directory..."
pankso@127 117 mv -f "$CACHE_DIR/$package_full" .
pankso@127 118 status
pankso@127 119 fi
pankso@67 120 newline && continue ;;
pankso@67 121 esac
pankso@19 122 # Installed ?
pankso@19 123 if [ -d "$installed/$pkg" ]; then
pankso@20 124 # Handle: --options
pankso@20 125 case " $@ " in
pankso@20 126 *\ --block\ *)
pankso@20 127 check_root
pankso@20 128 [ -d "$installed/$pkg" ] || continue
pankso@20 129 if grep -qs ^${pkg}$ $blocked; then
meshca@70 130 echo $(boldify $pkg) $(gettext "is already blocked")
pankso@20 131 else
pankso@20 132 gettext "Blocking package:"; echo -n " $pkg"
pankso@20 133 echo $pkg >> $blocked
pankso@20 134 log "Blocked package: $pkg" && status
meshca@70 135 fi
meshca@70 136 continue ;;
pankso@20 137 *\ --unblock\ *)
pankso@20 138 check_root
pankso@20 139 [ -d "$installed/$pkg" ] || continue
pankso@20 140 if grep -qs ^${pkg}$ $blocked; then
pankso@20 141 gettext "Unblocking package:"; echo -n " $pkg"
pankso@20 142 sed -i /"^${pkg}$"/d $blocked
pankso@20 143 log "Unblocked package: $pkg" && status
pankso@20 144 else
meshca@70 145 echo $(boldify $pkg) $(gettext "is not blocked")
meshca@70 146 fi
meshca@70 147 continue ;;
pankso@20 148 *\ --rm\ *)
meshca@70 149 is_package_installed $pkg || continue
pankso@20 150 spk-rm $pkg --count=$count
pankso@20 151 count=$(($count + 1))
pankso@20 152 continue ;;
pankso@58 153 *\ --log\ *)
paul@98 154 # Display package's log
pankso@58 155 if [ -f "$logdir/$pkg/install.log" ]; then
pankso@58 156 count=$(($count + 1))
pankso@58 157 [ "$count" == "1" ] && newline
meshca@69 158 colorize 36 $(gettext "Install log for:"; echo " $pkg")
pankso@58 159 separator
pankso@58 160 cat $logdir/$pkg/install.log
pankso@58 161 else
pankso@58 162 gettext "Any install log for:"; boldify " $pkg"
pankso@58 163 fi
pankso@58 164 if [ -f "$logdir/$pkg/up.log" ]; then
meshca@69 165 colorize 36 $(gettext "Upgrade log for:"; echo " $pkg")
pankso@58 166 separator
pankso@58 167 cat $logdir/$pkg/up.log
pankso@58 168 else
meshca@69 169 colorize 36 $(gettext "Any upgrade log for:"; echo " $pkg")
pankso@58 170 newline
meshca@70 171 fi
meshca@70 172 continue ;;
pankso@78 173 *\ --extract\ *)
pankso@78 174 newline
pankso@78 175 echo $(boldify $(gettext "Extracting:")) $pkg
pankso@78 176 separator ;;
slaxemulator@108 177 *\ --forced\ *)
slaxemulator@108 178 spk-add --forced $pkg --count=$count
slaxemulator@108 179 count=$(($count + 1))
slaxemulator@108 180 continue ;;
pankso@20 181 esac
pankso@20 182 count=$(($count + 1))
pankso@19 183 [ "$count" == 1 ] && newline
pankso@19 184 unset_receipt
meshca@104 185 source_receipt $installed/$pkg/receipt
meshca@70 186 boldify $(gettext "Package") $pkg
pankso@19 187 separator
meshca@69 188 gettext "Status :"; colorize 32 " installed"
pankso@19 189 receipt_info
pankso@19 190 separator && newline
pankso@19 191 continue
pankso@19 192 fi
pankso@19 193 # Mirrored ?
pankso@67 194 mirrored_pkg $pkg
pankso@19 195 if [ "$mirrored" ]; then
pankso@67 196 # Handle mirrored: --options
pankso@20 197 case " $@ " in
pankso@20 198 *\ --add\ *)
pankso@58 199 spk-add $pkg --count=$count
pankso@58 200 count=$(($count + 1))
pankso@58 201 continue ;;
pankso@20 202 esac
pankso@21 203 count=$(($count + 1))
pankso@20 204 [ "$count" == 1 ] && newline
meshca@70 205 boldify $(gettext "Package") $pkg
pankso@20 206 separator
meshca@69 207 gettext "Status :"; colorize 31 " not installed"
pankso@85 208 gettext "Version :"; echo "$mirrored" | cut -d '|' -f 2
pankso@85 209 gettext "Short desc :"; echo "$mirrored" | cut -d '|' -f 3
pankso@85 210 gettext "Category :"; echo "$mirrored" | cut -d '|' -f 4
pankso@20 211 separator && newline
pankso@19 212 continue
pankso@19 213 fi
pankso@67 214 unset mirrored
mojo@86 215 # Skip options such as --confirm or unknown package
pankso@19 216 case "$pkg" in
pankso@19 217 --*) continue ;;
mojo@86 218 *) gettext "WARNING: Unknown package"; echo ": $pkg"
pankso@19 219 esac
pankso@19 220 done
pankso@19 221 exit 0