From a3a0118d518031a039ab24624228d7f8bac7e830 Mon Sep 17 00:00:00 2001 From: milisbir Date: Thu, 14 Dec 2017 07:40:19 +0200 Subject: [PATCH] mps-renksiz --- bin/mps | 153 +++-- bin/{mps1 => mps_yedek} | 1375 +++++++++++++++++++++++++-------------- 2 files changed, 1004 insertions(+), 524 deletions(-) rename bin/{mps1 => mps_yedek} (62%) diff --git a/bin/mps b/bin/mps index 1cf745974..90be9c9cb 100755 --- a/bin/mps +++ b/bin/mps @@ -82,9 +82,24 @@ _zaten="zaten" icerik_ekle(){ if [ -f "$1" ];then + local cikti _yaz _yaz_tm _yaz_uyari + if [ "$2" ]; then + cikti="$2" + fi + #echo "cikti: $cikti" + if [ "$cikti" == "--renkli" ];then + _yaz="ryaz 32" + _yaz_tm="ryaz 34" + _yaz_uyari="ryaz 31" + else + cikti="--normal" + _yaz="echo" + _yaz_tm="echo" + _yaz_uyari="echo" + fi paketad=`echo "$1" | cut -d'#' -f1` paketad=`basename $paketad` - ryaz 34 $paketad" paketi kuruluyor-> $kokdizin" + $_yaz_tm "$paketad paketi kuruluyor-> $kokdizin" if [ -f /usr/bin/bsdtar ];then bsdtar -C /tmp --extract --file=$1 .PRE 1 2> /tmp/$paketad_pre.log else @@ -135,55 +150,77 @@ icerik_ekle(){ if [ -f $kokdizin/etc/ld.so.conf ];then ldconfig -r $kokdizin fi - ryaz 34 $paketad" $_paket_kuruldu" + $_yaz_tm "$paketad $_paket_kuruldu" loglama "$paketad $_paket_kuruldu" else - ryaz 31 "icerik_ekle:paket konum parametresi boş!!!" + $_yaz_uyari "icerik_ekle:paket konum parametresi boş!!!" exit 1 fi } paket_sil(){ - local paket kkont sil_onay oto_silme + local paket kkont sil_onay oto_silme cikti _yaz _yaz_uyari _yaz_tm local _etkilenen=() paket="$1" tersbag_goster="hayir" + + cikti="--renkli" if [ "$2" ]; then - oto_silme="$2" + if [ "$2" == "--normal" ];then + cikti="--normal" + else + oto_silme="$2" + fi fi + if [ "$3" ]; then - tersbag_goster="evet" + if [ "$3" == "--normal" ];then + cikti="--normal" + else + tersbag_goster="evet" + fi fi + + if [ $cikti == "--renkli" ];then + _yaz="ryaz 32" + _yaz_tm="ryaz 34" + _yaz_uyari="ryaz 31" + else + _yaz="echo" + _yaz_tm="echo" + _yaz_uyari="echo" + fi + if [ "$tpk" = "evet" ] && [ -d "$talimatname/temel/$1" ];then - ryaz 31 "$1 temel sistem paketidir.Silinemez!!!" + $_yaz_uyari "$1 temel sistem paketidir.Silinemez!!!" hataloglama "$1 temel sistem paketidir.Silinemez!!!" else kkont=`kurulu_kontrol "$1"` if [ "$kkont" = "kurulu" ];then if [ -f "$VT/$paket/kurulan" ];then #dizin koruma - etkilenen_kurtar $1 + etkilenen_kurtar $1 $cikti cat $VT/$paket/kurulan | cut -d '>' -f2 > /tmp/$paket.sil if [ "$tersbag_goster" = "evet" ];then - ryaz 31 "ters bagimliliklar" - ryaz 31 "------------------" + $_yaz_uyari "ters bagimliliklar" + $_yaz_uyari "------------------" ters_bagimli_bilgi "$paket" - ryaz 31 "------------------" + $_yaz_uyari "------------------" fi #_etkilenen=$(silme_etkilenen_kontrol /tmp/$paket.sil $paket) #if [ -f "${_etkilenen[0]}" ];then - ryaz 31 "etkilenen dosyalar" - ryaz 31 "------------------" + $_yaz_uyari "etkilenen dosyalar" + $_yaz_uyari "------------------" silme_etkilenen_kontrol /tmp/$paket.sil $paket - ryaz 31 "------------------" + $_yaz_uyari "------------------" #fi if [ "$oto_silme" = "evet" ];then sil_onay="e" else while true; do - ryaz 34 $paket" $_paket_silinsinmi";read -p "e veya h-> " eh + $_yaz_tm $paket" $_paket_silinsinmi";read -p "e veya h-> " eh case $eh in [Ee]* ) sil_onay="e"; break;; [Hh]* ) break;; @@ -197,7 +234,7 @@ paket_sil(){ xargs rm -r -f < /tmp/$paket.sil && rm -r -f "$VT/$paket" && [ -f "$_konum/$paket.sil-kos" ] && bash "$_konum/$paket.sil-kos" - ryaz 34 $paket" $_paket_silindi" + $_yaz_tm $paket" $_paket_silindi" loglama "$paket $_paket_silindi" rm -f /tmp/$paket.sil else @@ -205,14 +242,14 @@ paket_sil(){ fi else - ryaz 31 "kritik mesaj:kurulanlar dosyası yok." + $_yaz_uyari "kritik mesaj:kurulanlar dosyası yok." hataloglama "kritik mesaj:kurulanlar dosyası yok." fi elif [ "$kkont" = "degil" ];then - ryaz 32 "$_zaten $_paket_kurulu_degil" + $_yaz "$_zaten $_paket_kurulu_degil" hataloglama "$_zaten $_paket_kurulu_degil" else - ryaz 32 "$_paket_tanimsiz" + $_yaz "$_paket_tanimsiz" hataloglama "$_paket_tanimsiz" fi fi @@ -746,6 +783,19 @@ paket_inkur_liste(){ # otomatik kontrollu kur # -kur paket_inkur_oto(){ + local cikti _yaz _yaz_uyari + cikti="--renkli" + if [ "$2" ]; then + cikti="$2" + fi + if [ $cikti == "--renkli" ];then + _yaz="ryaz 32" + _yaz_uyari="ryaz 31" + else + cikti="--normal" + _yaz="echo" + _yaz_uyari="echo" + fi local konum anakonum kurdurum derleme_listyap_kontrol #derleme_listyap "$1" | grep "bulunamadı" @@ -759,21 +809,21 @@ paket_inkur_oto(){ ekkonum="`find "$ektalimatname" -name $kpkt`" if [ -f "$anakonum/talimat" ];then if [ "`dosya_karsilastir $konum/talimat $anakonum/talimat`" = "evet" ];then - agdan_kur "$kpkt" + agdan_kur "$kpkt" "$cikti" else - ryaz 31 "$kpkt talimat eşitsizliğinden atlandı." + $_yaz_uyari "$kpkt talimat eşitsizliğinden atlandı." fi elif [ -f "$ekkonum/talimat" ];then - agdan_kur "$kpkt" + agdan_kur "$kpkt" "$cikti" else - ryaz 31 "$kpkt talimatı bulunamadı!" + $_yaz_uyari "$kpkt talimatı bulunamadı!" fi done if [ $(kurulu_kontrol $1) = "degil" ];then kurdurum="kurulu değil" elif [ $(kurulu_kontrol $1) = "kurulu" ];then kurdurum="kurulu" - ryaz 32 "\n$1 $kurdurum " + $_yaz "$1 $kurdurum" else kurdurum="$_paket_tanimsiz" fi @@ -1383,7 +1433,23 @@ log_analiz(){ } etkilenen_kurtar(){ - local dizin paket + local dizin paket cikti _yaz _yaz_uyari _yaz_tm + cikti="--renkli" + if [ "$2" ]; then + if [ "$2" == "--normal" ];then + cikti="--normal" + fi + fi + + if [ $cikti == "--renkli" ];then + _yaz="ryaz 32" + _yaz_tm="ryaz 34" + _yaz_uyari="ryaz 31" + else + _yaz="echo" + _yaz_tm="echo" + _yaz_uyari="echo" + fi paket=$1 if [ -f $VT/$paket/kurulan ];then cat $VT/$paket/kurulan | cut -d '>' -f2 > /tmp/$paket.sil @@ -1405,13 +1471,13 @@ etkilenen_kurtar(){ if [ -f /tmp/$paket.kurtar ];then mv $VT/$paket/kurulan $VT/$paket/ilk.kurulan grep -v -F -x -f "/tmp/$paket.kurtar" "/tmp/$paket.sil" > $VT/$paket/kurulan - ryaz 32 "$paket etkilenen dosyaları kurtarıldı." + $_yaz "$paket etkilenen dosyaları kurtarıldı." else - ryaz 32 "$paket etkilenen dosyası yok." + $_yaz "$paket etkilenen dosyası yok." fi rm -f /tmp/$paket.sil else - ryaz 31 "kurulan paket yok!" + $_yaz_uyari "kurulan paket yok!" hataloglama "kurulan paket yok!" fi } @@ -2226,7 +2292,18 @@ yerelden_kur(){ } agdan_kur(){ - local kontroldeg + local kontroldeg cikti _yaz _yaz_tm _yaz_uyari + if [ "$2" ]; then + cikti="$2" + fi + if [ $cikti == "--renkli" ];then + _yaz="ryaz 32" + _yaz_uyari="ryaz 31" + else + cikti="--normal" + _yaz="echo" + _yaz_uyari="echo" + fi kkont=`kurulu_kontrol "$1"` if [ "$kkont" = "degil" ] || [ "$tekrarkur" = "evet" ];then paket_indir "$1" @@ -2239,23 +2316,23 @@ agdan_kur(){ #depo/paketler altında birden fazla sürüm kontrolü yapılır,güncel olan seçilir. surumler=$(ls "$paketdepo$1#"* | wc -l) if [ $surumler = 1 ];then - icerik_ekle $(ls "$paketdepo$1#"*) + icerik_ekle $(ls "$paketdepo$1#"*) $cikti elif [ $surumler -gt 1 ];then - ryaz 31 "$1 paketinin birden fazla sürümü var!" + $_yaz_uyari "$1 paketinin birden fazla sürümü var!" kurulacak_guncel_paket=$(ls -1t "$paketdepo$1#"* | head -1) - ryaz 32 "$kurulacak_guncel_paket sürümü kuruluyor" - icerik_ekle $kurulacak_guncel_paket + $_yaz "$kurulacak_guncel_paket sürümü kuruluyor" + icerik_ekle $kurulacak_guncel_paket $cikti fi fi else - ryaz 31 "$1 indirme hatası" + $_yaz_uyari "$1 indirme hatası" fi fi elif [ "$kkont" = "kurulu" ];then #ryaz 32 "$1 paketi zaten kurulu!" printf "." else - ryaz 31 "tanımsız paket veya tekrar kurulum iptali var!" + $_yaz_uyari "tanımsız paket veya tekrar kurulum iptali var!" fi } @@ -2301,7 +2378,7 @@ ayarlar() { pip3 uninstall $pypaket exit 1 fi - paket_sil "$2" + paket_sil "$2" "$3" "$4" exit 0 ;; ### mps zorsil|-sz paketismi = ilgili paketi onaysız kaldırır. -sz|zorsil) @@ -2404,9 +2481,9 @@ ayarlar() { kokdizin="$4" tekrarkur="evet" fi - yerelden_kur "$2" + yerelden_kur "$2" "$3" else - paket_inkur_oto "$2" + paket_inkur_oto "$2" "$3" fi exit 0 ;; ### mps kaynak paketismi = ilgili paketin kaynak kodunu indirir. diff --git a/bin/mps1 b/bin/mps_yedek similarity index 62% rename from bin/mps1 rename to bin/mps_yedek index 0a0f66fd4..1cf745974 100755 --- a/bin/mps1 +++ b/bin/mps_yedek @@ -4,19 +4,20 @@ if [ -f /etc/mps.conf ];then . /etc/mps.conf fi . /root/bin/fonks.sh -versiyon="1.1 Milis Paket Sistemi" +versiyon="1.1.7 Milis Paket Sistemi" iletisim="milisarge@gmail.com" paketdepo="/depo/paketler/" if [ -z ${sunucu+:} ]; then sunucu="127.0.0.1:8000/" fi -#sunucu="http://milis.gungre.ch/packages/" -git_sunucu="https://github.com/milisarge/malfs-milis" +if [ -z ${git_sunucu+:} ]; then + git_sunucu="https://github.com/milisarge/malfs-milis" +fi ikaynak="" betikad=${0##*/} kurulum_onay="evet" -talimatname_dizin="/root/talimatname" -ana_talimatname_dizin="/sources/milis.git/talimatname" +talimatname="/root/talimatname" +anatalimatname="/sources/milis.git/talimatname" kokdizin="/" VT="/var/lib/pkg/DB" TARIHCE_DIZIN="/var/lib/pkg/tarihce" @@ -47,6 +48,38 @@ if [ -z ${sunucular+:} ]; then mv /etc/mps2.conf /etc/mps.conf fi +if [ -z ${silme_esgec+:} ]; then + declare -a silme_esgec=() +fi + + +# Türkçe Mesajlar +_paket_adi_gerekli="paket ismi eksik!" +_dizin_bulunamadi="dizin bulunamadı!" +_talimat_sayisi_fazla="talimatnameler altında birden fazla talimat mevcut!" +_talimat_bulunamadi="ilgili talimat bulunamadı!" +_dosya_yolu_bulunamadi="dosya yolu bulunamadı!" +_shasum_uyumsuzluk="shasum uyumsuzluğu tespit edildi!" +_gerekler_belirleniyor="bağımlılıkları belirleniyor." +_paket_kuruldu="paketi kuruldu." +_paket_kurulu_degil="paketi kurulu değil!" +_paket_silindi="paketi silindi." +_paket_silinsinmi="paketi kaldırılsın mı?" +_paket_tanimsiz="paketi tanımsız!" +_paket_bulunamadi="ilgili paket bulunamadı!" +_paketvt_guncelleniyor="paket veritabanı güncelleniyor." +_paket_onbellek_depoda_var="paketi önbellek depoda bulunmakta." +_paket_depoda_yok="paket depoda bulunmuyor ve gereksiz," +_siliniyor="siliniyor" +_git_guncelleniyor="git sunucudan güncelleme çekiliyor." +_git_guncel="git deposu güncel" +_git_guncellendi="git deposu güncellendi." +_yerel_esitlendi="yerele eşitleme tamam." +_yerel_esitleniyor="yerele eşitleniyor." +_devir_kontrol_iptal="devir kontrolü iptal edildi!" +_surum_kontrol_iptal="sürüm kontrolü iptal edildi!" +_zaten="zaten" + icerik_ekle(){ if [ -f "$1" ];then paketad=`echo "$1" | cut -d'#' -f1` @@ -82,11 +115,11 @@ icerik_ekle(){ if [ -d kur.$paketad/usr/share/doc ] && [ "$docsil" == "evet" ];then rm -r kur.$paketad/usr/share/doc fi - mkdir -p $kokdizin/var/lib/pkg/DB/"$paketad" && + mkdir -p $kokdizin$VT/"$paketad" && cp -v -afr kur.$paketad/* $kokdizin > kur.$paketad/kurulan - cp kur.$paketad/kurulan /tmp/ &&cat kur.$paketad/kurulan | cut -d '>' -f2 > $kokdizin/var/lib/pkg/DB/"$paketad"/kurulan && - #mv kur.$paketad/.MTREE /var/lib/pkg/DB/"$paketad"/files && - mv kur.$paketad/.META $kokdizin/var/lib/pkg/DB/"$paketad"/META && + cp kur.$paketad/kurulan /tmp/ &&cat kur.$paketad/kurulan | cut -d '>' -f2 > $kokdizin$VT/"$paketad"/kurulan && + #mv kur.$paketad/.MTREE $VT/"$paketad"/files && + mv kur.$paketad/.META $kokdizin$VT/"$paketad"/META && #kur-kos calistirilmasi if [ -f kur.$paketad/.POST ];then @@ -102,8 +135,8 @@ icerik_ekle(){ if [ -f $kokdizin/etc/ld.so.conf ];then ldconfig -r $kokdizin fi - ryaz 34 $paketad" paketi kuruldu." - loglama "$paketad paketi kuruldu." + ryaz 34 $paketad" $_paket_kuruldu" + loglama "$paketad $_paket_kuruldu" else ryaz 31 "icerik_ekle:paket konum parametresi boş!!!" exit 1 @@ -112,7 +145,8 @@ icerik_ekle(){ } paket_sil(){ - local paket kkont sil_onay oto_silme + local paket kkont sil_onay oto_silme + local _etkilenen=() paket="$1" tersbag_goster="hayir" if [ "$2" ]; then @@ -121,31 +155,35 @@ paket_sil(){ if [ "$3" ]; then tersbag_goster="evet" fi - if [ "$tpk" = "evet" ] && [ -d "$talimatname_dizin/temel/$1" ];then + if [ "$tpk" = "evet" ] && [ -d "$talimatname/temel/$1" ];then ryaz 31 "$1 temel sistem paketidir.Silinemez!!!" hataloglama "$1 temel sistem paketidir.Silinemez!!!" else kkont=`kurulu_kontrol "$1"` if [ "$kkont" = "kurulu" ];then - if [ -f "/var/lib/pkg/DB/$paket/kurulan" ];then + if [ -f "$VT/$paket/kurulan" ];then #dizin koruma etkilenen_kurtar $1 - cat /var/lib/pkg/DB/$paket/kurulan | cut -d '>' -f2 > /tmp/$paket.sil + cat $VT/$paket/kurulan | cut -d '>' -f2 > /tmp/$paket.sil if [ "$tersbag_goster" = "evet" ];then ryaz 31 "ters bagimliliklar" ryaz 31 "------------------" - ters_bagimli_kontrol "$paket" + ters_bagimli_bilgi "$paket" ryaz 31 "------------------" fi + #_etkilenen=$(silme_etkilenen_kontrol /tmp/$paket.sil $paket) + + #if [ -f "${_etkilenen[0]}" ];then ryaz 31 "etkilenen dosyalar" ryaz 31 "------------------" silme_etkilenen_kontrol /tmp/$paket.sil $paket ryaz 31 "------------------" + #fi if [ "$oto_silme" = "evet" ];then sil_onay="e" else while true; do - ryaz 34 $paket" paketi kaldırılsın mı?";read -p "e veya h-> " eh + ryaz 34 $paket" $_paket_silinsinmi";read -p "e veya h-> " eh case $eh in [Ee]* ) sil_onay="e"; break;; [Hh]* ) break;; @@ -154,12 +192,13 @@ paket_sil(){ done fi if [ "$sil_onay" = "e" ];then - [ -f "$talimatname_dizin/genel/$paket/$paket.kos-sil" ] && bash "$talimatname_dizin/genel/$paket/$paket.kos-sil" + _konum=$(talimat_bul $paket) + [ -f "$_konum/$paket.kos-sil" ] && bash "$_konum/$paket.kos-sil" xargs rm -r -f < /tmp/$paket.sil && - rm -r -f /var/lib/pkg/DB/"$paket" && - [ -f "$talimatname_dizin/genel/$paket/$paket.sil-kos" ] && bash "$talimatname_dizin/genel/$paket/$paket.sil-kos" - ryaz 34 $paket" paketi silindi." - loglama "$paket paketi silindi." + rm -r -f "$VT/$paket" && + [ -f "$_konum/$paket.sil-kos" ] && bash "$_konum/$paket.sil-kos" + ryaz 34 $paket" $_paket_silindi" + loglama "$paket $_paket_silindi" rm -f /tmp/$paket.sil else rm -f /tmp/$paket.sil @@ -170,11 +209,11 @@ paket_sil(){ hataloglama "kritik mesaj:kurulanlar dosyası yok." fi elif [ "$kkont" = "degil" ];then - ryaz 32 "paket zaten kurulu değil!" - hataloglama "paket zaten kurulu değil!" + ryaz 32 "$_zaten $_paket_kurulu_degil" + hataloglama "$_zaten $_paket_kurulu_degil" else - ryaz 32 "paket tanımsız!" - hataloglama "paket tanımsız!" + ryaz 32 "$_paket_tanimsiz" + hataloglama "$_paket_tanimsiz" fi fi @@ -183,13 +222,93 @@ paket_sil(){ paket_ara(){ paket="$1" for pkt in `cat /depo/paketler/paket*.vt | grep $paket | awk '{print $1}'`; do - pakdesc=$(find $talimatname_dizin -name "$pkt" | xargs -I % sed -n '1{p;q}' %/talimat | sed s'/# Description: //g'); + pakdesc=$(find $talimatname -name "$pkt" | xargs -I % sed -n '1{p;q}' %/talimat | sed s'/# Tanım: //g'); ryaz 34 "$pkt - $pakdesc"; done } +paket_liste(){ + mps_paketler_listesi="/tmp/mps_paketler_listesi" + local cikti _grup + _grup="yok" + cikti="--normal" + if [ "$1" ]; then + if [ "$1" == "--json" ];then + cikti="--json" + else + _grup="$1" + fi + fi + if [ "$2" ]; then + cikti="$2" + fi + #echo "cikti:$cikti" + #echo "grup:$_grup" + #exit 1 + if [ $_grup == "yok" ];then + if [ $cikti == "--json" ];then + [ -f $mps_paketler_listesi ] && rm -rf $mps_paketler_listesi + for pkt in $(cat /depo/paketler/paket*.vt | awk '{print $1}'); do + printf "$pkt," >> $mps_paketler_listesi + done + sed -i s'/.$//' $mps_paketler_listesi + else + cat /depo/paketler/paket*.vt | awk '{print $1}' + fi + else + if [ $cikti == "--json" ];then + grup_paketler_liste $_grup $cikti + else + grup_paketler_liste $_grup + fi + fi +} + +paket_grup_liste(){ + mps_paket_grup_listesi="/tmp/mps_paket_grup_listesi" + local cikti + cikti="normal" + if [ "$1" ]; then + cikti="$1" + fi + _gruplar=`grep -ri "Grup:" $talimatname/* $ektalimatname/* | cut -d':' -f3 | sed 's/^ *//;s/ *$//' | sort -u` + if [ $cikti == "--json" ];then + [ -f $mps_paket_grup_listesi ] && rm -rf $mps_paket_grup_listesi + #printf "[" >> $mps_paket_grup_listesi + for grp in $(grep -ri "Grup:" $talimatname/* $ektalimatname/* | cut -d':' -f3 | sed 's/^ *//;s/ *$//' | sort -u); do + printf "$grp," >> $mps_paket_grup_listesi + done + sed -i s'/.$//' $mps_paket_grup_listesi + #printf "]" >> $mps_paket_grup_listesi + else + echo $_gruplar + fi +} + +grup_paketler_liste(){ + mps_grup_paketler_listesi="/tmp/mps_grup_paketler_listesi" + local cikti _grup _paketler + _grup="$1" + cikti="normal" + if [ "$2" ]; then + cikti="$2" + fi + _paketler=`grep -rli "Grup: $_grup" $talimatname/* $ektalimatname/* | cut -d':' -f3 | sed 's/^ *//;s/ *$//' | xargs -I {} dirname {} | xargs -I {} basename {} | sort -u` + if [ $cikti == "--json" ];then + [ -f $mps_grup_paketler_listesi ] && rm -rf $mps_grup_paketler_listesi + #printf "[" >> $mps_paket_grup_listesi + for pkt in $(grep -rli "Grup: $_grup" $talimatname/* $ektalimatname/* | cut -d':' -f3 | sed 's/^ *//;s/ *$//' | xargs -I {} dirname {} | xargs -I {} basename {} | sort -u); do + printf "$pkt," >> $mps_grup_paketler_listesi + done + sed -i s'/.$//' $mps_grup_paketler_listesi + #printf "]" >> $mps_paket_grup_listesi + else + echo $_paketler + fi +} + kelime_bul(){ - grep --color -H -ri "$1" $talimatname_dizin + grep --color -H -ri "$1" $talimatname grep --color -H -ri "$1" $ektalimatname } @@ -198,44 +317,111 @@ paket_bilgi2(){ kkont=`kurulu_kontrol "$1"` if [ "$kkont" = "kurulu" ];then paket="$1" - cat /var/lib/pkg/DB/"$paket"/META + cat "$VT/$paket"/META elif [ "$kkont" = "degil" ];then - echo "paket kurulu değil!" + echo "$_paket_kurulu_degil" else - echo "paket tanımsız!" + echo "$_paket_tanimsiz" fi } paket_bilgi(){ - local paket kkont + local paket kkont cikti _yaz _yaz_uyari _yaz_son + cikti="--renkli" + _yaz_son="" + if [ "$2" ]; then + cikti="$2" + fi + if [ $cikti == "--html" ];then + _yaz="echo" + _yaz_uyari="echo" + _yaz_son="
" + elif [ $cikti == "--renkli" ];then + _yaz="ryaz 32" + _yaz_uyari="ryaz 31" + else + cikti="normal" + fi + kkont=`kurulu_kontrol "$1"` + if [ "$kkont" = "kurulu" ];then paket="$1" - satir=`sed -n '1p' < /var/lib/pkg/DB/"$paket"/META` - ryaz 32 "AD:" ${satir:1:${#satir}-1} - satir=`sed -n '2p' < /var/lib/pkg/DB/"$paket"/META` - ryaz 32 "TN:" ${satir:1:${#satir}-1} - satir=`sed -n '3p' < /var/lib/pkg/DB/"$paket"/META` - ryaz 32 "UR:" ${satir:1:${#satir}-1} - satir=`sed -n '4p' < /var/lib/pkg/DB/"$paket"/META` - ryaz 32 "YP:" ${satir:1:${#satir}-1} - satir=`sed -n '5p' < /var/lib/pkg/DB/"$paket"/META` - ryaz 32 "PK:" ${satir:1:${#satir}-1} - satir=`sed -n '6p' < /var/lib/pkg/DB/"$paket"/META` - ryaz 32 "--:" ${satir:1:${#satir}-1} - satir=`sed -n '7p' < /var/lib/pkg/DB/"$paket"/META` - ryaz 32 "VS:" ${satir:1:${#satir}-1} - satir=`sed -n '8p' < /var/lib/pkg/DB/"$paket"/META` - ryaz 32 "RL:" ${satir:1:${#satir}-1} - satir=`sed -n '9p' < /var/lib/pkg/DB/"$paket"/META` - ryaz 32 "DZ:" `date -d @${satir:1:${#satir}-1}` + satir=`sed -n '1p' < $VT/"$paket"/META` + $_yaz "ADI :" ${satir:1:${#satir}-1} #$_yaz_son + satir=`sed -n '2p' < $VT/"$paket"/META` + $_yaz "TANIM :" ${satir:1:${#satir}-1} #$_yaz_son + satir=`sed -n '3p' < $VT/"$paket"/META` + $_yaz "URL :" ${satir:1:${#satir}-1} #$_yaz_son + satir=`sed -n '5p' < $VT/"$paket"/META` + $_yaz "PAKETÇİ :" ${satir:1:${#satir}-1} #$_yaz_son + satir=`sed -n '6p' < $VT/"$paket"/META` + satir=${satir:1:${#satir}-1} + printf -v boyut '%d\n' "$satir" 2>/dev/null + if [ $boyut -lt 1048576 ];then + boyut=$(($boyut/1024)) + _ek="kb" + else + boyut=$(($boyut/1024/1024)) + _ek="mb" + fi + $_yaz "KUR BOYUT :" "$boyut $_ek (tahmini)" #$_yaz_son + satir=`sed -n '7p' < $VT/"$paket"/META` + $_yaz "SÜRÜM :" ${satir:1:${#satir}-1} #$_yaz_son + satir=`sed -n '8p' < $VT/"$paket"/META` + $_yaz "DEVİR :" ${satir:1:${#satir}-1} #$_yaz_son + satir=`sed -n '9p' < $VT/"$paket"/META` + $_yaz "PAKETLENME :" `date -d @${satir:1:${#satir}-1}` #$_yaz_son + satir=`sed -n '10p' < $VT/"$paket"/META` + $_yaz "MİMARİ :" ${satir:1:${#satir}-1} #$_yaz_son + satir=`sed -n '11p' < $VT/"$paket"/META` + $_yaz "GRUP :" ${satir:1:${#satir}-1} #$_yaz_son elif [ "$kkont" = "degil" ];then - echo "paket kurulu değil!" + _konum=$(talimat_bul $1) + _ad=$(grep -ri "isim=" $_konum/talimat | head -1 | cut -d '=' -f2) + _tanim=$(grep -ri "# Tanım:" $_konum/talimat | cut -d ':' -f2-) + _url=$(grep -ri "# Url:" $_konum/talimat | cut -d ':' -f2-) + _paketci=$(grep -ri "# Paketçi:" $_konum/talimat | cut -d ':' -f2-) + _surum=$(grep -ri "surum=" $_konum/talimat | head -1 | cut -d '=' -f2) + _devir=$(grep -ri "devir=" $_konum/talimat | head -1 | cut -d '=' -f2) + _grup=$(grep -ri "# Grup:" $_konum/talimat | head -1 | cut -d ':' -f2) + $_yaz "ADI :" ${_ad} #$_yaz_son + $_yaz "TANIM :" ${_tanim} #$_yaz_son + $_yaz "URL :" ${_url} #$_yaz_son + $_yaz "PAKETÇİ :" ${_paketci} #$_yaz_son + $_yaz "SÜRÜM :" ${_surum} #$_yaz_son + $_yaz "DEVİR :" ${_devir} #$_yaz_son + $_yaz "GRUP :" ${_grup} #$_yaz_son + $_yaz_uyari "$1 $_paket_kurulu_degil" else - echo "paket tanımsız!" + $_yaz_uyari "$1 $_paket_tanimsiz" fi +} +paket_bilgi_html(){ + _dosya=$1 + icerik="" + while IFS='' read -r satir || [[ -n "$line" ]]; do + icerik+="" + _sutun_baslik="$(echo $satir | cut -d':' -f1)" + _sutun_deger="$(echo $satir | cut -d':' -f2-)" + + #icerik+="" + if [ "${_sutun_baslik}" != "${_sutun_deger}" ];then + icerik+="" + icerik+="" + fi + icerik+="" + done < "$_dosya" + + if [[ "${_sutun_baslik}" == *"${_paket_kurulu_degil}"* ]] || [[ "${_sutun_baslik}" == *"${_paket_tanimsiz}"* ]];then + icerik+="" + else + icerik+="" + fi + icerik+="
$_sutun_deger$_sutun_baslik$_sutun_deger
DURUM${_sutun_baslik}
DURUMkurulu
" + echo "$icerik" > $_dosya.html } yeniden_paketle(){ @@ -246,77 +432,153 @@ yeniden_paketle(){ lzip -9 "$1".mps } -derleme_listyap_kontrol(){ - - if [ -f tumbag.liste ];then - mv tumbag.liste tumbag.liste.eski - fi - if [ -f bag.liste ];then - mv bag.liste bag.liste.eski - fi - touch tumbag.liste - touch bag.liste -} - -derleme_listyap_eski(){ - - bagimlist=`bagimlilar "$1"` - #echo $bagimlist - if [ "$bagimlist" != "talimatyok" ];then - for bagim in $bagimlist;do - - if [ "`cat tumbag.liste | grep $bagim`" != "$bagim" ];then - derleme_listyap "$bagim" - fi - done - - if ! grep -Fxq "$1" tumbag.liste - then - ana="`find $talimatname_dizin -name $1`" - dal="`find $ektalimatname -name $1`" - if [ ! -z "$ana" -a "$ana" != " " ]; then - echo ${ana#"$talimatname_dizin"} - elif [ ! -z "$dal" -a "$dal" != " " ]; then - echo ${dal#"$ektalimatname"} - fi - #sadece genel bagimliliklar derlenecek - echo "$1" >> tumbag.liste - if [ -f "$talimatname_dizin/genel/$1/talimat" ];then - echo "$ana" >> bag.liste - elif [ -f "$dal/talimat" ];then - echo "$dal" >> bag.liste - fi +talimat_bul(){ + if [ -z "$1" ];then echo "$_paket_adi_gerekli";exit 1;fi + local _apaket="$1" + _bulunan=() + #_bulunan=$(find $talimatname $ektalimatname -name $_apaket) + _bulunan=() + while IFS= read -r -d $'\0'; do + _bulunan+=("$REPLY") + done < <(find $talimatname $ektalimatname -name ${_apaket} -print0) + if [ ${#_bulunan[@]} -gt 1 ];then echo "$(date +'%F %T') ${_apaket} $_talimat_sayisi_fazla" >> $LOGDIZIN/mps-hata.log;fi + if [ ${_bulunan[0]} ] ; then + if [ -f "${_bulunan[0]}/talimat" ];then + echo "${_bulunan[0]}" + else + echo "0" fi else - ryaz 31 "$1 talimatı bulunamadı." - hataloglama "$1 talimatı bulunamadı." - exit 1 + echo "-1" + fi +} + +paket_analiz(){ + _gcc_uyumsuz_paketler="/tmp/gcc_uyumsuz_paketler" + _pkvt="paket.vt" + if [ -z "$1" ];then echo "$_paket_adi_gerekli";exit 1;fi + local pkt _apaket _konum + pkt=$1 + if [ -f $pkt ];then + _apaket=$(basename $pkt |cut -d'#' -f 1) + _konum=$(anatalimat_bul $_apaket) + _depo_sha=$(cat "$paketdepo$_pkvt" | grep " $_apaket#" | cut -d' ' -f2) + _paket_sha=$(sha1sum $pkt | cut -d ' ' -f1) + if [[ $_konum != "-1" && $_konum != "0" ]];then + source $_konum/talimat + if [ -f $pkt ];then + bsdtar xf $pkt .META + if [ -f $PWD/.META ];then + mv .META /tmp/$_apaket.META + satir=$(sed -n '7p' < /tmp/$_apaket.META) + psurum=${satir:1:${#satir}-1} + satir2=$(sed -n '8p' < /tmp/$_apaket.META) + pdevir=${satir2:1:${#satir2}-1} + deposurum=`echo -e "$surum" | sort -V | head -n1` + depodevir=`echo -e "$devir" | sort -V | head -n1` + _surumbilgi="gereken_sürüm:$deposurum ! paket_sürüm:$psurum" + _devirbilgi="gereken_devir:$depodevir ! paket_devir:$pdevir" + ryaz 33 "$pkt" + if [ "$deposurum" != "$psurum" ];then + ryaz 31 "$_surumbilgi" + echo "$pkt" >> $_gcc_uyumsuz_paketler + fi + if [ "$depodevir" != "$pdevir" ];then + ryaz 31 "$_devirbilgi" + echo "$pkt" >> $_gcc_uyumsuz_paketler + fi + if [ "$_paket_sha" != "$_depo_sha" ];then + ryaz 31 "$_shasum_uyumsuzluk" + echo "$pkt" >> $_gcc_uyumsuz_paketler + fi + else + ryaz 31 "$_apaket depoda yok. mps -i $_apaket" + fi + else + ryaz 31 "$_apaket depoda yok. mps -i $_apaket" + fi + else + ryaz 31 "$1 $_talimat_bulunamadi" + fi + rm -f /tmp/$_apaket.META + else + ryaz 31 "$pkt $_dosya_yolu_bulunamadi" + exit 0 fi +} + +paketdepo_analiz(){ + paketvt_guncelle + _aranandepo=$1 + _uyumsuz_paketler="/tmp/uyumsuz_paketler" + if [[ -d $_aranandepo && ! -f $_aranandepo ]];then + rm -f $_uyumsuz_paketler + _gcc_uyumsuz_paketler="/tmp/gcc_uyumsuz_paketler" + for pkt in $(ls $_aranandepo*mps.lz);do + paket_analiz $pkt + echo "-" + done + echo "tarama bitti" + sort -u $_gcc_uyumsuz_paketler > $_uyumsuz_paketler + echo "file://$_uyumsuz_paketler" + exit 0 + else + ryaz 31 "$1 $_dizin_bulunamadi" + exit 1 + fi +} + +anatalimat_bul(){ + if [ -z "$1" ];then echo "$_paket_adi_gerekli";exit 1;fi + local _apaket="$1" + _bulunan=() + _bulunan=() + while IFS= read -r -d $'\0'; do + _bulunan+=("$REPLY") + done < <(find $anatalimatname -name ${_apaket} -print0) + if [ ${#_bulunan[@]} -gt 1 ];then echo "$(date +'%F %T') ${_apaket} $_talimat_sayisi_fazla" >> $LOGDIZIN/mps-hata.log;fi + if [ ${_bulunan[0]} ] ; then + if [ -f "${_bulunan[0]}/talimat" ];then + echo "${_bulunan[0]}" + else + echo "0" + fi + else + echo "-1" + fi +} + +derleme_listyap_kontrol(){ + + if [ -f tumgerekler.liste ];then + mv tumgerekler.liste tumgerekler.eski.liste + fi + if [ -f gerek.liste ];then + mv gerek.liste gerek.eski.liste + fi + touch tumgerekler.liste + touch gerek.liste } gerekleri_dosyala(){ - local altgerek - altgerek="$1" - ana="`find $talimatname_dizin -name $altgerek`" - dal="`find $ektalimatname -name $altgerek`" - if [ ! -z "$ana" -a "$ana" != " " ]; then - echo ${ana#"$talimatname_dizin"} - elif [ ! -z "$dal" -a "$dal" != " " ]; then - echo ${dal#"$ektalimatname"} - fi - #sadece genel bagimliliklar derlenecek - echo "$altgerek" >> tumbag.liste - if [ -f "$talimatname_dizin/genel/$altgerek/talimat" ];then - echo "$ana" >> bag.liste - elif [ -f "$dal/talimat" ];then - echo "$dal" >> bag.liste + local _altgerek _konum + _altgerek="$1" + _konum=$(talimat_bul $_altgerek) + if [[ $konum != "-1" && $konum != "0" ]];then + printf "." + echo "$_altgerek" >> tumgerekler.liste + if [ ! -d "$talimatname/temel/$_altgerek" ];then + echo "$_konum" >> gerek.liste + fi + else + ryaz 31 "$1 $_talimat_bulunamadi" fi } dly_yeni(){ dlymap["$1"]=1 altgerekler=($(bagimlilar $1)) - if [ "$altgerekler" != "talimatyok" ];then + if [[ "$altgerekler" != "0" && "$altgerekler" != "-1" ]];then for altgerek in ${altgerekler[@]};do if [[ ! ${dlymap["$altgerek"]} ]] ; then dly_yeni $altgerek @@ -334,7 +596,7 @@ kly_yeni(){ #[ ! ${klyD[0]} ] && klyD+=("$1") [ ! -d "$VT/$1" ] && klymap["$1"]=1 altgerekler=($(bagimlilar $1)) - if [ "$altgerekler" != "talimatyok" ];then + if [[ "$altgerekler" != "0" && "$altgerekler" != "-1" ]];then for altgerek in ${altgerekler[@]};do if [ ! -d "$VT/$altgerek" ] ;then if [[ ! ${klymap["$altgerek"]} ]] ; then @@ -353,11 +615,13 @@ kly_yeni(){ } derleme_listyap(){ + ryaz 32 "$1 $_gerekler_belirleniyor" local pkt dlyp dlyD=() declare -A dlymap derleme_listyap_kontrol dly_yeni $1 + echo "${dlyD[@]}" } kurulum_listyap(){ @@ -385,20 +649,22 @@ paket_derle_liste(){ paket_derle_kur(){ tekrarkur="hayir" derleme_listyap_kontrol - derleme_listyap "$1" && paket_derle_liste bag.liste + derleme_listyap "$1" && paket_derle_liste gerek.liste } # odkp oto_derle_kur_paketle(){ paketvt_guncelle # mps -kur + _konum=$(talimat_bul $1) paket_inkur_oto $1 && - if [ -f "$talimatname_dizin/genel/$1/$1.sira" ];then + if [ -f "$_konum/$1.sira" ];then ryaz 32 "sıralı derleme yapılacak." - paket_derle_liste "$talimatname_dizin/genel/$1/$1.sira" + paket_derle_liste "$_konum/$1.sira" else paket_derle_kur $1 fi + rm -rf {gerek.eski,gerek,kurulanlar,silinenler,tumgerekler.eski,tumgerekler}.liste } paket_kur_oto(){ @@ -460,7 +726,7 @@ paket_kur_liste_zorla(){ #otomatik kontrollu kur paket_kur_oto2(){ derleme_listyap_kontrol - derleme_listyap "$1" > /dev/null && mps -ok bag.liste + derleme_listyap "$1" > /dev/null && mps -ok gerek.liste } paket_inkur_liste_direk(){ @@ -485,11 +751,11 @@ paket_inkur_oto(){ #derleme_listyap "$1" | grep "bulunamadı" kurulum_listyap "$1" | grep "bulunamadı" local kpkt - for paketkonum in `cat bag.liste`;do + for paketkonum in `cat gerek.liste`;do # önce talimat-anatalimat karşılaştırması yapılır. kpkt=`basename $paketkonum` - konum="`find "$talimatname_dizin" -name $kpkt`" - anakonum="`find "$ana_talimatname_dizin" -name $kpkt`" + konum="`find "$talimatname" -name $kpkt`" + anakonum="`find "$anatalimatname" -name $kpkt`" ekkonum="`find "$ektalimatname" -name $kpkt`" if [ -f "$anakonum/talimat" ];then if [ "`dosya_karsilastir $konum/talimat $anakonum/talimat`" = "evet" ];then @@ -507,11 +773,11 @@ paket_inkur_oto(){ kurdurum="kurulu değil" elif [ $(kurulu_kontrol $1) = "kurulu" ];then kurdurum="kurulu" + ryaz 32 "\n$1 $kurdurum " else - kurdurum="tanımsız paket" + kurdurum="$_paket_tanimsiz" fi - ryaz 32 "\n$1 $kurdurum " - rm -rf *.liste *.eski + rm -rf *.liste } paket_sil_oto(){ @@ -524,12 +790,14 @@ paket_sil_oto(){ paket_sil_oto_onayli(){ local spkt - for spkt in `perl -e 'print reverse <>' $1`;do + #for spkt in `perl -e 'print reverse <>' $1`;do + for spkt in $(tac $1);do paket_sil "$spkt" "hayir" "evet" done } paket_sil_gerekli(){ + local _onay if [ -d $VT/$1 ];then bagimli_bilgi_dosyala "$1" rm -f /tmp/$1.silinecekler @@ -537,35 +805,46 @@ paket_sil_gerekli(){ for pkaltb in $(cat /tmp/$1.gerekler.liste);do if [ -d $VT/$pkaltb ];then tbsonuc=() - tbsonuc=$(ters_bagimli_bilgi $pkaltb) + tbsonuc=$(ters_bagimli_bilgi $pkaltb "kurulu") if [ ${#tbsonuc[0]} = 0 ];then ryaz 32 "$pkaltb silinebilir." echo "$pkaltb" >> /tmp/$1.silinecekler + elif [ "$tbsonuc" = "$1" ];then + ryaz 32 "$pkaltb silinebilir." + echo "$pkaltb" >> /tmp/$1.silinecekler else ryaz 31 "$pkaltb silinemez." + echo "ters gerekleri: $tbsonuc" fi else - ryaz 32 "$pkaltb zaten kurulu değil" + ryaz 32 "$_zaten $pkaltb $_paket_kurulu_degil" fi done - cat /tmp/$1.silinecekler - paket_sil_oto_onayli "/tmp/$1.silinecekler" + _onay="onay" + # otomatik onay verme durum kontrolü + if [ ! -z "$2" ];then _onay="$2";fi + #cat /tmp/$1.silinecekler + if [ $_onay = "oto" ];then + paket_sil_oto "/tmp/$1.silinecekler" + else + paket_sil_oto_onayli "/tmp/$1.silinecekler" + fi else - ryaz 32 "$1 zaten kurulu değil" + ryaz 32 "$_zaten $1 $_paket_kurulu_degil" exit 1 fi } paketsiz_talimatlar(){ - for talimatyol in `( ls -d $talimatname_dizin/genel/* & ls -d $ektalimatname/*/* ) | cat`;do + for talimatyol in `( ls -d $talimatname/genel/*/* & ls -d $ektalimatname/*/* ) | cat`;do #echo $talimat if [ -d $talimatyol ];then talimat=$(basename $talimatyol) if [[ ! $(cat $paketdepo/paket*.vt | grep $talimat#) ]] ;then - if [ -d $talimatname_dizin/*/$talimat ];then - ack=`grep -e '# Description:' $talimatname_dizin/genel/$talimat/talimat | cut -d':' -f2` + if [ -d $talimatname/*/*/$talimat ];then + ack=`grep -e '# Tanım:' $talimatname/genel/*/$talimat/talimat | cut -d':' -f2` elif [ -d $ektalimatname/*/$talimat ];then - ack=`grep -e '# Description:' $ektalimatname/*/$talimat/talimat | cut -d':' -f2` + ack=`grep -e '# Tanım:' $ektalimatname/*/$talimat/talimat | cut -d':' -f2` fi printf '%s = %s \n' "$talimat" "$ack" fi @@ -575,19 +854,21 @@ paketsiz_talimatlar(){ paket_guncelle(){ surum_kontrol $1 $2 - devir_kontrol $1 $2 + if [ -d "$VT/$1" ];then + devir_kontrol $1 $2 + fi } paket_guncelle_oto(){ derleme_listyap "$1" > /dev/null && local kpkt - for kpkt in `cat bag.liste`;do + for kpkt in `cat gerek.liste`;do durum=`kurulu_kontrol "$kpkt"` if [ "$durum" = "kurulu" ]; then paket_guncelle "$kpkt" fi done - rm bag.liste tumbag.liste + rm gerek.liste tumgerekler.liste } dongu_gosterge(){ @@ -603,6 +884,7 @@ dongu_gosterge(){ } guncelleme_tespit(){ + local _konum guncelleme_dosya="/tmp/mps.guncellenecekler" rm -f $guncelleme_dosya touch $guncelleme_dosya @@ -612,18 +894,15 @@ guncelleme_tespit(){ satir2=$(sed -n '8p' < $VT/$kpaket/META) devir=${satir2:1:${#satir2}-1} #deposurum=$(grep " $kpaket#" /depo/paketler/paket.vt | cut -d' ' -f3 | cut -d'#' -f 2 | cut -d'-' -f1) - if [ -d $(find $talimatname_dizin -name $kpaket) ];then - pkt="`find $talimatname_dizin -name $kpaket`" - elif [ -d $(find $ektalimatname -name $kpaket) ];then - pkt="`find $ektalimatname -name $kpaket`" - else - ryaz 31 "$kpaket talimatnamelerde olmayan bir paket sürüm kontrolü iptal edildi!" + _konum=$(talimat_bul $kpaket) + if [[ "$_konum" = "0" || "$_konum" = "-1" ]];then + ryaz 31 "$kpaket $_talimat_bulunamadi $_surum_kontrol_iptal" exit 1 fi - source $pkt/talimat - deposurum=`echo -e "$version" | sort -V | head -n1` - depodevir=`echo -e "$release" | sort -V | head -n1` + source $_konum/talimat + deposurum=`echo -e "$surum" | sort -V | head -n1` + depodevir=`echo -e "$devir" | sort -V | head -n1` #echo $kpaket " : $surum ---> $deposurum" "$devir ---> $depodevir" #sleep 3 if [ "$surum" != "$deposurum" ];then @@ -652,7 +931,9 @@ sistem_guncelle(){ printf "\r%3d.%1d%% %.${pd}s" $(( $count * 100 / $total )) $(( ($count * 1000 / $total) % 10 )) $pstr kpkt=$(ls -rct $VT | tr " " "\n" | sed -n ${count}'p') pk_guncelle="e" - case "${esgec[@]}" in *"$kpkt"*) pk_guncelle="h" ;; esac + if [[ "${esgec[*]}" =~ "${kpkt}" ]];then + pk_guncelle="h" + fi if [ "$pk_guncelle" = "e" ];then paket_guncelle "$kpkt" $GS_CIKTI #printf "." @@ -664,89 +945,75 @@ sistem_guncelle(){ ryaz 32 "\nSistem Güncellemesi Tamamlandı." } -sistem_guncelle_eski(){ - #tarihce_yap - # güncellemede atlanacak paketler. - esgec=(xorg xorg-app xorg-font xorg-proto kernel-lts kernel-lts-src vlc) - local kpkt - local pk_guncelle - #mps -GG - #mps -G - GS_CIKTI="H" - for kpkt in `mps -kl`;do - pk_guncelle="e" - case "${esgec[@]}" in *"$kpkt"*) pk_guncelle="h" ;; esac - if [ "$pk_guncelle" = "e" ];then - paket_guncelle "$kpkt" $GS_CIKTI - #printf "." - else - [ $GS_CIKTI = "E" ] && ryaz 31 $kpkt "güncellemesi atlandı" - printf "." - fi - - done - ryaz 32 "\nSistem Güncellemesi Tamamlandı." -} - surum_kontrol(){ + local _konum pk_sil _paket + _paket=$1 GS_CIKTI="E" if [ "$2" ]; then GS_CIKTI="$2" fi - local ksurum version pkt dusuk yuksek durum + local ksurum surum pkt dusuk yuksek durum durum="belirsiz" - satir=`sed -n '7p' < /var/lib/pkg/DB/"$1"/META` + satir=`sed -n '7p' < $VT/$_paket/META` ksurum=${satir:1:${#satir}-1} - if [ -d $(find $talimatname_dizin -name $1) ];then - pkt="`find $talimatname_dizin -name $1`" - elif [ -d $(find $ektalimatname -name $1) ];then - pkt="`find $ektalimatname -name $1`" - else - ryaz 31 "$1 talimatnamelerde olmayan bir paket sürüm kontrolü iptal edildi!" - exit 1 - fi - source $pkt/talimat - dusuk=`echo -e "$ksurum\n$version" | sort -V | head -n1` - - if [ "$ksurum" = "$version" ];then - durum="guncel" - [ $GS_CIKTI = "E" ] && ryaz 33 "$1 sürümü güncel" - #printf "." - else - if [ "$ksurum" = "$dusuk" ];then - durum="yukselt" + _konum=$(talimat_bul $_paket) + if [[ "$_konum" = "0" || "$_konum" = "-1" ]];then + ryaz 31 "$_paket $_talimat_bulunamadi $_surum_kontrol_iptal" + pk_sil="e" + case "${silme_esgec[@]}" in *"$_paket"*) pk_sil="h" ;; esac + if [ "$pk_sil" = "e" ];then + ryaz 32 "$_paket $_paket_depoda_yok $_siliniyor" + mps -sz $_paket else - durum="dusur" + ryaz 32 "$_paket silinmesi es geçildi" fi - gun_onay="h" - if [ "$durum" <> "guncel" ];then - while true; do - printf "\n" - ryaz 34 "$1 sürüm $durum""me işlemi uygulanacak. $ksurum <> $version ";read -p "e veya h-> " eh - case $eh in - [Ee]* ) gun_onay="e"; break;; - [Hh]* ) break;; - * ) echo "e veya h";; - esac - done - if [ "$gun_onay" = "e" ];then - if [ -d "$talimatname_dizin/temel/$1" ]; then - kurulum_dogrulama_icerik $1 - tpk="hayir" - paket_sil "$1" "evet" - paket_indir $1 - pkt=`cat "$paketdepo""paket.vt" | grep "^$1 " | cut -d' ' -f3` - icerik_ekle "$paketdepo$pkt" - else - paket_sil "$1" "evet" - paket_inkur_oto $1 - fi - ryaz 33 "$1 sürüm güncellemesi yapıldı" + + else + + source $_konum/talimat + + dusuk=`echo -e "$ksurum\n$surum" | sort -V | head -n1` + + if [ "$ksurum" = "$surum" ];then + durum="guncel" + [ $GS_CIKTI = "E" ] && ryaz 33 "$_paket sürümü güncel" + #printf "." + else + if [ "$ksurum" = "$dusuk" ];then + durum="yukselt" else - ryaz 31 "$1 sürüm güncellemesi yapılmadı" - hataloglama "$1 sürüm güncellemesi yapılmadı" + durum="dusur" + fi + gun_onay="h" + if [ "$durum" != "guncel" ];then + while true; do + printf "\n" + ryaz 34 "$_paket sürüm $durum""me işlemi uygulanacak. $ksurum <> $surum ";read -p "e veya h-> " eh + case $eh in + [Ee]* ) gun_onay="e"; break;; + [Hh]* ) break;; + * ) echo "e veya h";; + esac + done + if [ "$gun_onay" = "e" ];then + if [ -d "$talimatname/temel/$_paket" ]; then + kurulum_dogrulama_icerik $_paket + tpk="hayir" + paket_sil "$_paket" "evet" + paket_indir $_paket + pkt=`cat "$paketdepo""paket.vt" | grep "^$_paket " | cut -d' ' -f3` + icerik_ekle "$paketdepo$pkt" + else + paket_sil "$_paket" "evet" + paket_inkur_oto $_paket + fi + ryaz 33 "$_paket sürüm güncellemesi yapıldı" + else + ryaz 31 "$_paket sürüm güncellemesi yapılmadı" + hataloglama "$_paket sürüm güncellemesi yapılmadı" + fi fi fi fi @@ -754,60 +1021,119 @@ surum_kontrol(){ } devir_kontrol(){ + local _konum pk_sil _paket + _paket="$1" GS_CIKTI="E" if [ "$2" ]; then GS_CIKTI="$2" fi - local kdevir release pkt dusuk yuksek durum gun_onay + local kdevir devir pkt dusuk yuksek durum gun_onay durum="belirsiz" - satir=`sed -n '8p' < /var/lib/pkg/DB/"$1"/META` + satir=`sed -n '8p' < $VT/$_paket/META` kdevir=${satir:1:${#satir}-1} - if [ -d $(find $talimatname_dizin -name $1) ];then - pkt="`find $talimatname_dizin -name $1`" - elif [ -d $(find $ektalimatname -name $1) ];then - pkt="`find $ektalimatname -name $1`" - else - ryaz 31 "$1 talimatnamelerde olmayan bir paket sürüm kontrolü iptal edildi!" - exit 1 - fi - - source $pkt/talimat - dusuk=`echo -e "$kdevir\n$release" | sort -V | head -n1` - - if [ "$kdevir" = "$release" ];then - durum="guncel" - [ $GS_CIKTI = "E" ] && ryaz 33 "$1 deviri güncel" - #printf "." - else - if [ "$kdevir" = "$dusuk" ];then - durum="yukselt" + _konum=$(talimat_bul $_paket) + if [[ "$_konum" = "0" || "$_konum" = "-1" ]];then + ryaz 31 "$_paket $_talimat_bulunamadi $_devir_kontrol_iptal" + pk_sil="e" + case "${silme_esgec[@]}" in *"$_paket"*) pk_sil="h" ;; esac + if [ "$pk_sil" = "e" ];then + ryaz 32 "$_paket $_paket_depoda_yok $_siliniyor" + mps -sz $_paket else - durum="dusur" + ryaz 32 "$_paket silinmesi es geçildi" fi - gun_onay="h" - if [ "$durum" <> "guncel" ];then - while true; do - printf "\n" - ryaz 34 "$1 devir $durum""me işlemi uygulanacak. $kdevir <> $release ";read -p "e veya h-> " eh - case $eh in - [Ee]* ) gun_onay="e"; break;; - [Hh]* ) break;; - * ) echo "e veya h";; - esac - done - if [ "$gun_onay" = "e" ];then - paket_sil "$1" "evet" - paket_inkur_oto $1 - ryaz 33 "$1 devir güncellemesi yapıldı" + + else + + source $_konum/talimat + dusuk=`echo -e "$kdevir\n$devir" | sort -V | head -n1` + + if [ "$kdevir" = "$devir" ];then + durum="guncel" + [ $GS_CIKTI = "E" ] && ryaz 33 "$_paket deviri güncel" + #printf "." + else + if [ "$kdevir" = "$dusuk" ];then + durum="yukselt" else - ryaz 31 "$1 devir güncellemesi yapılmadı" - hataloglama "$1 devir güncellemesi yapılmadı" + durum="dusur" fi - fi - fi + gun_onay="h" + if [ "$durum" != "guncel" ];then + while true; do + printf "\n" + ryaz 34 "$_paket devir $durum""me işlemi uygulanacak. $kdevir <> $devir ";read -p "e veya h-> " eh + case $eh in + [Ee]* ) gun_onay="e"; break;; + [Hh]* ) break;; + * ) echo "e veya h";; + esac + done + if [ "$gun_onay" = "e" ];then + paket_sil "$_paket" "evet" + paket_inkur_oto $_paket + ryaz 33 "$_paket devir güncellemesi yapıldı" + else + ryaz 31 "$_paket devir güncellemesi yapılmadı" + hataloglama "$_paket devir güncellemesi yapılmadı" + fi + fi + fi + fi } - + +talimat_surum_takip(){ + local konum _takip_uzanti + _takip_uzanti=".takip" + konum=$(talimat_bul $1) + if [[ $konum == "-1" || $konum == "0" ]];then + ryaz 31 "$1 $_talimat_bulunamadi" + exit 1 + else + if [ -f "$konum/$1$_takip_uzanti" ];then + source $konum/$1$_takip_uzanti + if [ "`type -t surum_takip`" = "function" ];then + ryaz 32 "$1 paketinin kaynak kod arşivleri inceleniyor..." + surum_takip + else + ryaz 31 "$1 talimatının sürüm takip işlevi yok!" + fi + else + ryaz 31 "$1 talimatının takip betiği yok!" + fi + fi +} + +kaynak_kod_indir(){ + local konum adres adres2 + _kk_indir="wget --no-check-certificate -q --show-progress" + konum=$(talimat_bul $1) + if [[ $konum == "-1" || $konum == "0" ]];then + ryaz 31 "$1 $_talimat_bulunamadi" + exit 1 + else + source $konum/talimat + for adres in $kaynak;do + + urlkont='(https?|ftp|file)://[-A-Za-z0-9\+&@#/%?=~_|!:,.;]*[-A-Za-z0-9\+&@#/%=~_|]' + if [[ $adres =~ $urlkont ]];then + if [[ $adres =~ "::" ]];then + adres2=$(echo $adres | cut -d':' -f-2) + ryaz 32 "$adres2 indiriliyor." + $_kk_indir $adres2 + else + ryaz 32 "$adres indiriliyor." + $_kk_indir $adres + fi + else + ryaz 32 "$adres kopyalanıyor." + [ -f $konum/$adres ] && cp $konum/$adres . + fi + done + fi +} + paket_derle(){ #parametre olarak direk konum gelecek #eski derleme kalıntılarını temizle @@ -819,12 +1145,10 @@ paket_derle(){ konum="$1" derpaket=`basename $1` else - sonuc="`find "$talimatname_dizin" -name $1`" - eksonuc="`find "$ektalimatname" -name $1`" - if [ -f "$sonuc/talimat" ];then - konum=$sonuc - elif [ -f "$eksonuc/talimat" ];then - konum=$eksonuc + konum=$(talimat_bul $1) + if [[ $konum == "-1" || $konum == "0" ]];then + ryaz 31 "$1 $_talimat_bulunamadi" + exit 1 fi derpaket="$1" fi @@ -853,7 +1177,7 @@ paket_derle(){ fi mv *.mps.lz ../ else - ryaz 32 "paket zaten kurulu,yine de derlemek için: + ryaz 32 "$_zaten $_paket_kurulu,yine de derlemek için: mps -zd $derpaket" fi cd .. @@ -865,30 +1189,12 @@ paket_derle(){ } - bagimlilar_eski(){ local bagimd konum - konum="`find "$talimatname_dizin" -name $1`" - if [ -f "$konum/talimat" ];then - bagimd=`cat $konum/talimat | grep "Depends on" | cut -d':' -f2` - - if [ -n "$bagimd" ]; then - bagimd=`echo "$bagimd" | sed 's/,/ /g'` - #sıralı gösterme - echo `echo "$bagimd" | sed 's/,/ /g'` - fi - else - echo "talimatyok" - exit 1 - fi -} - -bagimlilar(){ - local bagimd konum - konum="`find "$talimatname_dizin" -name $1`" + konum="`find "$talimatname" -name $1`" konumek="`find "$ektalimatname" -name $1`" if [ -f "$konum/talimat" ];then - bagimd=`cat $konum/talimat | grep "Depends on" | cut -d':' -f2` + bagimd=`cat $konum/talimat | grep "Gerekler" | cut -d':' -f2` if [ -n "$bagimd" ]; then bagimd=`echo "$bagimd" | sed 's/,/ /g'` @@ -896,7 +1202,7 @@ bagimlilar(){ echo `echo "$bagimd" | sed 's/,/ /g'` fi elif [ -f "$konumek/talimat" ];then - bagimd=`cat $konumek/talimat | grep "Depends on" | cut -d':' -f2` + bagimd=`cat $konumek/talimat | grep "Gerekler" | cut -d':' -f2` if [ -n "$bagimd" ]; then bagimd=`echo "$bagimd" | sed 's/,/ /g'` @@ -909,32 +1215,42 @@ bagimlilar(){ fi } -ters_bagimli_bilgi_eski(){ - gentalimatlar=$(ls $talimatname_dizin/genel/) - for tal in $gentalimatlar;do - #echo $tal - bagimd=`cat $talimatname_dizin/genel/$tal/talimat | grep "Depends" | cut -d':' -f2` - if [ -n "$bagimd" ]; then - bagimd=`echo "$bagimd" | sed 's/,/ /g'` - for bag in $bagimd;do - if [ $bag = $1 ];then - echo $tal - fi - done - fi - done +##_ bagimlilar() : talimatta yer alan gereklerin listesinin alınması. +bagimlilar(){ + local bagimd konum + konum=$(talimat_bul $1) + if [[ $konum != "-1" && $konum != "0" ]];then + bagimd=`cat $konum/talimat | grep "Gerekler" | cut -d':' -f2` + bagimd=$(echo "$bagimd" | sed 's/,/ /g') + echo "$bagimd" + else + echo "$konum" + fi } ters_bagimli_bilgi(){ + local gtbpaket _sadece_kurulu + _sadece_kurulu="hepsi" gtbpaket=$1 + if [ ! -z "$2" ];then _sadece_kurulu="$2";fi tbgdosya=$(mktemp) - grep -rli "\s${gtbpaket}\s.*Depends\|Depends.*\s${gtbpaket}\s" $talimatname_dizin > $tbgdosya ; - grep -rli "\s${gtbpaket}\s.*Depends\|Depends.*\s${gtbpaket}\s" $ektalimatname >> $tbgdosya ; - grep -rli "\s${gtbpaket}\s.*Depends\|Depends.*\s${gtbpaket}$" $ektalimatname >> $tbgdosya ; - grep -rli "\s${gtbpaket}\s.*Depends\|Depends.*\s${gtbpaket}$" $talimatname_dizin >> $tbgdosya ; + grep -rli "\s${gtbpaket}\s.*Gerekler\|Gerekler.*\s${gtbpaket}\s" $talimatname > $tbgdosya ; + grep -rli "\s${gtbpaket}\s.*Gerekler\|Gerekler.*\s${gtbpaket}\s" $ektalimatname >> $tbgdosya ; + grep -rli "\s${gtbpaket}\s.*Gerekler\|Gerekler.*\s${gtbpaket}$" $ektalimatname >> $tbgdosya ; + grep -rli "\s${gtbpaket}\s.*Gerekler\|Gerekler.*\s${gtbpaket}$" $talimatname >> $tbgdosya ; cat $tbgdosya | xargs -I {} dirname {} | xargs -I {} basename {} | sort > /tmp/${gtbpaket}.tb.txt rm -f $tbgdosya - cat /tmp/${gtbpaket}.tb.txt + [ -f /tmp/${gtbpaket}.tbk.txt ] && rm -f /tmp/${gtbpaket}.tbk.txt + if [ $_sadece_kurulu = "kurulu" ];then + for _kurulu_pkt in $(cat /tmp/${gtbpaket}.tb.txt);do + if [ -d $VT/$_kurulu_pkt ];then + echo "$_kurulu_pkt" >> /tmp/${gtbpaket}.tbk.txt + fi + done + [ -f /tmp/${gtbpaket}.tbk.txt ] && cat "/tmp/${gtbpaket}.tbk.txt" + else + cat "/tmp/${gtbpaket}.tb.txt" + fi rm -rf $tbgdizin } @@ -955,7 +1271,7 @@ kirik_ters_bagimli_bilgi(){ bagimli_bilgi(){ local bagimd konum bag - bkonum="`find "$talimatname_dizin" -name $1`" + bkonum="`find "$talimatname" -name $1`" bekkonum="`find "$ektalimatname" -name $1`" if [ $bkonum ];then konum=$bkonum @@ -965,7 +1281,7 @@ bagimli_bilgi(){ ryaz 31 "$1 talimatı bulunamadı!" exit 1 fi - bagimd=`cat $konum/talimat | grep "Depends" | cut -d':' -f2` + bagimd=`cat $konum/talimat | grep "Gerekler" | cut -d':' -f2` if [ -n "$bagimd" ]; then bagimd=`echo "$bagimd" | sed 's/,/ /g'` #sıralı gösterme @@ -989,7 +1305,7 @@ bagimli_bilgi(){ bagimli_bilgi_dosyala(){ rm -f "/tmp/$1.gerekler.liste" local bagimd konum bag - bkonum="`find "$talimatname_dizin" -name $1`" + bkonum="`find "$talimatname" -name $1`" bekkonum="`find "$ektalimatname" -name $1`" if [ $bkonum ];then konum=$bkonum @@ -999,7 +1315,7 @@ bagimli_bilgi_dosyala(){ ryaz 31 "$1 talimatı bulunamadı!" exit 1 fi - bagimd=`cat $konum/talimat | grep "Depends" | cut -d':' -f2` + bagimd=`cat $konum/talimat | grep "Gerekler" | cut -d':' -f2` if [ -n "$bagimd" ]; then bagimd=`echo "$bagimd" | sed 's/,/ /g'` #sıralı gösterme @@ -1033,6 +1349,17 @@ silme_etkilenen_kontrol(){ done } +# bir paket ile kurulacak yeni paketlerin listesini verir. + +yeni_kurulacak_paketler(){ + [ -f /tmp/mevcut_kurulu.liste ] && rm -rf /tmp/mevcut_kurulu.liste + ls $VT > /tmp/mevcut_kurulu.liste + derleme_listyap $1 &> /dev/null + comm -13 <(sort /tmp/mevcut_kurulu.liste) <(sort tumgerekler.liste) + [ -f tumgerekler.liste ] && rm -rf tumgerekler.liste + [ -f gerek.liste ] && rm -rf gerek.liste +} + # iki dosyanın içerik karşılaştırması yapar. dosya_karsilastir(){ if cmp -s "$1" "$2" @@ -1058,8 +1385,8 @@ log_analiz(){ etkilenen_kurtar(){ local dizin paket paket=$1 - if [ -f /var/lib/pkg/DB/$paket/kurulan ];then - cat /var/lib/pkg/DB/$paket/kurulan | cut -d '>' -f2 > /tmp/$paket.sil + if [ -f $VT/$paket/kurulan ];then + cat $VT/$paket/kurulan | cut -d '>' -f2 > /tmp/$paket.sil for f in $(cat /tmp/$paket.sil) ; do dizin="${f%\'}" dizin="${dizin#\'}" @@ -1076,8 +1403,8 @@ etkilenen_kurtar(){ fi done if [ -f /tmp/$paket.kurtar ];then - mv /var/lib/pkg/DB/$paket/kurulan /var/lib/pkg/DB/$paket/ilk.kurulan - grep -v -F -x -f "/tmp/$paket.kurtar" "/tmp/$paket.sil" > /var/lib/pkg/DB/$paket/kurulan + mv $VT/$paket/kurulan $VT/$paket/ilk.kurulan + grep -v -F -x -f "/tmp/$paket.kurtar" "/tmp/$paket.sil" > $VT/$paket/kurulan ryaz 32 "$paket etkilenen dosyaları kurtarıldı." else ryaz 32 "$paket etkilenen dosyası yok." @@ -1092,22 +1419,24 @@ etkilenen_kurtar(){ ters_bagimli_kontrol(){ ters_bagimli_bilgi $1 cat /tmp/${1}.tb.txt | sort > tersb.liste - ls /var/lib/pkg/DB/ | sed "/$1/d" | sort > simdiki.liste + ls $VT/ | sed "/$1/d" | sort > simdiki.liste comm -12 tersb.liste simdiki.liste rm tersb.liste simdiki.liste } kurulu_kontrol(){ - if [ -d "$kokdizin/var/lib/pkg/DB/$1" ];then + local _konum _apaket + _apaket=$1 + if [ -d "$kokdizin$VT/$_apaket" ];then echo "kurulu" - exit 1 + exit 0 fi - if [[ $(find $talimatname_dizin -name $1) ]];then - echo "degil" - elif [[ $(find $ektalimatname -name $1) ]];then - echo "degil" - else + _konum=$(talimat_bul $_apaket) + + if [[ "$_konum" = "0" || "$_konum" = "-1" ]];then echo "tanimsiz" + else + echo "degil" fi exit 1 } @@ -1183,8 +1512,8 @@ tarihce_yukle(){ sil_onay="h" if [ -f $TARIHCE_DIZIN/"$1-pkvt.tar.lz" ];then bsdtar -p -o -C /tmp -xf $TARIHCE_DIZIN/"$1-pkvt.tar.lz" 2>/dev/null - ls /tmp/var/lib/pkg/DB/ > hedef.pkvt - ls /var/lib/pkg/DB/ > simdiki.pkvt + ls /tmp$VT/ > hedef.pkvt + ls $VT/ > simdiki.pkvt grep -v -F -x -f hedef.pkvt simdiki.pkvt > sil.liste grep -v -F -x -f simdiki.pkvt hedef.pkvt > kur.liste #rm hedef.pkvt simdiki.pkvt @@ -1226,6 +1555,8 @@ tarihce_yukle(){ ryaz 31 "ilgili tarihce dosyası bulunamadı!" hataloglama "ilgili tarihce dosyası bulunamadı!" fi + [ -f $PWD/hedef.pkvt ] && rm $PWD/hedef.pkvt + [ -f $PWD/simdiki.pkvt ] && rm $PWD/simdiki.pkvt } tarihce_sil(){ @@ -1277,43 +1608,84 @@ hataloglama(){ echo "$(date +'%F %T') $1" >> "$kokdizin/$LOGDIZIN/mps-hata.log" } -dosyadan_talimat_islem(){ - local dosya - dosya=$1 +indir_talimat_paketle(){ + local dosya _ip _talkonum + _wget="wget --quiet --no-check-certificate" + if [ ! -z "$1" ];then dosya=$1;else ryaz 31 "link parametre eksik";exit 1;fi + if [ ! -z "$2" ];then _ip=$2;else ryaz 31 "ip tipi parametresi eksik";exit 1;fi + if [ ! -z "$3" ];then _talkonum=$3;else ryaz 31 "talimatname konum parametre eksik";exit 1;fi + urlkont='(https?|ftp|file)://[-A-Za-z0-9\+&@#/%?=~_|!:,.;]*[-A-Za-z0-9\+&@#/%=~_|]' - if [[ $dosya =~ $urlkont ]] - then - ryaz 32 "talimat linkten cekilecek" + if [[ $dosya =~ $urlkont ]];then gdosya=`mktemp` - wget $2 $dosya -O $gdosya + if [[ $_ip =~ "-6" ]]; then + ryaz 32 "talimat ipv6 linkten cekilecek" + $_wget $_ip $dosya -O $gdosya + else + ryaz 32 "talimat ipv4 linkten cekilecek" + $_wget $_ip $dosya -O $gdosya + fi dosya=$gdosya - fi - if [[ $2 =~ "-6" ]]; then - ryaz 32 "talimat linkten cekilecek" - gdosya=`mktemp` - wget $2 $dosya -O $gdosya - dosya=$gdosya - fi - if [ ! -f $dosya ];then - ryaz 31 "$dosya talimat dosyasi yok!" - hataloglama "$dosya talimat dosyasi yok!" + else + ryaz 31 "link geçersiz" exit 1 fi - local paketisim - paketisim=`grep -ri 'name=' $dosya | cut -d'=' -f 2` - if [ ! -n "$paketisim" ]; then - ryaz 31 "paket ismi degiskeni bulunamadı!" - hataloglama "paket ismi degiskeni bulunamadı!" + if [ ! -f $dosya ];then + ryaz 31 "$dosya talimat dosyasi yok!" exit 1 fi - if [ ! -f /root/talimatname/genel/$paketisim ];then - mkdir /root/talimatname/genel/$paketisim - cp -f $dosya /root/talimatname/genel/$paketisim/talimat + + local _isim + _isim=() + _isim=`grep 'name=' $dosya | cut -d'=' -f 2` + paketisim="${_isim[0]}" + if [ ! -n "$paketisim" ]; then + ryaz 31 "paket ismi degiskeni bulunamadı!" + exit 1 + fi + if [ ! -d $_talkonum/${paketisim:0:1}/$paketisim ];then + mkdir -p $_talkonum/${paketisim:0:1}/$paketisim + cp -f $dosya $_talkonum/${paketisim:0:1}/$paketisim/talimat + talimat_degisken_cevrim $_talkonum/${paketisim:0:1}/$paketisim/talimat ryaz 32 "$paketisim talimatı hazırlandı." else ryaz 31 "$paketisim talimatı zaten talimatnamede var!" - hataloglama "$paketisim talimatı zaten talimatnamede var!" + fi +} + +talimat_degisken_cevrim(){ + _dosya=$1 + if [ -f $_dosya ];then + sed -i 's/name=/isim=/g' $_dosya + sed -i 's/$name/$isim/g' $_dosya + sed -i 's/${name}/${isim}/g' $_dosya + sed -i 's/version=/surum=/g' $_dosya + sed -i 's/$version/$surum/g' $_dosya + sed -i 's/${version}/${surum}/g' $_dosya + sed -i 's/${version%.*}/${surum%.*}/g' $_dosya + sed -i 's/release=/devir=/g' $_dosya + sed -i 's/$release/$devir/g' $_dosya + sed -i 's/${release}/${devir}/g' $_dosya + sed -i 's/source=/kaynak=/g' $_dosya + sed -i 's/build()/derle()/g' $_dosya + sed -i 's/build ()/derle()/g' $_dosya + sed -i 's/Description:/Tanım:/g' $_dosya + sed -i 's/Description=/Tanım:/g' $_dosya + sed -i 's/Url=/Url:/g' $_dosya + sed -i 's/description:/Tanım:/g' $_dosya + sed -i 's/Description :/Tanım:/g' $_dosya + sed -i 's/Packager:/Paketçi:/g' $_dosya + sed -i 's/packager:/Paketçi:/g' $_dosya + sed -i 's/Packagers:/Paketçi:/g' $_dosya + sed -i 's/Packager :/Paketçi:/g' $_dosya + sed -i 's/Depends on:/Gerekler:/g' $_dosya + sed -i 's/Depends:/Gerekler:/g' $_dosya + sed -i 's/Depends on :/Gerekler:/g' $_dosya + sed -i '/Maintainer:/d' $_dosya + sed -i '/Optional:/d' $_dosya + else + ryaz 31 "ilgili talimat dosyası bulunamadı." fi } @@ -1321,30 +1693,30 @@ talimat_olustur(){ if [ "$1" = '?' ];then ryaz 34 "kullanım : mps -to paket_ismi" else - local name - name=$1 - mkdir -p $name - tee "$name/talimat" > /dev/null < /dev/null <& $LOGDIZIN/mps-git.log if grep -q "Already\ up-to-date" $LOGDIZIN/mps-git.log; then - ryaz 32 "git deposu güncel." + ryaz 32 "$_git_guncel" else #ryaz 32 `cat $LOGDIZIN/mps-git.log` - ryaz 32 "git deposu güncellendi." + ryaz 32 "$_git_guncellendi" fi #baslangic betiklerinin guncellenmesi rsync -aviz -q --delete /sources/milis.git/rootfs/lib/services/* /lib/services/ fi - cd `dirname $talimatname_dizin` - ryaz 33 "yerele eşitleniyor." - rm -r $talimatname_dizin - mkdir -p $talimatname_dizin - rsync -aviz -q --delete $DERLEME_KAYNAKDIZIN/milis.git/talimatname/ $talimatname_dizin - rm -r `dirname $talimatname_dizin`/bin/* - rsync -aviz -q --delete $DERLEME_KAYNAKDIZIN/milis.git/bin/ `dirname $talimatname_dizin`/bin - rm -r `dirname $talimatname_dizin`/ayarlar/* - rsync -aviz -q --delete $DERLEME_KAYNAKDIZIN/milis.git/ayarlar/ `dirname $talimatname_dizin`/ayarlar + cd `dirname $talimatname` + ryaz 33 "$_yerel_esitleniyor" + rm -r $talimatname + mkdir -p $talimatname + rsync -aviz -q --delete $DERLEME_KAYNAKDIZIN/milis.git/talimatname/ $talimatname + rm -r `dirname $talimatname`/bin/* + rsync -aviz -q --delete $DERLEME_KAYNAKDIZIN/milis.git/bin/ `dirname $talimatname`/bin + rm -r `dirname $talimatname`/ayarlar/* + rsync -aviz -q --delete $DERLEME_KAYNAKDIZIN/milis.git/ayarlar/ `dirname $talimatname`/ayarlar #ikili dosyaların /usr/bin altına kısayol atılması for i in /root/bin/*; do j=`basename $i` @@ -1385,7 +1757,7 @@ git_guncelle() { ln -s /root/bin/$j /usr/bin/$j fi done - ryaz 32 "yerele eşitleme tamam." + ryaz 32 "$_yerel_esitlendi" } git_proje_kur(){ @@ -1489,39 +1861,18 @@ servisler_kontrol(){ done } -paketvt_guncelle_eski(){ - temel_tarihce_kontrol - wget -q --spider "$sunucu""paket.vt" - #if wget -P /tmp -q "$sunucu""paket.vt" > /dev/null; then - if [ $? -eq 0 ]; then - ryaz 32 $sunucu - ryaz 32 "paket veritabanı güncelleniyor." "$paketdepo""paket.vt" - if [ -f "$paketdepo""paket.vt" ];then - mv "$paketdepo""paket.vt" "$paketdepo""paket.vt.eski" - fi - wget -q --show-progress -P "$paketdepo" "$sunucu""paket.vt" - #rm /tmp/paket.vt* - mps -kudo - exit 1 - fi - ryaz 31 "paket veritabanı güncelleme olumsuz." - hataloglama "paket veritabanı güncelleme olumsuz." -} - - talimat_bilgi(){ - local konum HEAD - bkonum="`find "$talimatname_dizin" -name $1`" - bekkonum="`find "$ektalimatname" -name $1`" - if [ $bkonum ];then - konum=$bkonum - elif [ $bekkonum ];then - konum=$bekkonum - else - ryaz 31 "$1 talimatı bulunamadı!" + local _konum _apaket + _apaket=$1 + _konum=$(talimat_bul $_apaket) + if [[ "$_konum" = "0" || "$_konum" = "-1" ]];then + ryaz 31 "$_apaket $_paket_tanimsiz" exit 1 + else + grep "build()" -B 12 $_konum/talimat |sed '$ d' + ryaz 32 "file://$_konum/talimat" + ryaz 32 "https://raw.githubusercontent.com/milisarge/malfs-milis/master/$(echo $_konum | cut -d'/' -f3-6)/talimat" fi - grep -B 12 "build()" $konum/talimat } sistem_kontrol(){ @@ -1553,7 +1904,7 @@ kirik_kontrol_sistem(){ local onek sonek onek="'" sonek="'" - for paket in `ls /var/lib/pkg/DB/` + for paket in `ls $VT/` do ryaz 33 $paket "kontrol ediliyor." kirik_kontrol_paket $paket @@ -1687,7 +2038,7 @@ kurulum_dogrulama_icerik(){ mps -k "$paketdepo/$paketadi#"*.mps.lz ryaz 32 "$paketadi hasarlı kurulum onarıldı." else - ryaz 31 "$paketadi kurulu değil!" + ryaz 31 "$paketadi $_paket_kurulu_degil" fi } @@ -1767,7 +2118,7 @@ paketvt_guncelle(){ wget --no-check-certificate -q --spider "$pktsunucu""paket.vt" if [ $? -eq 0 ]; then ryaz 32 $pktsunucu - ryaz 32 "paket veritabanı güncelleniyor." "$paketdepo""$pktvt" + ryaz 32 "$_paketvt_guncelleniyor" "$paketdepo""$pktvt" if [ -f "$paketdepo""$pktvt" ];then mv "$paketdepo""$pktvt" "$paketdepo""$pktvt.eski" fi @@ -1810,17 +2161,19 @@ paket_indir(){ else mkontdeg=`sha1sum "$paketdepo$pkt" | cut -d' ' -f1` if [ "$ekontdeg" != "$mkontdeg" ];then - ryaz 31 "sha1sum uyusmaslik tesbit edildi,paket tekrar indiriliyor." - hataloglama "sha1sum uyusmaslik tesbit edildi,paket tekrar indiriliyor." + ryaz 31 "$_shasum_uyumsuzluk,paket tekrar indiriliyor." + hataloglama "sha1sum uyusmaslik tespit edildi,paket tekrar indiriliyor." rm -f "$paketdepo$pkt" paket_indir "$1" + #else + #ryaz 32 "$_zaten $1 $_paket_onbellek_depoda_var" fi fi else ryaz 31 "$1 paketi bulunamadı $pktsunucu dan silinmiş olmalı!" fi else - ryaz 31 "$pktsunucu-$1 paketi bulunmuyor!" + ryaz 31 "$pktsunucu $1 paketi bulunmuyor!" fi done else @@ -1887,7 +2240,7 @@ agdan_kur(){ surumler=$(ls "$paketdepo$1#"* | wc -l) if [ $surumler = 1 ];then icerik_ekle $(ls "$paketdepo$1#"*) - elif [ $surumler > 1 ];then + elif [ $surumler -gt 1 ];then ryaz 31 "$1 paketinin birden fazla sürümü var!" kurulacak_guncel_paket=$(ls -1t "$paketdepo$1#"* | head -1) ryaz 32 "$kurulacak_guncel_paket sürümü kuruluyor" @@ -1952,14 +2305,20 @@ ayarlar() { exit 0 ;; ### mps zorsil|-sz paketismi = ilgili paketi onaysız kaldırır. -sz|zorsil) - paket_sil "$2" "evet";; + paket_sil "$2" "evet" + exit 0 ;; ### mps gsil paketismi = ilgili paketi güvenli(ters bağımlılıklarına da bakarak) kaldırır. gsil) - paket_sil "$2" "hayir" "evet";; - ### mps -S|silgrub paketismi = ilgili paketi altbağımlılıklarını da sorarak kaldırır. - -S|silgrub) + paket_sil "$2" "hayir" "evet" + exit 0 ;; + ### mps -S paketismi = ilgili paketi altbağımlılıklarını da sorarak kaldırır. + -S) paket_sil_gerekli "$2" exit 0 ;; + ### mps -Sz paketismi = ilgili paketi altbağımlılıklarını da sormadan sırayla kaldırır. + -Sz) + paket_sil_gerekli "$2" "oto" + exit 0 ;; ### mps ara aranan = paket isimleri ve açıklamalarında anahtar kelime arar. -pa|ara) paket_ara "$2" @@ -1982,7 +2341,7 @@ ayarlar() { exit 0 ;; ### mps odkp paketismi = bir paketi bağımlılık zinciri çıkarıp gereklileri önce kurar gerekli olanları derler,paketler ve kurar. odkp) - if [ -d "$talimatname_dizin/temel/$2" ] ; then + if [ -d "$talimatname/temel/$2" ] ; then ryaz 31 "temel paket için odkp kullanılamaz!" exit 1 fi @@ -1995,7 +2354,8 @@ ayarlar() { paket_derle_liste "$2" ;; ### mps derle paketismi = paketismi için bağımlılık zinciri çıkarıp gerekli tüm paketleri derler,paketler ve kurar. derle) - paket_derle_kur "$2" ;; + paket_derle_kur "$2" + exit 0 ;; -ok|--pkok) paket_kur_oto "$2" ;; -okz) @@ -2031,13 +2391,13 @@ ayarlar() { pypaket=`echo "$2" | cut -d'-' -f 2` echo $pypaket "pip2 ile kurulacak" pip install $pypaket - exit 1 + exit 0 fi if [[ "$2" == "py3-"* ]]; then pypaket=`echo "$2" | cut -d'-' -f 2` echo $pypaket "pip3 ile kurulacak" pip3 install $pypaket - exit 1 + exit 0 fi if [[ "$2" == *"mps.lz"* ]]; then if [ "$3" == "-kok" ] && [ -d "$4" ]; then @@ -2049,6 +2409,14 @@ ayarlar() { paket_inkur_oto "$2" fi exit 0 ;; + ### mps kaynak paketismi = ilgili paketin kaynak kodunu indirir. + kaynak) + if [ ! "$2" ]; then + ryaz 31 "paket ismi eksik" + exit 1 + fi + kaynak_kod_indir "$2" + exit 0 ;; # özel git projesi kurmak için gitkur) git_proje_kur "$2" ;; @@ -2061,52 +2429,59 @@ ayarlar() { op_sil "$2" ;; ### mps serkur paketismi = ilgili paketin servisini kurar serkur) - servis_kur "$2" ;; + servis_kur "$2" + exit 0 ;; ### mps sersil paketismi = ilgili paketin servisini siler sersil) - servis_sil "$2" ;; + servis_sil "$2" + exit 0 ;; ### mps serkon paketismi = servislerin değişmemezlik kontrolünü yapar. serkon) - servisler_kontrol ;; + servisler_kontrol + exit 0 ;; ### mps kurkos paketismi = ilgili paketin kurulumdan sonraki çalışması gereken betiğini çalıştırır. kurkos) local pkt - pkt="`find $talimatname_dizin -name $2`" + pkt=$(talimat_bul $2) if [ -f $pkt/$2.kur-kos ];then bash $pkt/$2.kur-kos else ryaz 31 "$2 kur-kos yok!" hataloglama "$2 kur-kos yok!" - fi ;; + exit 1 + fi;; ### mps koskur paketismi = ilgili paketin kurulumdan önceki çalışması gereken betiğini çalıştırır. koskur) local pkt - pkt="`find $talimatname_dizin -name $2`" + pkt=$(talimat_bul $2) if [ -f $pkt/$2.kos-kur ];then bash $pkt/$2.kos-kur else ryaz 31 "$2 kos-kur yok!" hataloglama "$2 kos-kur yok!" + exit 1 fi ;; ### mps silkos paketismi = ilgili paketin silindikten sonraki çalışması gereken betiğini çalıştırır. silkos) local pkt - pkt="`find $talimatname_dizin -name $2`" + pkt=$(talimat_bul $2) if [ -f $pkt/$2.sil-kos ];then bash $pkt/$2.sil-kos else ryaz 31 "$2 sil-kos yok!" hataloglama "$2 sil-kos yok!" + exit 1 fi ;; ### mps kossil paketismi = ilgili paketin silindikten önceki çalışması gereken betiğini çalıştırır. kossil) local pkt - pkt="`find $talimatname_dizin -name $2`" + pkt=$(talimat_bul $2) if [ -f $pkt/$2.kos-sil ];then bash $pkt/$2.kos-sil else ryaz 31 "$2 kos-sil yok!" hataloglama "$2 kos-sil yok!" + exit 1 fi ;; ### mps -kdl paketismi = ilgili paketin sistemdeki kurulmuş olması gereken dosyalarını gösterir. -kdl) @@ -2117,7 +2492,7 @@ ayarlar() { fi kurulum_dosya_listele "$2" exit 0 ;; - ### mps -kkp paketismi = ilgili paketin çalışması için eksik olan dosyaları tesbit eder. + ### mps -kkp paketismi = ilgili paketin çalışması için eksik olan dosyaları tespit eder. -kkp) if [ ! "$2" ]; then ryaz 31 "paket ismi eksik" @@ -2171,20 +2546,26 @@ ayarlar() { paket_sil_oto "$2" ;; ### mps liste . = sistemde kurulu olan paket listesini verir. -kl|liste) - ls $VT ;; + ls $VT ;; + ### mps paketler grup_ismi = paket deposundaki paket listesini verir.(grup_ismi verilmezse tüm paketler) + -ptl|paketler) + paket_liste "$2" "$3" + exit 0 ;; + ### mps gruplar . = paket deposundaki paket grup listesini verir. + -pgl|gruplar) + paket_grup_liste "$2" + exit 0 ;; ### mps -dly paketismi = ilgili paketin genel ve tüm bağımlılık listesini verir,oluşturur. - -dly|--drly) - derleme_listyap "$2" ;; - -dly_eski|--drly) - derleme_listyap_eski "$2" ;; + -dly|dliste) + derleme_listyap "$2" + exit 0 ;; ### mps -kly paketismi = ilgili paketin ve kurulması gereken altgereklerini verir,oluştur. -kly) kurulum_listyap "$2" ;; - -dlb|--drlb) - derleme_listbilgi "$2";; - ### mps -b paketismi = ilgili paketin kurulum bilgilerini verir. - -b|--pkbl) - paket_bilgi "$2" ;; + ### mps -ykp paketismi = ilgili paketin kurulmak istenirse,kurulacak yeni paketleri listeler. + -ykp) + yeni_kurulacak_paketler "$2" + exit 0 ;; #sunucu bilgisi alma -sun2|sunucu) ryaz 32 $sunucu ;; @@ -2204,21 +2585,48 @@ ayarlar() { bagimli_bilgi "$2" "dogrula";; -bbd) bagimli_bilgi_dosyala "$2" ;; + ### mps -tb talimatismi = ilgili talimata gerek duyan(ters-gerekler) talimatları listeler. -tb|tersbag) - ters_bagimli_bilgi "$2" ;; - -tbk|--pktbk) + ters_bagimli_bilgi "$2" + exit 0;; + -tbk) ters_bagimli_kontrol "$2" ;; - ### mps bilgi paketismi = ilgili paketin talimat ve kurulum bilgilerini verir. - -talb|bilgi) + ### mps pka paketismi = ilgili paketin depo-gitdepo uyumluluğunu kontrol eder. + pka) + paket_analiz "$2" + exit 0;; + ### mps pda paketdepo = paketlerin olduğu dizindeki paketlerin depo-gitdepo uyumluluğunu kontrol eder. + pda) + paketdepo_analiz "$2" + exit 0 ;; + ### mps tbilgi paketismi = ilgili paketin talimat bilgilerini verir. + tbilgi) talimat_bilgi "$2" - paket_bilgi "$2" ;; + exit 0 ;; + ### mps -b paketismi = ilgili paketin kurulum bilgilerini verir. + -b) + if [ $2 ];then + touch "/tmp/mps_paket_bilgi_$2" + paket_bilgi "$2" "$3" | tee "/tmp/mps_paket_bilgi_$2" + [ $2 = "--html" ]; paket_bilgi_html "/tmp/mps_paket_bilgi_$2" + else + ryaz 31 "paket ismi eksik" + exit 1 + fi + exit 0 ;; + ### mps bilgi paketismi = ilgili paketin talimat ve kurulum bilgilerini verir. + bilgi) + paket_bilgi "$2" + talimat_bilgi "$2" + exit 0 ;; -to) if [ ! "$2" ]; then ryaz 31 "talimat ismi eksik" hataloglama "talimat ismi eksik" exit 1 fi - talimat_olustur "$2" ;; + talimat_olustur "$2" + exit 0 ;; ### mps log yyyy-aa-gg olay = mps.log verisi çekmek için (ör: mps log 2017-01-01 silindi) log) local logyardim @@ -2262,6 +2670,7 @@ ayarlar() { paket_sil "$2" "evet" && mps -ik $2 ;; ### mps -g paketismi = ilgili paketi tekil günceller. -g|--pkgu) + git_guncelle && paketvt_guncelle if [ ! "$2" ]; then ryaz 31 "paket ismi eksik" hataloglama "paket ismi eksik" @@ -2272,41 +2681,41 @@ ayarlar() { if [ "$durum" = "kurulu" ]; then paket_guncelle "$2" elif [ "$durum" = "degil" ]; then - ryaz 31 "$2 paketi kurulu degil!" - hataloglama "paketi kurulu degil!" + ryaz 31 "$2 $_paket_kurulu_degil" + hataloglama "$2 $_paket_kurulu_degil" else - ryaz 31 "$2 paketi tanımsız!" - hataloglama "paketi tanımsız!" - fi;; + ryaz 31 "$2 $_paket_tanimsiz" + hataloglama "$_paket_tanimsiz" + fi + exit 0 ;; #bagimliliklariyla beraber paket guncelleme-package updating with depencies -go|--pkgo) if [ ! "$2" ]; then - ryaz 31 "paket ismi eksik" - hataloglama "paket ismi eksik" + ryaz 31 "$_paket_adi_gerekli" exit 1 fi paket_guncelle_oto "$2";; ### mps -kk paketismi = ilgili paketin kurulu olma durumunu gösterir. -kk|--kurulu-kontrol) if [ ! "$2" ]; then - ryaz 31 "paket ismi eksik" - hataloglama "paket ismi eksik" + ryaz 31 "$_paket_adi_gerekli" exit 1 fi - ryaz 31 `kurulu_kontrol "$2"`;; + ryaz 31 `kurulu_kontrol "$2"` + exit 0 ;; -kudo) kurulum_dogrulama exit 0 ;; -kdi|dogrula) if [ ! "$2" ]; then - ryaz 31 "paket ismi eksik" + ryaz 31 "$_paket_adi_gerekli" exit 1 fi kurulum_dogrulama_icerik "$2" ;; -pid|pdogrula) kokdzn="" if [ ! "$2" ]; then - ryaz 31 "paket ismi eksik" + ryaz 31 "$_paket_adi_gerekli" exit 1 elif [ ! "$3" ]; then kokdzn="/" @@ -2331,8 +2740,13 @@ ayarlar() { -dps|depsil) depo_paketler_sil exit 0 ;; - -dota) - dosyadan_talimat_islem $2 $3 + ### mps link url_adres = verilen url adresindeki talimatı ektalimatname/topluluk altına inidirir. + link) + mkdir -p $ektalimatname/topluluk + indir_talimat_paketle $2 "-4" "$ektalimatname/topluluk" + exit 0 ;; + ti) + indir_talimat_paketle $2 "-4" "$talimatname/genel" exit 0 ;; -cf|--config-file) if [ ! "$2" ]; then @@ -2349,6 +2763,14 @@ ayarlar() { fi kurulan_dosya_bul "$2" exit 0 ;; + ### mps tgs talimat = ilgili talimatın kaynak kodunun yeni sürümü olup olmadığını kontrol eder. + tgs) + if [ ! "$2" ]; then + ryaz 31 "talimat ismi eksik" + exit 1 + fi + talimat_surum_takip "$2" + exit 0 ;; -tro) tarihce_yap exit 0 ;; @@ -2366,6 +2788,10 @@ ayarlar() { shift ;; -trl) tarihce_liste ;; + ### mps tdc talimat_dosyası = ilgili talimat dosyasının Türkçe değişken çevrimii yapar. + tdc) + talimat_degisken_cevrim $2 + exit 0 ;; -tamir-tk) tamir_temel_kurulan ;; dos) @@ -2385,9 +2811,7 @@ ayarlar() { exit 0 ;; -y|-h|yardim) - yardim_icerik;; - -h2|--help) - yardim + yardim_icerik exit 0 ;; *) ryaz 31 "Geçersiz Parametre! --> mps yardim " @@ -2399,27 +2823,6 @@ ayarlar() { yardim_icerik(){ cat /root/bin/mps | sed -e 's/^[ \t]*//' | sed -n '/^###/p' | sed '/ /s/^###//g' | awk '{split($0,a,"="); printf "%-6s %-13s %-18s %-40s \n",$1,$2,$3,a[2]}' } -yardim() { - cat <<_EOF - -$betikad $versiyon Milis Paket Sistemi - -Secenekler: - -G ikili paket veritabanını günceller - -Ggit git sunucusundan talimatname ve sistem gunceller - kur paket_ismi ilgili paketi bagimliliklariyla agdan cekip kurar - -s paket_ismi ilgili paketi kaldirir - -k paket_ismi yereldeki paketi bagimliliksiz kurar - -kl kurulu paket listesini verir - -kk paket_ismi ilgili paketin kurulu olma durumunu verir - -d paket_ismi ilgili paketin talimat dosyasına göre - sadece derler,paketler - -derle paket_ismi ilgili paketin talimat dosyasına göre bagimliliklariyla - beraber derler,paketler ve kurar. - -_EOF - exit 1 -} ana(){ if [ `id -u` = 0 ] ; then