From e8fc2d5480fcf0b63d8e2e54553c400cbfea78fb Mon Sep 17 00:00:00 2001 From: milisbir Date: Mon, 31 Jul 2017 02:21:22 +0300 Subject: [PATCH] mps --- bin/mps | 283 +++++---- bin/mps2 | 1847 ------------------------------------------------------ 2 files changed, 153 insertions(+), 1977 deletions(-) delete mode 100755 bin/mps2 diff --git a/bin/mps b/bin/mps index d6ea514a7..8077d8b1c 100755 --- a/bin/mps +++ b/bin/mps @@ -38,6 +38,7 @@ if [ -z ${yerelsil+:} ]; then fi if [ -z ${ektalimatname+:} ]; then ektalimatname="/root/talimatlar" + [ ! -d /root/talimatlar ] && mkdir -p /root/talimatlar fi @@ -225,7 +226,7 @@ yeniden_paketle(){ lzip -9 "$1".mps } -derleme_listyap(){ +derleme_listyap_eski(){ bagimlist=`bagimlilar "$1"` if [ "$bagimlist" != "talimatyok" ];then @@ -254,16 +255,28 @@ derleme_listyap(){ fi } -derleme_listyap_yeni(){ +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(){ + bagimlist=`bagimlilar "$1"` - echo $bagimlist + #echo $bagimlist if [ "$bagimlist" != "talimatyok" ];then for bagim in $bagimlist;do if [ "`cat tumbag.liste | grep $bagim`" != "$bagim" ];then derleme_listyap "$bagim" fi - echo "c" done if ! grep -Fxq "$1" tumbag.liste @@ -297,10 +310,11 @@ derleme_listbilgi(){ # -derlist paket_derle_liste(){ - for dpkt in `cat $1`;do + for dpktyer in `cat $1`;do + dpkt=`basename $dpktyer` echo $dpkt "derleniyor...." zorla_derle="yok" - paket_derle $dpkt + paket_derle $dpktyer done } @@ -308,7 +322,8 @@ paket_derle_liste(){ # -derle paket_derle_kur(){ tekrarkur="hayir" - mps -dly "$1" && mps -derlist bag.liste + derleme_listyap_kontrol + derleme_listyap "$1" && paket_derle_liste bag.liste } # odkp @@ -318,9 +333,9 @@ oto_derle_kur_paketle(){ paket_inkur_oto $1 && if [ -f "$talimatname_dizin/genel/$1/$1.sira" ];then ryaz 32 "sıralı derleme yapılacak." - mps -derlist "$talimatname_dizin/genel/$1/$1.sira" + paket_derle_liste "$talimatname_dizin/genel/$1/$1.sira" else - mps -derle $1 + paket_derle_kur $1 fi } @@ -382,7 +397,8 @@ paket_kur_liste_zorla(){ #otomatik kontrollu kur paket_kur_oto2(){ - mps -dly "$1" > /dev/null && mps -ok bag.liste + derleme_listyap_kontrol + derleme_listyap "$1" > /dev/null && mps -ok bag.liste } paket_inkur_liste_direk(){ @@ -403,17 +419,25 @@ paket_inkur_liste(){ # -kur paket_inkur_oto(){ local konum anakonum - mps -dly "$1" | grep "bulunamadı" - #derleme_listyap "$1" > mps.log && + derleme_listyap_kontrol + derleme_listyap "$1" | grep "bulunamadı" local kpkt - for kpkt in `cat bag.liste`;do + for paketkonum in `cat bag.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`" - if [ "`dosya_karsilastir $konum/talimat $anakonum/talimat`" = "evet" ];then - mps -ik "$kpkt" + ekkonum="`find "$ektalimatname" -name $kpkt`" + if [ -f "$anakonum/talimat" ];then + if [ "`dosya_karsilastir $konum/talimat $anakonum/talimat`" = "evet" ];then + agdan_kur "$kpkt" + else + ryaz 31 "$kpkt talimat eşitsizliğinden atlandı." + fi + elif [ -f "$ekkonum/talimat" ];then + agdan_kur "$kpkt" else - ryaz 31 "$kpkt talimat eşitsizliğinden kurulmadı." + ryaz 31 "$kpkt talimatı bulunamadı!" fi done rm -rf *.liste *.eski @@ -569,51 +593,56 @@ devir_kontrol(){ } paket_derle(){ + #parametre olarak direk konum gelecek #eski derleme kalıntılarını temizle if [ -d tmp.* ];then rm -r tmp.* fi kaynakdizin_kontrol - local konum derleme_onay eh bagimd + local konum derleme_onay eh bagimd derpaket derleme_onay="h" - konum="`find "$talimatname_dizin" -name $1`" - anakonum="`find "$ana_talimatname_dizin" -name $1`" + if [ -d "$1" ];then + konum="$1" + derpaket=`basename $1` + else + konum="`find "$talimatname_dizin" -name $1`" + #anakonum="`find "$ana_talimatname_dizin" -name $1`" + derpaket="$1" + fi if [ -d "$konum" ];then - mkdir -p tmp."$1" - cp -a $konum/* tmp."$1"/ - cd tmp."$1" + mkdir -p tmp."$derpaket" + cp -a $konum/* tmp."$derpaket"/ + cd tmp."$derpaket" # önce talimat-anatalimat karşılaştırması yapılır. #if [ "`dosya_karsilastir $konum/talimat $anakonum/talimat`" = "degil" ];then # zorla_derle="var" #fi # kurulu ve değişiklik yoksa derlenmez. - if [ "`kurulu_kontrol "$1"`" = "kurulu" ] && [ "$zorla_derle" = "yok" ];then + if [ "`kurulu_kontrol "$derpaket"`" = "kurulu" ] && [ "$zorla_derle" = "yok" ];then derleme_onay="h" else derleme_onay="e" fi if [ "$derleme_onay" = "e" ];then - ryaz 33 "$1" "derleniyor...." - #mpsd -d > /dev/null - #mpsd -d + ryaz 33 "$derpaket" "derleniyor...." echo "------------------------" - mpsd -d 2>&1|tee /tmp/"$1".log - if ( grep "^=======>" /tmp/"$1".log| tail -1 |grep "ERROR" > /dev/null);then - echo "derleme sisteminde hata oluştu -----> " /tmp/"$1".log + mpsd -d 2>&1|tee /tmp/"$derpaket".log + if ( grep "^=======>" /tmp/"$derpaket".log| tail -1 |grep "ERROR" > /dev/null);then + echo "derleme sisteminde hata oluştu -----> " /tmp/"$derpaket".log exit 1 fi if [ "$kurulum_onay" = "evet" ];then - for kpkt in `ls $1* | cut -d'#' -f1`;do + for kpkt in `ls $derpaket* | cut -d'#' -f1`;do mps -k "$kpkt#"* done fi mv *.mps.lz ../ else ryaz 32 "paket zaten kurulu,yine de derlemek için: - mps -zd $1" + mps -zd $derpaket" fi cd .. - rm -r tmp."$1" + rm -r tmp."$derpaket" else ryaz 31 "talimat dosyası bulunamadı." hataloglama "talimat dosyası bulunamadı." @@ -622,7 +651,7 @@ paket_derle(){ } -bagimlilar(){ +bagimlilar_eski(){ local bagimd konum konum="`find "$talimatname_dizin" -name $1`" if [ -f "$konum/talimat" ];then @@ -639,7 +668,7 @@ bagimlilar(){ fi } -bagimlilar_yeni(){ +bagimlilar(){ local bagimd konum konum="`find "$talimatname_dizin" -name $1`" konumek="`find "$ektalimatname" -name $1`" @@ -665,6 +694,7 @@ bagimlilar_yeni(){ fi } +#ektalimatname eklenecek bagimli_bilgi(){ local bagimd konum bag konum="`find "$talimatname_dizin" -name $1`" @@ -1372,6 +1402,86 @@ paket_indir(){ } +yerelden_kur(){ + local silme + pkontrol=`basename $1 | grep -w "mps.lz"` + if [ ! -z "$pkontrol" -a "$pkontrol" != "" ]; then + paketad=`echo "$1" | cut -d'#' -f1` + kkont=`kurulu_kontrol "$paketad"` + + if [ "$kkont" = "degil" ];then + icerik_ekle "$1" + elif [ "$kkont" = "kurulu" ];then + if [ "$tekrarkur" = "hayir" ];then + while true; do + ryaz 31 "$1 paketi zaten kurulu silinip kurulsun mu?" + read -p "e veya h -> " eh + case $eh in + [Ee]* ) silme="e"; break;; + [Hh]* ) break;; + * ) echo "e veya h";; + esac + done + fi + if [ "$silme" = "e" ];then + ryaz 33 "silinecekelerin kontrolu için" + paket_sil "$paketad" + icerik_ekle "$1" + fi + else + icerik_ekle "$1" + #while true; do + #ryaz 31 "$1 paketi talimatname dışı.Yine de kurulsun mu? (kokdizin=$kokdizin) " + #read -p "e veya h -> " eh + #case $eh in + # [Ee]* ) icerik_ekle "$1"; break;; + # [Hh]* ) break;; + # * ) echo "e veya h";; + #esac + #done + fi + else + ryaz 31 "yerelde mps paketi bulunamadı." + fi +} + +agdan_kur(){ + local kontroldeg + kkont=`kurulu_kontrol "$1"` + if [ "$kkont" = "degil" ] || [ "$tekrarkur" = "evet" ];then + pkt=`cat "$paketdepo""paket.vt" | grep "^$1 " | cut -d' ' -f3` + if [ ! -z "$pkt" -a "$pkt" != "" ]; then + cpaket="${pkt/'#'/'%23'}" + ryaz 33 "agdan cekiliyor:" "$1" + #paket sunucuda varsa + wget -q --spider "$sunucu$cpaket" + #if wget -P /tmp -q "$sunucu$cpaket" > /dev/null; then + if [ $? -eq 0 ]; then + #wget -P "$paketdepo" "$sunucu$cpaket" + paket_indir "$1" + + if [ "$kurulum_onay" = "evet" ];then + if [ "$tekrarkur" = "evet" ];then + paket_sil "$1" "evet" + fi + icerik_ekle "$paketdepo$pkt" + exit 1 + fi + else + ryaz 31 "paket sunucuda yok!" + hataloglama "paket sunucuda yok!" + fi + else + ryaz 31 "$1 paket sunucuda yok!( mps -G komutuyla güncelleme yapınız. )" + hataloglama "$1 paket sunucuda yok!( mps -G komutuyla güncelleme yapınız. )" + fi + else + ryaz 32 "$1 paketi zaten kurulu!" + #hataloglama "$1 paketi zaten kurulu!" + fi + #exit 1 +} + yardim(){ echo "yardim" } @@ -1382,22 +1492,22 @@ ayarlar() { while [ "$1" ]; do case $1 in -i|--indir) - ikaynak="ag" - kurulum_onay="olumsuz";; + kurulum_onay="olumsuz" + agdan_kur "$2" ;; -ik|--inku) if [ "$3" == "-kok" ] && [ -d "$4" ]; then kokdizin="$4" fi - ikaynak="ag" ;; + agdan_kur "$2" ;; -ikz|yekur) - ikaynak="ag" - tekrarkur="evet" ;; + tekrarkur="evet" + agdan_kur "$2" ;; -k|--yrku) if [ "$3" == "-kok" ] && [ -d "$4" ]; then kokdizin="$4" tekrarkur="evet" fi - ikaynak="yerel" ;; + yerelden_kur "$2" ;; -s|sil) if [[ "$2" == "py-"* ]]; then pypaket=`echo "$2" | cut -d'-' -f 2` @@ -1484,7 +1594,7 @@ ayarlar() { kokdizin="$4" tekrarkur="evet" fi - ikaynak="yerel" + yerelden_kur "$2" else paket_inkur_oto "$2" fi ;; @@ -1592,14 +1702,7 @@ ayarlar() { -kl|--kurulu-liste) ls $VT ;; -dly|--drly) - 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_kontrol derleme_listyap "$2" ;; -dlb|--drlb) derleme_listbilgi "$2";; @@ -1773,7 +1876,7 @@ $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 + 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 @@ -1790,86 +1893,6 @@ _EOF ana(){ if [ `id -u` = 0 ] ; then ayarlar "$@" - - if [ "$ikaynak" = "ag" ]; then - local kontroldeg - kkont=`kurulu_kontrol "$2"` - if [ "$kkont" = "degil" ] || [ "$tekrarkur" = "evet" ];then - pkt=`cat "$paketdepo""paket.vt" | grep "^$2 " | cut -d' ' -f3` - if [ ! -z "$pkt" -a "$pkt" != "" ]; then - cpaket="${pkt/'#'/'%23'}" - ryaz 33 "agdan cekiliyor:" "$2" - #paket sunucuda varsa - wget -q --spider "$sunucu$cpaket" - #if wget -P /tmp -q "$sunucu$cpaket" > /dev/null; then - if [ $? -eq 0 ]; then - #wget -P "$paketdepo" "$sunucu$cpaket" - paket_indir "$2" - - if [ "$kurulum_onay" = "evet" ];then - if [ "$tekrarkur" = "evet" ];then - paket_sil "$2" "evet" - fi - icerik_ekle "$paketdepo$pkt" - exit 1 - fi - else - ryaz 31 "paket sunucuda yok!" - hataloglama "paket sunucuda yok!" - fi - else - ryaz 31 "$2 paket sunucuda yok!( mps -G komutuyla güncelleme yapınız. )" - hataloglama "$2 paket sunucuda yok!( mps -G komutuyla güncelleme yapınız. )" - fi - else - ryaz 32 "$2 paketi zaten kurulu!" - hataloglama "$2 paketi zaten kurulu!" - fi - exit 1 - fi - - if [ "$ikaynak" = "yerel" ]; then - local silme - pkontrol=`basename $2 | grep -w "mps.lz"` - if [ ! -z "$pkontrol" -a "$pkontrol" != "" ]; then - paketad=`echo "$2" | cut -d'#' -f1` - kkont=`kurulu_kontrol "$paketad"` - - if [ "$kkont" = "degil" ];then - icerik_ekle "$2" - elif [ "$kkont" = "kurulu" ];then - if [ "$tekrarkur" = "hayir" ];then - while true; do - ryaz 31 "$2 paketi zaten kurulu silinip kurulsun mu?" - read -p "e veya h -> " eh - case $eh in - [Ee]* ) silme="e"; break;; - [Hh]* ) break;; - * ) echo "e veya h";; - esac - done - fi - if [ "$silme" = "e" ];then - ryaz 33 "silinecekelerin kontrolu için" - paket_sil "$paketad" - icerik_ekle "$2" - fi - else - icerik_ekle "$2" - #while true; do - #ryaz 31 "$2 paketi talimatname dışı.Yine de kurulsun mu? (kokdizin=$kokdizin) " - #read -p "e veya h -> " eh - #case $eh in - # [Ee]* ) icerik_ekle "$2"; break;; - # [Hh]* ) break;; - # * ) echo "e veya h";; - #esac - #done - fi - else - ryaz 31 "yerelde mps paketi bulunamadı." - fi - fi else sudo mps "$@" fi diff --git a/bin/mps2 b/bin/mps2 deleted file mode 100755 index 22e57a887..000000000 --- a/bin/mps2 +++ /dev/null @@ -1,1847 +0,0 @@ -#!/bin/bash -. /etc/mpsd.conf -if [ -f /etc/mps.conf ];then -. /etc/mps.conf -fi -. /root/bin/fonks.sh -versiyon="0.9.9" -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" -ikaynak="" -betikad=${0##*/} -kurulum_onay="evet" -talimatname_dizin="/root/talimatname" -ana_talimatname_dizin="/sources/milis.git/talimatname" -kokdizin="/" -VT="/var/lib/pkg/DB" -TARIHCE_DIZIN="/var/lib/pkg/tarihce" -LOGDIZIN="/var/log/mps" -tekrarkur="hayir" -logdosya=/var/log/mps/mps.log -#temel paket koruma -if [ -z ${tpk+:} ]; then - lokal="evet" -fi -if [ -z ${lokal+:} ]; then - lokal="tr" -fi -if [ -z ${docsil+:} ]; then - docsil="evet" -fi -if [ -z ${yerelsil+:} ]; then - yerelsil="silme" -fi -if [ -z ${ektalimatname+:} ]; then - ektalimatname="/root/talimatlar" - [ ! -d /root/talimatlar ] && mkdir -p /root/talimatlar -fi - - -icerik_ekle(){ - paketad=`echo "$1" | cut -d'#' -f1` - paketad=`basename $paketad` - ryaz 34 $paketad" paketi kuruluyor-> $kokdizin" - tar -C /tmp --extract --file=$1 .PRE 1 2> /tmp/$paketad_pre.log - #kos-kur kontrolu - if [ -f /tmp/.PRE ];then - if [ "$kokdizin" == "/" ];then - bash /tmp/.PRE - else - cp /tmp/.PRE $kokdizin/tmp/$paketad.PRE - fi - rm /tmp/.PRE - fi - mkdir -p kur.$paketad && - tar xf $1 -C kur.$paketad && - #istenmeyen yerellerin silinmesi - if [ -d kur.$paketad/usr/share/locale ] && [ "$yerelsil" == "evet" ];then - for lkl in `ls kur.$paketad/usr/share/locale/`;do - if [ "$lkl" != "$lokal" ];then rm -r kur.$paketad/usr/share/locale/$lkl; fi - done - fi - #doc dizini silinmesi - 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" && - 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 && - - #kur-kos calistirilmasi - if [ -f kur.$paketad/.POST ];then - if [ "$kokdizin" == "/" ];then - bash kur.$paketad/.POST - else - cp kur.$paketad/.POST $kokdizin/tmp/$paketad.POST - fi - rm kur.$paketad/.POST - fi - - rm -r kur.$paketad - if [ -f $kokdizin/etc/ld.so.conf ];then - ldconfig -r $kokdizin - fi - ryaz 34 $paketad" paketi kuruldu." - loglama "$paketad paketi kuruldu." - -} - -paket_sil(){ - local paket kkont sil_onay oto_silme - paket="$1" - if [ "$2" ]; then - oto_silme="$2" - fi - if [ "$tpk" = "evet" ] && [ -d "$talimatname_dizin/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 - #dizin koruma - kurban_kurtar $1 - cat /var/lib/pkg/DB/$paket/kurulan | cut -d '>' -f2 > /tmp/$paket.sil - ryaz 31 "ters bagimliliklar" - ryaz 31 "------------------" - ters_bagimli_kontrol "$paket" - ryaz 31 "------------------" - ryaz 31 "kurban dosyalar" - ryaz 31 "------------------" - silme_kurban_kontrol /tmp/$paket.sil - ryaz 31 "------------------" - 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 - case $eh in - [Ee]* ) sil_onay="e"; break;; - [Hh]* ) break;; - * ) echo "e veya h";; - esac - done - fi - if [ "$sil_onay" = "e" ];then - [ -f "$talimatname_dizin/genel/$paket/$paket.kos-sil" ] && bash "$talimatname_dizin/genel/$paket/$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 -f /tmp/$paket.sil - else - rm -f /tmp/$paket.sil - fi - - else - ryaz 31 "kritik mesaj:kurulanlar dosyası yok." - hataloglama "kritik mesaj:kurulanlar dosyası yok." - fi - elif [ "$kkont" = "degil" ];then - ryaz 32 "paket zaten kurulu değil!" - hataloglama "paket zaten kurulu değil!" - else - ryaz 32 "paket tanımsız!" - hataloglama "paket tanımsız!" - fi - fi - -} -paket_ara(){ - paket="$1" - for pkt in `cat /depo/paketler/paket.vt | grep $paket | awk '{print $1}'`; do - pakdesc=$(find /root/talimatname -name "$pkt" | xargs -I % sed -n '1{p;q}' %/talimat | sed s'/# Description: //g'); - ryaz 34 "$pkt - $pakdesc"; - done -} -kelime_bul(){ - grep --color -H -ri "$1" /root/talimatname/ -} -paket_bilgi2(){ - local paket kkont - kkont=`kurulu_kontrol "$1"` - if [ "$kkont" = "kurulu" ];then - paket="$1" - cat /var/lib/pkg/DB/"$paket"/META - elif [ "$kkont" = "degil" ];then - echo "paket kurulu değil!" - else - echo "paket tanımsız!" - fi - -} - -paket_bilgi(){ - local paket kkont - 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}` - elif [ "$kkont" = "degil" ];then - echo "paket kurulu değil!" - else - echo "paket tanımsız!" - fi - -} - -yeniden_paketle(){ - cd $1 - bsdtar -r -f ../"$1".mps .META - bsdtar -r -f ../"$1".mps * - cd .. - lzip -9 "$1".mps -} - -derleme_listyap_eski(){ - bagimlist=`bagimlilar "$1"` - - 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`" - echo ${ana#"$talimatname_dizin"} - #sadece genel bagimliliklar derlenecek - echo "$1" >> tumbag.liste - if [ -d "$talimatname_dizin/genel/$1" ];then - echo "$1" >> bag.liste - fi - fi - else - ryaz 31 "$1 talimatı bulunamadı." - hataloglama "$1 talimatı bulunamadı." - exit 1 - fi -} - -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(){ - - 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 - fi - else - ryaz 31 "$1 talimatı bulunamadı." - hataloglama "$1 talimatı bulunamadı." - exit 1 - fi -} - - -derleme_listbilgi(){ - ryaz 34 "yapim asamasında" -} - -# -derlist -paket_derle_liste(){ - for dpktyer in `cat $1`;do - dpkt=`basename $dpktyer` - echo $dpkt "derleniyor...." - zorla_derle="yok" - paket_derle $dpktyer - done -} - -#otomatik derle kontrollu kur -# -derle -paket_derle_kur(){ - tekrarkur="hayir" - derleme_listyap_kontrol - derleme_listyap "$1" && paket_derle_liste bag.liste -} - -# odkp -oto_derle_kur_paketle(){ - mps -G - # mps -kur - paket_inkur_oto $1 && - if [ -f "$talimatname_dizin/genel/$1/$1.sira" ];then - ryaz 32 "sıralı derleme yapılacak." - paket_derle_liste "$talimatname_dizin/genel/$1/$1.sira" - else - paket_derle_kur $1 - fi -} - -paket_kur_oto(){ - local kpkt pkt pak kliste - if [ "$1" = "-H" ];then - ls *.mps.lz > "otokur.list" - kliste="otokur.list" - else - kliste="$1" - fi - for kpkt in `cat $kliste`;do - for pkt in `ls $kpkt* | cut -d'#' -f1`;do - pak=`ls "$pkt#"*` - mps -k "$pak" && paket_inkur_oto "$pkt" - done - done - rm -rf otokur.list -} - -paket_kur_oto_zorla(){ - local kpkt pkt pak kliste - if [ "$1" = "-H" ];then - ls *.mps.lz > "otokur.list" - kliste="otokur.list" - else - kliste="$1" - fi - for kpkt in `cat $kliste`;do - for pkt in `ls $kpkt* | cut -d'#' -f1`;do - pak=`ls "$pkt#"*` - paket_sil "$pkt" "evet" - mps -k "$pak" && paket_inkur_oto "$pkt" - done - done - rm -rf otokur.list -} - -paket_kur_liste(){ - local kpkt pkt pak - for kpkt in `cat $1`;do - for pkt in `ls $kpkt* | cut -d'#' -f1`;do - pak=`ls "$pkt#"*` - mps -k "$pak" - done - done -} - -paket_kur_liste_zorla(){ - local kpkt pkt pak - for kpkt in `cat $1`;do - for pkt in `ls $kpkt* | cut -d'#' -f1`;do - pak=`ls "$pkt#"*` - paket_sil "$kpkt" "evet" - mps -k "$pak" - done - done -} - -#otomatik kontrollu kur -paket_kur_oto2(){ - derleme_listyap_kontrol - derleme_listyap "$1" > /dev/null && mps -ok bag.liste -} - -paket_inkur_liste_direk(){ - local kpkt - for kpkt in `cat $1`;do - mps -ik "$kpkt" - done -} - -paket_inkur_liste(){ - local kpkt - for kpkt in `cat $1`;do - paket_inkur_oto "$kpkt" - done -} - -# otomatik kontrollu kur -# -kur -paket_inkur_oto(){ - local konum anakonum - derleme_listyap_kontrol - derleme_listyap "$1" | grep "bulunamadı" - #derleme_listyap "$1" > mps.log && - local kpkt - for paketkonum in `cat bag.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`" - ekkonum="`find "$ektalimatname" -name $kpkt`" - if [ -f "$anakonum/talimat" ];then - if [ "`dosya_karsilastir $konum/talimat $anakonum/talimat`" = "evet" ];then - mps -ik "$kpkt" - #ryaz 32 "kurulacak : $kpkt" - else - ryaz 31 "$kpkt talimat eşitsizliğinden atlandı." - fi - elif [ -f "$ekkonum/talimat" ];then - mps -ik "$kpkt" - #ryaz 32 "kurulacak2 : $kpkt" - else - ryaz 31 "$kpkt talimatı bulunamadı!" - fi - done - rm -rf *.liste *.eski -} - -paket_sil_oto(){ - local spkt - for spkt in `cat $1`;do - oto_silme="evet" - paket_sil "$spkt" "$oto_silme" - done -} - -paket_sil_oto_onayli(){ - local spkt - cat $1 - for spkt in `cat $1`;do - paket_sil "$spkt" - done -} - -paketsiz_talimatlar(){ - for talimat in `ls $talimatname_dizin/genel`;do - if [[ ! $(cat $paketdepo/paket.vt | grep $talimat#) ]] ;then - ack=`grep -e '# Description:' $talimatname_dizin/genel/$talimat/talimat | cut -d':' -f2` - printf '%s = %s \n' "$talimat" "$ack" - fi - done -} - -paket_guncelle(){ - surum_kontrol $1 - devir_kontrol $1 -} - -paket_guncelle_oto(){ - mps -dly "$1" > /dev/null && - local kpkt - for kpkt in `cat bag.liste`;do - mps -g "$kpkt" - done - rm bag.liste tumbag.liste -} - -sistem_guncelle(){ - tarihce_yap - # güncellemede atlanacak paketler. - esgec=(xorg xorg-font xorg-proto kernel-lts kernel-lts-src vlc) - local kpkt - local pk_guncelle - mps -GG - mps -G - 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" - else - ryaz 31 $kpkt "güncellemesi atlandı" - fi - - done -} - -surum_kontrol(){ - local ksurum version pkt dusuk yuksek durum - durum="belirsiz" - satir=`sed -n '7p' < /var/lib/pkg/DB/"$1"/META` - ksurum=${satir:1:${#satir}-1} - pkt="`find $talimatname_dizin -name $1`" - source $pkt/talimat - dusuk=`echo -e "$ksurum\n$version" | sort -V | head -n1` - - if [ "$ksurum" = "$version" ];then - durum="guncel" - ryaz 33 "$1 sürümü güncel" - else - if [ "$ksurum" = "$dusuk" ];then - durum="yukselt" - else - durum="dusur" - fi - gun_onay="h" - if [ "$durum" <> "guncel" ];then - while true; do - 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 - paket_sil "$1" "evet" - paket_inkur_oto $1 - ryaz 33 "$1 sürüm güncellemesi yapıldı" - else - ryaz 31 "$1 sürüm güncellemesi yapılmadı" - hataloglama "$1 sürüm güncellemesi yapılmadı" - fi - fi - fi - -} - -devir_kontrol(){ - local kdevir release pkt dusuk yuksek durum gun_onay - durum="belirsiz" - satir=`sed -n '8p' < /var/lib/pkg/DB/"$1"/META` - kdevir=${satir:1:${#satir}-1} - pkt="`find $talimatname_dizin -name $1`" - source $pkt/talimat - dusuk=`echo -e "$kdevir\n$release" | sort -V | head -n1` - - if [ "$kdevir" = "$release" ];then - durum="guncel" - ryaz 33 "$1 deviri güncel" - else - if [ "$kdevir" = "$dusuk" ];then - durum="yukselt" - else - durum="dusur" - fi - gun_onay="h" - if [ "$durum" <> "guncel" ];then - while true; do - 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 - ryaz 31 "$1 devir güncellemesi yapılmadı" - hataloglama "$1 devir güncellemesi yapılmadı" - fi - fi - fi -} - -paket_derle(){ - #parametre olarak direk konum gelecek - #eski derleme kalıntılarını temizle - if [ -d tmp.* ];then - rm -r tmp.* - fi - kaynakdizin_kontrol - local konum derleme_onay eh bagimd derpaket - derleme_onay="h" - if [ -d "$1" ];then - konum="$1" - derpaket=`basename $1` - else - konum="`find "$talimatname_dizin" -name $1`" - #anakonum="`find "$ana_talimatname_dizin" -name $1`" - derpaket="$1" - fi - if [ -d "$konum" ];then - mkdir -p tmp."$derpaket" - cp -a $konum/* tmp."$derpaket"/ - cd tmp."$derpaket" - # önce talimat-anatalimat karşılaştırması yapılır. - #if [ "`dosya_karsilastir $konum/talimat $anakonum/talimat`" = "degil" ];then - # zorla_derle="var" - #fi - # kurulu ve değişiklik yoksa derlenmez. - if [ "`kurulu_kontrol "$derpaket"`" = "kurulu" ] && [ "$zorla_derle" = "yok" ];then - derleme_onay="h" - else - derleme_onay="e" - fi - if [ "$derleme_onay" = "e" ];then - ryaz 33 "$derpaket" "derleniyor...." - echo "------------------------" - mpsd -d 2>&1|tee /tmp/"$derpaket".log - if ( grep "^=======>" /tmp/"$derpaket".log| tail -1 |grep "ERROR" > /dev/null);then - echo "derleme sisteminde hata oluştu -----> " /tmp/"$derpaket".log - exit 1 - fi - if [ "$kurulum_onay" = "evet" ];then - for kpkt in `ls $derpaket* | cut -d'#' -f1`;do - mps -k "$kpkt#"* - done - fi - mv *.mps.lz ../ - else - ryaz 32 "paket zaten kurulu,yine de derlemek için: - mps -zd $derpaket" - fi - cd .. - rm -r tmp."$derpaket" - else - ryaz 31 "talimat dosyası bulunamadı." - hataloglama "talimat dosyası bulunamadı." - fi - -} - - -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`" - konumek="`find "$ektalimatname" -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 - elif [ -f "$konumek/talimat" ];then - bagimd=`cat $konumek/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 -} - -bagimli_bilgi(){ - local bagimd konum bag - konum="`find "$talimatname_dizin" -name $1`" - bagimd=`cat $konum/talimat | grep "Depends" | cut -d':' -f2` - if [ -n "$bagimd" ]; then - bagimd=`echo "$bagimd" | sed 's/,/ /g'` - #sıralı gösterme - #echo `echo "$bagimd" | sed 's/,/ /g'` - #kurulu kontrollu gosterim - for bag in $bagimd;do - echo $bag "`kurulu_kontrol $bag`" - done - fi - echo "$1" "`kurulu_kontrol $1`" - -} - -bagimli_bilgi_dosyala(){ - rm -f "$1.gerekler.liste" - local bagimd konum bag - konum="`find "$talimatname_dizin" -name $1`" - bagimd=`cat $konum/talimat | grep "Depends" | cut -d':' -f2` - if [ -n "$bagimd" ]; then - bagimd=`echo "$bagimd" | sed 's/,/ /g'` - #sıralı gösterme - #echo `echo "$bagimd" | sed 's/,/ /g'` - #kurulu kontrollu gosterim - for bag in $bagimd;do - echo $bag >> "$1.gerekler.liste" - done - fi - echo "$1" >> "$1.gerekler.liste" - -} - -ters_bagimli(){ - local ara - ara=" $1 " - sy=`grep -o "/" <<<"$talimatname_dizin" | wc -l` - grep -rli "$ara" "$talimatname_dizin" | cut -d'/' -f`expr $sy + 3` -} - -silme_kurban_kontrol(){ - local dizin - for f in $(cat $1) ; do - dizin="${f%\'}" - dizin="${dizin#\'}" - if [ -d "$dizin" ];then - for g in `ls "$dizin"` ; do - if ! grep -Fxq " '$dizin/$g'" "$1" - then - echo "$dizin/$g" - fi - done - fi - done -} - -# iki dosyanın içerik karşılaştırması yapar. -dosya_karsilastir(){ - if cmp -s "$1" "$2" - then - echo "evet" - else - echo "degil" - fi -} - -log_analiz(){ - local zaman durum - zaman=$1 - durum=$2 - if [ -f "/var/log/mps/mps.log" ];then - cat $logdosya | grep "$zaman" | grep "$durum" | cut -d' ' -f3 - else - ryaz 31 "mps.log bulunamadı!" - hataloglama "mps.log bulunamadı!" - fi -} - -kurban_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 - for f in $(cat /tmp/$paket.sil) ; do - dizin="${f%\'}" - dizin="${dizin#\'}" - if [ -d "$dizin" ];then - for g in `ls "$dizin"` ; do - if ! grep -Fxq " '$dizin/$g'" "/tmp/$paket.sil" - then - if [ -f /tmp/$paket.kurtar ];then - rm /tmp/$paket.kurtar - fi - echo " '$dizin'" >> "/tmp/$paket.kurtar" - fi - done - 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 - ryaz 32 "$paket kurban dosyaları kurtarıldı." - else - ryaz 32 "$paket kurban dosyası yok." - fi - rm -f /tmp/$paket.sil - else - ryaz 31 "kurulan paket yok!" - hataloglama "kurulan paket yok!" - fi -} - -ters_bagimli_kontrol(){ - ters_bagimli "$1" | sort > tersb.liste - ls /var/lib/pkg/DB/ | 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 - echo "kurulu" - exit 1 - fi - if [[ $(find $talimatname_dizin -name $1) ]];then - echo "degil" - else - echo "tanimsiz" - fi - exit 1 -} - -sistem_kur(){ - local spaket - for spaket in `cat $1`;do - ./$betikad -ik "$spaket" -kok $2; - done -} - -kaynakdizin_kontrol(){ - if [ ! -d $DERLEME_KAYNAKDIZIN ];then - mkdir $DERLEME_KAYNAKDIZIN - fi -} - -logdizin_kontrol(){ - if [ ! -d $kokdizin$LOGDIZIN ];then - mkdir $kokdizin$LOGDIZIN - fi - if [ ! -d $kokdizin$LOGDIZIN/derleme ];then - mkdir $kokdizin$LOGDIZIN/derleme - fi - if [ ! -f $kokdizin$LOGDIZIN/mps.log ];then - touch $kokdizin$LOGDIZIN/mps.log - fi - if [ ! -f $kokdizin$LOGDIZIN/mps-hata.log ];then - touch $kokdizin$LOGDIZIN/mps-hata.log - fi - if [ ! -f $kokdizin$LOGDIZIN/mps-git.log ];then - touch $kokdizin$LOGDIZIN/mps-git.log - fi -} - -tarihce_dkontrol(){ - if [ ! -d $TARIHCE_DIZIN ];then - mkdir $TARIHCE_DIZIN - fi -} - -temel_tarihce_kontrol(){ - if [ ! -f $TARIHCE_DIZIN/temel-pkvt.tar.lz ];then - tarihce_olustur "temel" - fi -} - -tarihce_liste(){ - tarihce_dkontrol - ls $TARIHCE_DIZIN/ - -} - -tarihce_yap(){ - tarihce_dkontrol - local t_isim - if [ "$temel_tarihce" = "evet" ];then - t_isim="temel" - else - t_isim=`date +%m-%d-%y.%H%M%S` - fi - tarihce_olustur "$t_isim" -} - -tarihce_olustur(){ - bsdtar -P -r -f $TARIHCE_DIZIN/"$1"-pkvt.tar $VT - lzip -9 $TARIHCE_DIZIN/"$1"-pkvt.tar -} - -tarihce_yukle(){ - tarihce_dkontrol - local islem_onay cikis - 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 - 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 - rm -r /tmp/var - cikis="" - if [ -s sil.liste ];then - ryaz 32 "silinecekler" - ryaz 32 "------------" - cat sil.liste - fi - - if [ -s kur.liste ];then - ryaz 32 "kurulacaklar" - ryaz 32 "------------" - cat kur.liste - fi - if [ ! -s sil.liste ] && [ ! -s kur.liste ];then - ryaz 32 "sistem zaten hedef durumda!" - exit 1 - fi - while true; do - ryaz 34 "otomatik geri dönüşüm başlasın mı?";read -p "e veya h-> " eh - case $eh in - [Ee]* ) islem_onay="e"; break;; - [Hh]* ) break;; - * ) echo "e veya h";; - esac - done - if [ "$islem_onay" = "e" ];then - mps -os sil.liste - mps -kurul kur.liste - mv sil.liste silinenler.liste - mv kur.liste kurulanlar.liste - exit 1 - fi - mv sil.liste sil_iptal.liste - mv kur.liste kur_iptal.liste - else - ryaz 31 "ilgili tarihce dosyası bulunamadı!" - hataloglama "ilgili tarihce dosyası bulunamadı!" - fi -} - -tarihce_sil(){ - tarihce_dkontrol - if [ -f $TARIHCE_DIZIN/"$1-pkvt.tar.lz" ];then - rm -f $TARIHCE_DIZIN/"$1-pkvt.tar.lz" - else - ryaz 31 "ilgili tarihce dosyası bulunamadı!" - hataloglama "ilgili tarihce dosyası bulunamadı!" - fi -} - -sunucu_ayarla(){ - wget -q --spider "$1/paket.vt" - yenisun="$1" - if [ $? -eq 0 ]; then - sed -i.bak 's/^\(sunucu=\).*/\1"xverix\/"/' /etc/mps.conf - sed -i "s|xverix|$1|" /etc/mps.conf - mps -sun - else - ryaz 31 "Tanımsız paket sunucusu!" - hataloglama "Tanımsız paket sunucusu!" - fi -} - -loglama(){ - logdizin_kontrol - echo "$(date +'%F %T') $1" >> "$kokdizin/$LOGDIZIN/mps.log" -} - -hataloglama(){ - logdizin_kontrol - echo "$(date +'%F %T') $1" >> "$kokdizin/$LOGDIZIN/mps-hata.log" -} - -dosyadan_talimat_islem(){ - local dosya - dosya=$1 - urlkont='(https?|ftp|file)://[-A-Za-z0-9\+&@#/%?=~_|!:,.;]*[-A-Za-z0-9\+&@#/%=~_|]' - if [[ $dosya =~ $urlkont ]] - then - ryaz 32 "talimat linkten cekilecek" - gdosya=`mktemp` - wget $2 $dosya -O $gdosya - 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!" - 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ı!" - exit 1 - fi - if [ ! -f /root/talimatname/genel/$paketisim ];then - mkdir /root/talimatname/genel/$paketisim - cp -f $dosya /root/talimatname/genel/$paketisim/talimat - ryaz 32 "$paketisim talimatı hazırlandı." - else - ryaz 31 "$paketisim talimatı zaten talimatnamede var!" - hataloglama "$paketisim talimatı zaten talimatnamede var!" - fi -} - -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 <& $LOGDIZIN/mps-git.log - if grep -q "Already\ up-to-date" $LOGDIZIN/mps-git.log; then - ryaz 32 "git deposu güncel." - else - #ryaz 32 `cat $LOGDIZIN/mps-git.log` - ryaz 32 "git deposu güncellendi." - 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 - #ikili dosyaların /usr/bin altına kısayol atılması - for i in /root/bin/*; do - j=`basename $i` - if [ ! -f /usr/bin/$j ];then - ln -s /root/bin/$j /usr/bin/$j - fi - done - ryaz 32 "yerele eşitleme tamam." -} - -git_proje_kur(){ - local proje proj_dizin git_link - git_link="https://github.com/milisarge" - proje="$1" - proj_dizin="/opt" - mkdir -p $proj_dizin - if [ -d "$proj_dizin/$proje" ];then - cd $proj_dizin/$proje - git pull - - if [ -f mops ];then - . mops - mops_gun - fi - else - git clone "$git_link/$proje" "$proj_dizin/$proje" - cd $proj_dizin/$proje - - if [ -f mops ];then - . mops - mops_kur - mops_sil - mops_gun - fi - fi - -} - -op_kur(){ - local mopsyol mops - mops=$1 - mopsyol="~/mops/$mops" - # talimatnameye bak - if [ -d $mopsyol ]; then - $mopsyol/talimat kur - # yerelde ara - elif [ -f $PWD/"$mops" ]; then - ./"$mops" kur - else - ryaz 31 "$1 mops talimatı bulunamadı!" - fi - -} - -op_sil(){ - local mopsyol mops - mops=$1 - mopsyol="~/mops/$mops" - # talimatnameye bak - if [ -d $mopsyol ]; then - $mopsyol/talimat sil - # yerelde ara - elif [ -f $PWD/"$mops" ]; then - ./"$mops" sil - else - ryaz 31 "$1 mops talimatı bulunamadı!" - fi - -} - -servis_kur(){ - cd /sources/milis.git/ayarlar/servisler - if make kur-$1 - then - ryaz 32 "$1 servisi kuruldu" - else - ryaz 31 "$1 servisi kurulum olumsuz!!!" - hataloglama "$1 servisi kurulum olumsuz!!!" - fi - cd - -} - -servis_sil(){ - cd /sources/milis.git/ayarlar/servisler - if make sil-$1 - then - ryaz 32 "$1 servisi silindi" - else - ryaz 31 "$1 servisi silme olumsuz!!!" - hataloglama "$1 servisi silme olumsuz!!!" - fi - cd - -} - -servisler_kontrol(){ - servisler=`ls /sources/milis.git/ayarlar/servisler/mbd/init.d` - for ser in $(ls /etc/init.d/) ; do - if [ ! -f /sources/milis.git/ayarlar/servisler/mbd/init.d/$ser ];then - printf "%12s %s\n" "$ser mbd kaydı bulunamadı!" - else - if cmp -s "/sources/milis.git/ayarlar/servisler/mbd/init.d/$ser" "$ser" - then - printf "%12s %s\n" "$ser" "mbd uyumsuz" - else - #ryaz 32 "$ser mbd +++++" - printf "%12s %s\n" "$ser" "mbd +++++" - fi - fi - done -} - -paketvt_guncelle(){ - 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 - konum="`find "$talimatname_dizin" -name $1`" - HEAD=`grep -B 12 "build()" $konum/talimat` - echo $HEAD -} - -sistem_kontrol(){ - paketvt_kontrol - sunucu_kontrol -} - -sunucu_kontrol(){ - wget -q --spider $sunucu - if [ $? -eq 0 ]; then - ryaz 32 "paket sunucu aktif" - else - ryaz 31 "sunucu erişim dışı" - hataloglama "sunucu erişim dışı" - exit 1 - fi -} - -gitayar_kontrol(){ - if [ ! -f /root/.gitconfig ];then - git_ssl_iptal - git_otokimlik - fi -} - -kirik_kontrol_sistem(){ - local onek sonek - onek="'" - sonek="'" - for paket in `ls /var/lib/pkg/DB/` - do - ryaz 33 $paket "kontrol ediliyor." - kirik_kontrol_paket $paket - ryaz 33 $paket "kontrol edildi." - done -} - -kirik_kontrol_paket(){ - local onek sonek - onek="'" - sonek="'" - for kdosya in `kurulum_dosya_listele $1` - do - dosya=${kdosya#$onek} - dosya=${dosya%$sonek} - #echo "${dosya}" - if [ -f $dosya ];then - if [[ $(milis-ldd -d $dosya | grep not\ found) ]] ;then - echo $kdosya - fi - fi - done -} - -kurulum_dogrulama(){ - for kuruland in `ls $VT` - do - if [ ! -f "$VT/$kuruland/kurulan" ]; then - ryaz 32 "$kuruland hasarlı kurulum tesbiti!" - rm -r $VT/$kuruland - mps -i $kuruland - mps -k "$paketdepo/$kuruland"*.mps.lz - ryaz 32 "$kuruland hasarlı kurulum onarıldı." - fi - done -} - -kurulum_dogrulama_icerik(){ - paketadi="$1" - echo $VT - tarihce_yap - if [ -f "$VT/$paketadi/kurulan" ]; then - cat /var/lib/pkg/DB/$paketadi/kurulan | cut -d '>' -f2 > /tmp/$paketadi.sildog - for kuruland in `cat /tmp/$paketadi.sildog` - do - if [ ! -f "$kuruland" ]; then - ryaz 32 "$kuruland dosya hasarlı" - elif [ ! -d "$kuruland" ]; then - ryaz 32 "$kuruland dizin hasarlı" - fi - done - else - ryaz 32 "$paketadi hasarlı kurulum tesbiti!" - #if [ ! -d "$VT/$paketadi" ]; then - #rm -r $VT/$paketadi - #fi - #mps -i $paketadi - #mps -k "$paketdepo/$paketadi#"*.mps.lz - ryaz 32 "$paketadi hasarlı kurulum onarıldı." - fi -} - -kurulum_dosya_listele(){ - cat "$VT/$1/kurulan" -} - -# bir dosyanın kurulmuş hangi pakette olduğunu bulur. -kurulan_dosya_bul(){ - grep -rli "$1" "$VT/" | cut -d "/" -f6 -} - -paketvt_kontrol(){ - mkdir -p /depo/paketler - if [ ! -f /depo/paketler/paket.vt ];then - touch /depo/paketler/paket.vt - fi -} - -pvt_olustur(){ - if [ ! -f paket.vt ];then - touch paket.vt - fi - if [ -f "paket.vt" ];then - mv "paket.vt" "paket.vt.eski" - fi - ryaz 32 "paket.vt oluşturuluyor...." - for paket in `ls *.mps.lz` - do - paketad="`echo $paket|cut -d "#" -f1`" - shaek=`sha1sum $paket` - - echo $paketad $shaek >> paket.vt - done - ryaz 32 "paket.vt oluşturuldu." -} - -paket_indir(){ - local pkt - if [ -f "$paketdepo""paket.vt" ];then - pkt=`cat "$paketdepo""paket.vt" | grep "^$1 " | cut -d' ' -f3` - ekontdeg=`cat "$paketdepo""paket.vt" | grep "^$1 " | cut -d' ' -f2` - cpaket="${pkt/'#'/'%23'}" - wget -nc -q --show-progress -P "$paketdepo" "$sunucu$cpaket" - if [[ "$?" != 0 ]]; then - ryaz 31 "indirme hatalı" - hataloglama "indirme hatalı" - else - ryaz 34 "$1 indirildi" - fi - 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." - rm -f "$paketdepo$pkt" - paket_indir "$1" - fi - fi - - -} - -yardim(){ - echo "yardim" -} - - -ayarlar() { - - while [ "$1" ]; do - case $1 in - -i|--indir) - ikaynak="ag" - kurulum_onay="olumsuz";; - -ik|--inku) - if [ "$3" == "-kok" ] && [ -d "$4" ]; then - kokdizin="$4" - fi - ikaynak="ag" ;; - -ikz|--inkuzo) - ikaynak="ag" - tekrarkur="evet" ;; - -k|--yrku) - if [ "$3" == "-kok" ] && [ -d "$4" ]; then - kokdizin="$4" - tekrarkur="evet" - fi - ikaynak="yerel" ;; - -s|sil) - if [[ "$2" == "py-"* ]]; then - pypaket=`echo "$2" | cut -d'-' -f 2` - echo $pypaket "pip2 ile silinecek" - pip uninstall $pypaket - exit 1 - fi - if [[ "$2" == "py3-"* ]]; then - pypaket=`echo "$2" | cut -d'-' -f 2` - echo $pypaket "pip3 ile silinecek" - pip3 uninstall $pypaket - exit 1 - fi - paket_sil "$2" ;; - -sz|zorsil) - paket_sil "$2" "evet";; - -S|silgrub) - mps -bbd "$2" - paket_sil_oto_onayli "$2.gerekler.liste" ;; - -pa|ara) - paket_ara "$2" ;; - bul) - kelime_bul "$2" ;; - -d|--pkde) - zorla_derle="yok" - kurulum_onay="olumsuz" - paket_derle "$2" ;; - -zd|--pkzde) - zorla_derle="evet" - kurulum_onay="olumsuz" - paket_derle "$2" ;; - odkp) - oto_derle_kur_paketle "$2" ;; - -dk|--pkdk) - paket_derle "$2" ;; - -derlist) - paket_derle_liste "$2" ;; - -derle) - paket_derle_kur "$2" ;; - -ok|--pkok) - paket_kur_oto "$2" ;; - -okz) - paket_kur_oto_zorla "$2" ;; - -okl|--pkokl) - paket_kur_liste "$2" ;; - -oklz) - paket_kur_liste_zorla "$2" ;; - -kh) - local templist - templist=`mktemp` - ls *.mps.lz > $templist - mps -okz -H $templist ;; - -ko|--pkko) - paket_kur_oto2 "$2" ;; - -kuruld) - paket_inkur_liste_direk "$2" ;; - -kurul|kurul) - if [ -f $PWD/mps-liste ]; then - paket_inkur_liste mps-liste - else - paket_inkur_liste "$2" - fi ;; - -kur) - paket_inkur_oto "$2" ;; - kur) - if [[ "$2" == "py-"* ]]; then - pypaket=`echo "$2" | cut -d'-' -f 2` - echo $pypaket "pip2 ile kurulacak" - pip install $pypaket - exit 1 - fi - if [[ "$2" == "py3-"* ]]; then - pypaket=`echo "$2" | cut -d'-' -f 2` - echo $pypaket "pip3 ile kurulacak" - pip3 install $pypaket - exit 1 - fi - if [[ "$2" == *"mps.lz"* ]]; then - if [ "$3" == "-kok" ] && [ -d "$4" ]; then - kokdizin="$4" - tekrarkur="evet" - fi - ikaynak="yerel" - else - paket_inkur_oto "$2" - fi ;; - # özel git projesi kurmak için - gitkur) - git_proje_kur "$2" ;; - # otomatik poroje sistemi - # özel git projesi kurmak için - opk) - op_kur "$2" ;; - # özel git projesi silmek için - ops) - op_sil "$2" ;; - # ilgili paketin servisini kurar - serkur) - servis_kur "$2" ;; - # ilgili paketin servisini siler - sersil) - servis_sil "$2" ;; - # servislerin mbd kontrolu - serkon) - servisler_kontrol ;; - kurkos) - local pkt - pkt="`find $talimatname_dizin -name $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 ;; - koskur) - local pkt - pkt="`find $talimatname_dizin -name $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!" - fi ;; - silkos) - local pkt - pkt="`find $talimatname_dizin -name $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!" - fi ;; - kossil) - local pkt - pkt="`find $talimatname_dizin -name $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!" - fi ;; - -kdl) - if [ ! "$2" ]; then - ryaz 31 "paket ismi eksik" - hataloglama "(-kdl) paket ismi eksik" - exit 1 - fi - kurulum_dosya_listele "$2" ;; - #kırık kontrol paket: bir paketin sistemde kırık kontrolü - -kkp) - if [ ! "$2" ]; then - ryaz 31 "paket ismi eksik" - hataloglama "(-kkp) paket ismi eksik" - exit 1 - fi - kirik_kontrol_paket "$2" ;; - #kırık kontrol sistemi: sistemin bütün paketlerinin kırık kontrolü - -kks) - kirik_kontrol_sistem ;; - -pak|--paketle) - if [ ! "$2" ]; then - ryaz 31 "paketlenecek dizin ismi eksik" - hataloglama "paketlenecek dizin ismi eksik" - exit 1 - fi - yeniden_paketle "$2" ;; - -psk|--paksiskur) - if [ ! "$2" ]; then - ryaz 31 "paket liste yok" - hataloglama "paket liste yok" - exit 1 - fi - if [ ! "$3" ]; then - ryaz 31 "hedef dizin yok" - hataloglama "hedef dizin yok" - exit 1 - fi - sistem_kur "$2" "$3" ;; - -po) - pvt_olustur ;; - -os|--pkos) - if [ ! "$2" ]; then - ryaz 31 "silme listesi yok" - hataloglama "silme listesi yok" - exit 1 - fi - paket_sil_oto "$2" ;; - -kl|--kurulu-liste) - ls $VT ;; - -dly|--drly) - derleme_listyap_kontrol - derleme_listyap "$2" ;; - -dlb|--drlb) - derleme_listbilgi "$2";; - -b|--pkbl) - paket_bilgi "$2" ;; - #sunucu bilgisi alma - -sun|sunucu) - ryaz 32 $sunucu ;; - sun) - if [ ! "$2" ]; then - ryaz 31 "sunucu bilgi eksik" - hataloglama "sunucu bilgi eksik" - exit 1 - fi - sunucu_ayarla "$2" ;; - -bb|--pkbb) - bagimli_bilgi "$2" | column -t;; - -bbd) - bagimli_bilgi_dosyala "$2" ;; - -tb|--pktb) - ters_bagimli "$2" ;; - -tbk|--pktbk) - ters_bagimli_kontrol "$2" ;; - -talb|--talb) - talimat_bilgi "$2" | column -t;; - -to) - if [ ! "$2" ]; then - ryaz 31 "talimat ismi eksik" - hataloglama "talimat ismi eksik" - exit 1 - fi - talimat_olustur "$2" ;; - log) - local logyardim - logyardim="mps log zaman durum (ör: mps log 2017-01-01 silindi)" - if [ ! "$2" ]; then - ryaz 31 "zaman parametresi eksik" - hataloglama "zaman parametresi eksik" - ryaz 32 $logyardim - exit 1 - fi - if [ ! "$3" ]; then - ryaz 31 "durum parametresi eksik" - hataloglama "durum parametresi eksik" - ryaz 32 $logyardim - exit 1 - fi - log_analiz "$2" "$3" ;; - guncelle) - mps -GG && mps -G ;; - -Ggit|-GG) - git_guncelle ;; - -G|--pvtg) - paketvt_guncelle - mps -kudo ;; - #komple kurulu sistemin guncellenmesi - -GS) - sistem_guncelle ;; - #tekil temel paket guncelleme-single base package updating - -tg) - paket_sil "$2" "evet" && mps -ik $2 ;; - #tekil paket guncelleme-single package updating - -g|--pkgu) - if [ ! "$2" ]; then - ryaz 31 "paket ismi eksik" - hataloglama "paket ismi eksik" - exit 1 - fi - local durum - durum=`kurulu_kontrol "$2"` - if [ "$durum" = "kurulu" ]; then - paket_guncelle "$2" - elif [ "$durum" = "degil" ]; then - ryaz 31 "$2 paketi kurulu degil!" - hataloglama "paketi kurulu degil!" - else - ryaz 31 "$2 paketi tanımsız!" - hataloglama "paketi tanımsız!" - fi;; - #bagimliliklariyla beraber paket guncelleme-package updating with depencies - -go|--pkgo) - if [ ! "$2" ]; then - ryaz 31 "paket ismi eksik" - hataloglama "paket ismi eksik" - exit 1 - fi - paket_guncelle_oto "$2";; - -kk|--kurulu-kontrol) - if [ ! "$2" ]; then - ryaz 31 "paket ismi eksik" - hataloglama "paket ismi eksik" - exit 1 - fi - ryaz 31 `kurulu_kontrol "$2"`;; - -kudo) - kurulum_dogrulama ;; - -kdi) - if [ ! "$2" ]; then - ryaz 31 "paket ismi eksik" - exit 1 - fi - kurulum_dogrulama_icerik "$2" ;; - -kdk) - kurban_kurtar $2 ;; - -suko) - sunucu_kontrol ;; - -pot) - paketsiz_talimatlar ;; - -dota) - dosyadan_talimat_islem $2 $3 ;; - -cf|--config-file) - if [ ! "$2" ]; then - echo "ayardosyası gerek $1" - exit 1 - fi - ayar_dosyasi="$2" - shift ;; - # bir dosyanın kurulmuş hangi pakette olduğunu bulur - -hp) - if [ ! "$2" ]; then - ryaz 31 "paket ismi eksik" - exit 1 - fi - kurulan_dosya_bul "$2";; - -tro) - tarihce_yap ;; - -trot) - temel_tarihce="evet" - tarihce_yap ;; - -try) - if [ ! "$2" ]; then - ryaz 31 "tarihce dosyasi eksik $1" - hataloglama "tarihce dosyasi eksik $1" - exit 1 - fi - tarihce_yukle "$2" - shift ;; - -trl) - tarihce_liste ;; - dos) - tarihce_yukle "temel" ;; - -trs) - if [ ! "$2" ]; then - ryaz 31 "parametre eksik $1" - hataloglama "parametre eksik $1" - exit 1 - fi - tarihce_sil "$2" - shift ;; - -v) - ryaz 33 "$betikad $versiyon $iletisim" - exit 0 ;; - -h|--help) - yardim - exit 0 ;; - - esac - shift - done -} - -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 - ayarlar "$@" - - if [ "$ikaynak" = "ag" ]; then - local kontroldeg - kkont=`kurulu_kontrol "$2"` - if [ "$kkont" = "degil" ] || [ "$tekrarkur" = "evet" ];then - pkt=`cat "$paketdepo""paket.vt" | grep "^$2 " | cut -d' ' -f3` - if [ ! -z "$pkt" -a "$pkt" != "" ]; then - cpaket="${pkt/'#'/'%23'}" - ryaz 33 "agdan cekiliyor:" "$2" - #paket sunucuda varsa - wget -q --spider "$sunucu$cpaket" - #if wget -P /tmp -q "$sunucu$cpaket" > /dev/null; then - if [ $? -eq 0 ]; then - #wget -P "$paketdepo" "$sunucu$cpaket" - paket_indir "$2" - - if [ "$kurulum_onay" = "evet" ];then - if [ "$tekrarkur" = "evet" ];then - paket_sil "$2" "evet" - fi - icerik_ekle "$paketdepo$pkt" - exit 1 - fi - else - ryaz 31 "paket sunucuda yok!" - hataloglama "paket sunucuda yok!" - fi - else - ryaz 31 "$2 paket sunucuda yok!( mps -G komutuyla güncelleme yapınız. )" - hataloglama "$2 paket sunucuda yok!( mps -G komutuyla güncelleme yapınız. )" - fi - else - ryaz 32 "$2 paketi zaten kurulu!" - hataloglama "$2 paketi zaten kurulu!" - fi - exit 1 - fi - - if [ "$ikaynak" = "yerel" ]; then - local silme - pkontrol=`basename $2 | grep -w "mps.lz"` - if [ ! -z "$pkontrol" -a "$pkontrol" != "" ]; then - paketad=`echo "$2" | cut -d'#' -f1` - kkont=`kurulu_kontrol "$paketad"` - - if [ "$kkont" = "degil" ];then - icerik_ekle "$2" - elif [ "$kkont" = "kurulu" ];then - if [ "$tekrarkur" = "hayir" ];then - while true; do - ryaz 31 "$2 paketi zaten kurulu silinip kurulsun mu?" - read -p "e veya h -> " eh - case $eh in - [Ee]* ) silme="e"; break;; - [Hh]* ) break;; - * ) echo "e veya h";; - esac - done - fi - if [ "$silme" = "e" ];then - ryaz 33 "silinecekelerin kontrolu için" - paket_sil "$paketad" - icerik_ekle "$2" - fi - else - icerik_ekle "$2" - #while true; do - #ryaz 31 "$2 paketi talimatname dışı.Yine de kurulsun mu? (kokdizin=$kokdizin) " - #read -p "e veya h -> " eh - #case $eh in - #[Ee]* ) icerik_ekle "$2"; break;; - #[Hh]* ) break;; - #* ) echo "e veya h";; - #esac - #done - fi - else - ryaz 31 "yerelde mps paketi bulunamadı." - fi - fi -else - sudo mps "$@" -fi -} -ana "$@" - - -#31 kirmizi -#32 yesil -#33 sari -#34 mavi -#34 mor