mps-yeni-dly

This commit is contained in:
milisbir 2018-01-25 19:05:56 +02:00
parent 00ccb8b7bf
commit eb613d81a2
7 changed files with 115 additions and 48 deletions

151
bin/mps
View File

@ -708,14 +708,14 @@ paketdepo_analiz(){
derleme_listyap_kontrol(){ derleme_listyap_kontrol(){
if [ -f tumgerekler.liste ];then
mv tumgerekler.liste tumgerekler.eski.liste
fi
if [ -f gerek.liste ];then if [ -f gerek.liste ];then
mv gerek.liste gerek.eski.liste mv gerek.liste gerek.eski.liste
fi fi
touch tumgerekler.liste if [ -f gerek.konum.liste ];then
mv gerek.konum.liste gerek.konum.eski.liste
fi
touch gerek.liste touch gerek.liste
touch gerek.konum.liste
} }
gerekleri_dosyala(){ gerekleri_dosyala(){
@ -724,67 +724,123 @@ gerekleri_dosyala(){
_konum=$(talimat_bul $_altgerek) _konum=$(talimat_bul $_altgerek)
if [[ $konum != "-1" && $konum != "0" ]];then if [[ $konum != "-1" && $konum != "0" ]];then
printf "." printf "."
echo "$_altgerek" >> tumgerekler.liste echo "$_altgerek" >> gerek.liste
if [ ! -d "$talimatname/temel/$_altgerek" ];then if [ ! -d "$talimatname/temel/$_altgerek" ];then
echo "$_konum" >> gerek.liste echo "$_konum" >> gerek.konum.liste
fi fi
else else
ryaz 31 "$1 $_talimat_bulunamadi" ryaz 31 "$1 $_talimat_bulunamadi"
fi fi
} }
gerekleri_listele(){
derleme_listyap_kontrol
local _paket _konum
_konum="$talimatname $ektalimatname"
[ $1 ] && _paket=$1 || hata_olustu "_talimat_bulunamadi"
echo $_paket | awk -v arama_konum="$_konum" '''
function gerekbul(paket,gerekler) {
if (ISLENDI[paket]) {
return
}
while((getline satir<paket) >0) {
if (satir ~ "# Gerekler:" ){
split(satir,gerekb,":");
split(gerekb[2], gerekler, /[ ,]+/);
if ( length(gerekler) > 0 ){
for (i in gerekler){
if ( i > 1 && length(gerekler[i]) > 0 ){
ara=gerekler[i]
konum=talimat_bul(ara);
if (konum != ""){
gerekbul(konum);
}
}
}
}
}
}
ISLENDI[paket]=1 ;
printf "."
system("echo $(dirname " paket ") >> gerek.konum.liste")
system("echo $(basename $(dirname " paket ")) >> gerek.liste")
close(paket)
}
function talimat_bul(ara){
cmd= "find " arama_konum " -name " ara " | head -n1 "
#print cmd
while ( ( cmd | getline talimatyol ) > 0 ) {
return talimatyol "/talimat"
break
}
close(cmd)
}
{
#print FILENAME
_talimat=$1
_paket=talimat_bul(_talimat)
if ( length(_paket) > 0 ){gerekbul(_paket);}
else {print "_paket talimat bulunumadı!"}
exit 1
}
'''
[ -f gerek.liste ] && cat gerek.liste | tr "\n" " ";echo
}
dly_yeni(){ dly_yeni(){
dlymap["$1"]=1 local _paket="$1"
altgerekler=($(bagimlilar $1)) dlymap+=";${_paket};"
altgerekler="$(bagimlilar $_paket)"
if [[ "$altgerekler" != "0" && "$altgerekler" != "-1" ]];then if [[ "$altgerekler" != "0" && "$altgerekler" != "-1" ]];then
for altgerek in ${altgerekler[@]};do for altgerek in ${altgerekler};do
if [[ ! ${dlymap["$altgerek"]} ]] ; then if [[ "$dlymap" != *";${altgerek};"* ]]; then
dly_yeni $altgerek dly_yeni $altgerek
fi fi
done done
dlyD+=("$1") dlyD+="$_paket "
gerekleri_dosyala "$1" gerekleri_dosyala "$_paket"
else else
ryaz 31 "$1 talimatı bulunamadı." ryaz 31 "$_paket talimatı bulunamadı."
exit 1 exit 1
fi fi
} }
kly_yeni(){ kly_yeni(){
#[ ! ${klyD[0]} ] && klyD+=("$1") local _paket="$1"
[ ! -d "$VT/$1" ] && klymap["$1"]=1 [ ! -d "$VT/$1" ] && klymap+=";${_paket};"
altgerekler=($(bagimlilar $1)) altgerekler="$(bagimlilar $_paket)"
if [[ "$altgerekler" != "0" && "$altgerekler" != "-1" ]];then if [[ "$altgerekler" != "0" && "$altgerekler" != "-1" ]];then
for altgerek in ${altgerekler[@]};do for altgerek in ${altgerekler};do
if [ ! -d "$VT/$altgerek" ] ;then if [ ! -d "$VT/$altgerek" ] ;then
if [[ ! ${klymap["$altgerek"]} ]] ; then if [[ "$klymap" != *";${altgerek};"* ]]; then
#klyD+=("$altgerek")
#echo ${klyD[-1]}
kly_yeni $altgerek kly_yeni $altgerek
fi fi
fi fi
done done
klyD+=("$1") klyD+="$_paket "
gerekleri_dosyala ${klyD[-1]} gerekleri_dosyala "$_paket"
else else
ryaz 31 "$1 talimatı bulunamadı." ryaz 31 "$_paket talimatı bulunamadı."
exit 1 exit 1
fi fi
} }
derleme_listyap(){ derleme_listyap(){
ryaz 32 "$1 $_gerekler_belirleniyor" ryaz 32 "$1 $_gerekler_belirleniyor"
local pkt dlyp dlyD=""
dlyD=() dlymap=""
declare -A dlymap
derleme_listyap_kontrol derleme_listyap_kontrol
dly_yeni $1 dly_yeni $1
echo "${dlyD[@]}" echo "${dlyD}"
} }
kurulum_listyap(){ kurulum_listyap(){
klyD=() klyD=""
declare -A klymap klymap=""
kly_yeni "$1" kly_yeni "$1"
} }
@ -807,7 +863,7 @@ paket_derle_liste(){
paket_derle_kur(){ paket_derle_kur(){
tekrarkur="hayir" tekrarkur="hayir"
derleme_listyap_kontrol derleme_listyap_kontrol
derleme_listyap "$1" && paket_derle_liste gerek.liste derleme_listyap "$1" && paket_derle_liste gerek.konum.liste
} }
# odkp # odkp
@ -822,7 +878,7 @@ oto_derle_kur_paketle(){
else else
paket_derle_kur $1 paket_derle_kur $1
fi fi
rm -rf {gerek.eski,gerek,kurulanlar,silinenler,tumgerekler.eski,tumgerekler}.liste rm -rf {gerek.konum.eski,gerek,kurulanlar,silinenler,gerek.eski}.liste
} }
paket_kur_oto(){ paket_kur_oto(){
@ -884,7 +940,7 @@ paket_kur_liste_zorla(){
#otomatik kontrollu kur #otomatik kontrollu kur
paket_kur_oto2(){ paket_kur_oto2(){
derleme_listyap_kontrol derleme_listyap_kontrol
derleme_listyap "$1" > /dev/null && mps -ok gerek.liste derleme_listyap "$1" > /dev/null && mps -ok gerek.konum.liste
} }
paket_inkur_liste_direk(){ paket_inkur_liste_direk(){
@ -911,10 +967,9 @@ paket_inkur_oto(){
local konum anakonum kurdurum _agdan_kur_onay local konum anakonum kurdurum _agdan_kur_onay
derleme_listyap_kontrol derleme_listyap_kontrol
#derleme_listyap "$1" | grep "bulunamadı"
kurulum_listyap "$1" | grep "bulunamadı" kurulum_listyap "$1" | grep "bulunamadı"
local kpkt local kpkt
for paketkonum in `cat gerek.liste`;do for paketkonum in `cat gerek.konum.liste`;do
# önce talimat-anatalimat karşılaştırması yapılır. # önce talimat-anatalimat karşılaştırması yapılır.
kpkt=`basename $paketkonum` kpkt=`basename $paketkonum`
konum="`find "$talimatname" -name $kpkt`" konum="`find "$talimatname" -name $kpkt`"
@ -968,16 +1023,23 @@ paket_sil_oto_onayli(){
} }
paket_sil_gerekli(){ paket_sil_gerekli(){
local _onay local _onay _tbs
if [ -d $VT/$1 ];then if [ -d $VT/$1 ];then
bagimli_bilgi_dosyala "$1" bagimli_bilgi_dosyala "$1"
rm -f /tmp/$1.silinecekler rm -f /tmp/$1.silinecekler
touch /tmp/$1.silinecekler touch /tmp/$1.silinecekler
for pkaltb in $(cat /tmp/$1.gerekler.liste);do _tbsnc=$(ters_bagimli_bilgi $1 "kurulu")
_tbs=$(echo $_tbsnc | wc -l)
if [ $_tbs -gt 0 ];then
ryaz 31 "$1 silinemez."
echo "ters gerekleri: $_tbsnc"
exit 1
fi
for pkaltb in $(tac /tmp/$1.gerekler.liste);do
if [ -d $VT/$pkaltb ];then if [ -d $VT/$pkaltb ];then
tbsonuc=() tbsonuc=""
tbsonuc=$(ters_bagimli_bilgi $pkaltb "kurulu") tbsonuc=$(ters_bagimli_bilgi $pkaltb "kurulu")
if [ ${#tbsonuc[0]} = 0 ];then if [ $(echo $tbsonuc | wc -l) -eq 0 ];then
ryaz 32 "$pkaltb silinebilir." ryaz 32 "$pkaltb silinebilir."
echo "$pkaltb" >> /tmp/$1.silinecekler echo "$pkaltb" >> /tmp/$1.silinecekler
elif [ "$tbsonuc" = "$1" ];then elif [ "$tbsonuc" = "$1" ];then
@ -1033,13 +1095,13 @@ paket_guncelle(){
paket_guncelle_oto(){ paket_guncelle_oto(){
derleme_listyap "$1" > /dev/null && derleme_listyap "$1" > /dev/null &&
local kpkt local kpkt
for kpkt in `cat gerek.liste`;do for kpkt in `cat gerek.konum.liste`;do
durum=`kurulu_kontrol "$kpkt"` durum=`kurulu_kontrol "$kpkt"`
if [ "$durum" = "kurulu" ]; then if [ "$durum" = "kurulu" ]; then
paket_guncelle "$kpkt" paket_guncelle "$kpkt"
fi fi
done done
rm gerek.liste tumgerekler.liste rm gerek.konum.liste gerek.liste
} }
dongu_gosterge(){ dongu_gosterge(){
@ -1591,9 +1653,11 @@ yeni_kurulacak_paketler(){
[ -f /tmp/mevcut_kurulu.liste ] && rm -rf /tmp/mevcut_kurulu.liste [ -f /tmp/mevcut_kurulu.liste ] && rm -rf /tmp/mevcut_kurulu.liste
ls $VT > /tmp/mevcut_kurulu.liste ls $VT > /tmp/mevcut_kurulu.liste
derleme_listyap $1 &> /dev/null derleme_listyap $1 &> /dev/null
comm -13 <(sort /tmp/mevcut_kurulu.liste) <(sort tumgerekler.liste) comm -13 <(sort /tmp/mevcut_kurulu.liste) <(sort gerek.liste)
[ -f tumgerekler.liste ] && rm -rf tumgerekler.liste #diff --changed-group-format='***%>' --unchanged-group-format='' --new-group-format='+++%>' \
#/tmp/mevcut_kurulu.liste gerek.liste | cut -d' ' -f1 | sort -d
[ -f gerek.liste ] && rm -rf gerek.liste [ -f gerek.liste ] && rm -rf gerek.liste
[ -f gerek.konum.liste ] && rm -rf gerek.konum.liste
} }
# güncellemelerin alınması talimatname üzerinden # güncellemelerin alınması talimatname üzerinden
@ -2968,6 +3032,9 @@ ayarlar() {
-dly|dliste) -dly|dliste)
derleme_listyap "$2" derleme_listyap "$2"
exit 0 ;; exit 0 ;;
glist)
gerekleri_listele "$2"
exit 0 ;;
### mps -kly paketismi = ilgili paketin ve kurulması gereken altgereklerini verir,oluştur. ### mps -kly paketismi = ilgili paketin ve kurulması gereken altgereklerini verir,oluştur.
-kly) -kly)
kurulum_listyap "$2" ;; kurulum_listyap "$2" ;;

View File

@ -1,7 +1,7 @@
# Tanım: Açık kaynak web sunucusu. # Tanım: Açık kaynak web sunucusu.
# URL: http://httpd.apache.org/ABOUT_APACHE.html # URL: http://httpd.apache.org/ABOUT_APACHE.html
# Paketçi: milisarge # Paketçi: milisarge
# Gerekler: pcre apr-util sqlite expat # Gerekler: pcre apr-util sqlite
# Grup: ağ # Grup: ağ
isim=apache isim=apache

View File

@ -1,7 +1,7 @@
# Tanım: Apache taşınabilir çalışma zamanı yardımcı program kütüphanesi # Tanım: Apache taşınabilir çalışma zamanı yardımcı program kütüphanesi
# URL: http://apr.apache.org/ # URL: http://apr.apache.org/
# Paketçi: milisarge # Paketçi: milisarge
# Gerekler: apr expat unixodbc postgresql # Gerekler: apr unixodbc postgresql
# Grup: kütüphane # Grup: kütüphane
isim=apr-util isim=apr-util

View File

@ -1,7 +1,7 @@
# Tanım: Freedesktop.org ileti taşıma sistemi # Tanım: Freedesktop.org ileti taşıma sistemi
# URL: http://www.freedesktop.org/wiki/Software/dbus/ # URL: http://www.freedesktop.org/wiki/Software/dbus/
# Paketçi: milisarge # Paketçi: milisarge
# Gerekler: expat xorg-libx11 xorg-libsm xorg-libice # Gerekler: xorg-libx11 xorg-libsm xorg-libice
isim=dbus isim=dbus
surum=1.10.6 surum=1.10.6

View File

@ -1,7 +1,7 @@
# Tanım: Uluslararasılaştırma aracı koleksiyonu # Tanım: Uluslararasılaştırma aracı koleksiyonu
# URL: http://freedesktop.org/wiki/Software/intltool # URL: http://freedesktop.org/wiki/Software/intltool
# Paketçi: milisarge # Paketçi: milisarge
# Gerekler: perl-xml-parser,expat # Gerekler: perl-xml-parser
isim=intltool isim=intltool
surum=0.51.0 surum=0.51.0

View File

@ -1,7 +1,7 @@
# Tanım: Sonraki nesil python üst düzey betik dili # Tanım: Sonraki nesil python üst düzey betik dili
# URL: http://www.python.org # URL: http://www.python.org
# Paketçi: milisarge # Paketçi: milisarge
# Gerekler: sqlite expat # Gerekler: sqlite
isim=python3 isim=python3
surum=3.5.1 surum=3.5.1

View File

@ -1,7 +1,7 @@
# Tanım: Acik kaynak kodlu OpenGL uyumlu grafik kutuphanesi # Tanım: Acik kaynak kodlu OpenGL uyumlu grafik kutuphanesi
# URL: http://www.xorg-mesa3d.org # URL: http://www.xorg-mesa3d.org
# Paketçi: milisarge # Paketçi: milisarge
# Gerekler: pkg-config libtool wayland xorg-libx11 xorg-libdrm xorg-libxext xorg-libxdamage expat llvm elfutils xorg-libxshmfence wayland libvdpau # Gerekler: pkg-config libtool wayland xorg-libx11 xorg-libdrm xorg-libxext xorg-libxdamage llvm elfutils xorg-libxshmfence wayland libvdpau
isim=xorg-mesa isim=xorg-mesa
surum=17.1.8 surum=17.1.8