spk annotate spk @ rev 143
Add desktop files for spk-dialog and spk.png
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Sun Apr 06 22:29:47 2014 +0200 (2014-04-06) |
parents | 4f34d6addbf3 |
children | a8e93994f7b5 |
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@140 | 16 VERSION=1.3 |
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 |
pankso@67 | 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)) |
pankso@58 | 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)) |
pankso@19 | 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)) |
pankso@20 | 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 |