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 |