tazpkg diff modules/link @ rev 955
modules/search: allow search file with dash at start: tazpkg -sf "-spi"
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Fri Dec 22 00:02:54 2017 +0200 (2017-12-22) |
parents | |
children |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/modules/link Fri Dec 22 00:02:54 2017 +0200 1.3 @@ -0,0 +1,68 @@ 1.4 +#!/bin/sh 1.5 +# TazPkg - Tiny autonomous zone packages manager, hg.slitaz.org/tazpkg 1.6 +# link - TazPkg module 1.7 +# Link a package from another SliTaz installation 1.8 + 1.9 + 1.10 +# Connect function libraries 1.11 +. /lib/libtaz.sh 1.12 + 1.13 +# Get TazPkg working environment 1.14 +. @@MODULES@@/getenv 1.15 + 1.16 + 1.17 + 1.18 + 1.19 +PACKAGE="$2" 1.20 +TARGET_DIR="$3" 1.21 + 1.22 +if [ -e "$INSTALLED/$PACKAGE" ]; then 1.23 + _ 'Package "%s" is already installed.' "$PACKAGE" 1.24 + exit 1 1.25 +fi 1.26 + 1.27 +ln -s "$TARGET_DIR$INSTALLED/$PACKAGE" $INSTALLED 1.28 +DEPENDS="$(. "$INSTALLED/$PACKAGE/receipt"; echo $DEPENDS)" 1.29 +MISSING='' 1.30 + 1.31 +for i in $DEPENDS; do 1.32 + [ -e $INSTALLED/$i ] && continue 1.33 + MISSING="$MISSING$i " 1.34 + _ 'Missing: %s' $i 1.35 +done 1.36 + 1.37 +if [ -n "$MISSING" ]; then 1.38 + newline 1.39 + confirm "$(_ 'Link all missing dependencies? (y/N)')" 1.40 + answer=$? 1.41 + newline 1.42 + if [ "$answer" -eq 0 ]; then 1.43 + for i in $MISSING; do 1.44 + tazpkg link $i $TARGET_DIR 1.45 + done 1.46 + else 1.47 + newline 1.48 + _ 'Leaving dependencies unresolved for package "%s"' "$PACKAGE" 1.49 + _ 'The package is installed but probably will not work.' 1.50 + newline 1.51 + fi 1.52 +fi 1.53 + 1.54 +. "$INSTALLED/$PACKAGE/receipt" 1.55 +if grep -q ^pre_install "$INSTALLED/$PACKAGE/receipt"; then 1.56 + pre_install 1.57 +fi 1.58 + 1.59 +while read path; do 1.60 + [ -e "$path" ] && continue 1.61 + while true; do 1.62 + dir="$(dirname "$path")" 1.63 + [ -e "$dir" ] && break 1.64 + path="$dir" 1.65 + done 1.66 + ln -s "$TARGET_DIR$path" "$dir" 1.67 +done < "$INSTALLED/$PACKAGE/files.list" 1.68 + 1.69 +if grep -q ^post_install "$INSTALLED/$PACKAGE/receipt"; then 1.70 + post_install 1.71 +fi