tazpkg rev 263
Add tazpkg link
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Mon May 25 17:31:35 2009 +0200 (2009-05-25) |
parents | a041e442f730 |
children | f91e0e647f54 |
files | tazpkg |
line diff
1.1 --- a/tazpkg Mon May 25 16:47:46 2009 +0200 1.2 +++ b/tazpkg Mon May 25 17:31:35 2009 +0200 1.3 @@ -121,6 +121,7 @@ 1.4 depends Display dependencies tree. 1.5 rdepends Display reverse dependencies tree. 1.6 convert convert a debian package to a slitaz package (.tazpkg) 1.7 + link link a package from another slitaz installation 1.8 setup-mirror Change the mirror url configuration. 1.9 list-undigest List undigest mirrors. 1.10 remove-undigest Remove an undigest mirror. 1.11 @@ -898,7 +899,7 @@ 1.12 convert_deb() 1.13 { 1.14 mkdir -p $TMP_DIR 1.15 - dpkg-deb -e $1 $TMP_DIR 1.16 + dpkg-deb -e $PACKAGE_FILE $TMP_DIR 1.17 package=$(grep '^ *Package' $TMP_DIR/control) 1.18 package=$(echo ${package##*:}) 1.19 version=$(grep '^ *Version' $TMP_DIR/control) 1.20 @@ -907,11 +908,11 @@ 1.21 descrip=$(echo ${descrip##*:}) 1.22 file="$package-$version" 1.23 mkdir -p $TMP_DIR/$file/fs/ 1.24 - dpkg-deb -x $1 $TMP_DIR/$file/fs 1.25 + dpkg-deb -x $PACKAGE_FILE $TMP_DIR/$file/fs 1.26 cd $TMP_DIR 1.27 cat > $file/receipt <<EOT 1.28 # SliTaz package receipt. 1.29 -# generated by tazpkg from debian package $1 1.30 +# generated by tazpkg from debian package $(basename $PACKAGE_FILE) 1.31 PACKAGE="$package" 1.32 VERSION="$version" 1.33 CATEGORY="misc" 1.34 @@ -2224,13 +2225,41 @@ 1.35 ;; 1.36 convert) 1.37 # convert misc package format to .tazpkg 1.38 - case "$2" in 1.39 + check_for_package_file 1.40 + case "$PACKAGE_FILE" in 1.41 *.deb|*.udeb) 1.42 - convert_deb $2;; 1.43 + convert_deb;; 1.44 *) 1.45 echo "Unsupported format";; 1.46 esac 1.47 ;; 1.48 + link) 1.49 + # link a package from another slitaz installation 1.50 + PACKAGE=$2 1.51 + if [ ! -d "$TARGET_DIR" -o \ 1.52 + ! -d "$TARGET_DIR$INSTALLED/$PACKAGE" ]; then 1.53 + cat <<EOT 1.54 +usage: tazpkg link package_name slitaz_root 1.55 +example: 'tazpkg link openoffice /mnt' will heat less than 100k in 1.56 + your ram running system. 1.57 +EOT 1.58 + exit 1 1.59 + fi 1.60 + if [ -e "$INSTALLED/$PACKAGE" ]; then 1.61 + echo "$PACKAGE is already installed." 1.62 + exit 1 1.63 + fi 1.64 + ln -s $TARGET_DIR$INSTALLED/$PACKAGE $INSTALLED 1.65 + while read path; do 1.66 + [ -e $path ] && continue 1.67 + while true; do 1.68 + dir=$(dirname $path) 1.69 + [ -e $dir ] && break 1.70 + path=$dir 1.71 + done 1.72 + ln -s $TARGET_DIR$path $dir 1.73 + done < $INSTALLED/$PACKAGE/files.list 1.74 + ;; 1.75 usage|*) 1.76 # Print a short help or give usage for an unknown or empty command. 1.77 #