diff --git a/bin/mpsd b/bin/mpsd index 7758ea801..c6c0d429c 100755 --- a/bin/mpsd +++ b/bin/mpsd @@ -11,6 +11,9 @@ E_FOOTPRINT=7 # footprint check failure E_BUILD=8 # error while running 'derle()' E_INSTALL=9 # paket kurulum hatası (mps -k) +_arsiv_gerekli="arşiv gerekli" +_konum_gerekli="konum gerekli" + _gnuwget=$(readlink -f `which wget` | grep "busybox") if [ "${_gnuwget}x" == "x" ];then wget_sertifika_ayar="--no-check-certificate" @@ -20,6 +23,49 @@ else wget_retry="" fi +_tar="bsdtar" +_gnutar=$(tar --version | grep "GNU tar") + +#if [ $? -eq 0 ];then +if [ "${_GNUTAR}" = "evet" ];then + # gnu tar kullanılacak + _tar="tar" +# busybox tar değerlendirilecek. +#else + # bsdtar kullanılacak +fi + +hata_olustu(){ + local _hata _mesaj + [ -z $1 ] && exit 1 + _hata=$1 + case $_hata in + "_arsiv_gerekli") + _mesaj="$_arsiv_gerekli" + ;; + "_konum_gerekli") + _mesaj="$_konum_gerekli" + ;; + "_paket_adi_gerekli") + _mesaj="$_paket_adi_gerekli" + ;; + "_talimatsiz_dizin") + _mesaj="$_talimatsiz_dizin" + ;; + "_talimat_bulunamadi") + _mesaj="$_talimat_bulunamadi" + ;; + "_yerel_paket_yok") + _mesaj="$_yerel_paket_yok" + ;; + *) + _mesaj="böyle bir hata yok" + ;; + esac + echo ${_mesaj} + exit 1 +} + info() { echo "=======> $1" } @@ -270,25 +316,43 @@ remove_source() { fi done } + +_disari_cikar() { + local _arsiv _yer _komut + [ $1 ] && _arsiv=$1 || hata_olustu "_arsiv_gerekli" + [ $2 ] && _yer=$2 || hata_olustu "_konum_gerekli" + if [ ${_tar} = "tar" ];then + echo "gnu tar ile dışarı çıkarılacak" + _komut="tar xf ${_arsiv} -C ${_yer}" + elif [ ${_tar} = "bsdtar" ];then + _komut="bsdtar -p -o -C ${_yer} -xf ${_arsiv}" + else + echo "farklı tar " + fi + echo ${_komut} + ${_komut} +} unpack_source() { local FILE LOCAL_FILENAME COMMAND - + for FILE in ${kaynak[@]}; do LOCAL_FILENAME=`get_filename $FILE` case $LOCAL_FILENAME in *.tar|*.tar.gz|*.tar.Z|*.tgz|*.lz|*.tar.bz2|*.tbz2|*.tar.xz|*.txz|*.tar.lzma|*.zip|*.rpm) if [ "$PKGMK_IGNORE_UNPACK" != "evet" ];then - COMMAND="bsdtar -p -o -C $SRC -xf $LOCAL_FILENAME" + #COMMAND="bsdtar -p -o -C $SRC -xf $LOCAL_FILENAME" + _disari_cikar $LOCAL_FILENAME $SRC else COMMAND="cp $LOCAL_FILENAME $SRC" fi ;; *) COMMAND="cp $LOCAL_FILENAME $SRC" ;; esac - - echo "$COMMAND" - - $COMMAND + + if [ ! -z "$COMMAND" ];then + echo "$COMMAND" + $COMMAND + fi if [ $? != 0 ]; then if [ "$PKGMK_KEEP_WORK" = "yok" ]; then @@ -299,6 +363,7 @@ unpack_source() { fi done } + get_package_list() { local ARCH FILE i i=0