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(){
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
if [ -f gerek.konum.liste ];then
mv gerek.konum.liste gerek.konum.eski.liste
fi
touch gerek.liste
touch gerek.konum.liste
}
gerekleri_dosyala(){
@ -724,67 +724,123 @@ gerekleri_dosyala(){
_konum=$(talimat_bul $_altgerek)
if [[ $konum != "-1" && $konum != "0" ]];then
printf "."
echo "$_altgerek" >> tumgerekler.liste
echo "$_altgerek" >> gerek.liste
if [ ! -d "$talimatname/temel/$_altgerek" ];then
echo "$_konum" >> gerek.liste
echo "$_konum" >> gerek.konum.liste
fi
else
ryaz 31 "$1 $_talimat_bulunamadi"
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(){
dlymap["$1"]=1
altgerekler=($(bagimlilar $1))
local _paket="$1"
dlymap+=";${_paket};"
altgerekler="$(bagimlilar $_paket)"
if [[ "$altgerekler" != "0" && "$altgerekler" != "-1" ]];then
for altgerek in ${altgerekler[@]};do
if [[ ! ${dlymap["$altgerek"]} ]] ; then
for altgerek in ${altgerekler};do
if [[ "$dlymap" != *";${altgerek};"* ]]; then
dly_yeni $altgerek
fi
done
dlyD+=("$1")
gerekleri_dosyala "$1"
dlyD+="$_paket "
gerekleri_dosyala "$_paket"
else
ryaz 31 "$1 talimatı bulunamadı."
ryaz 31 "$_paket talimatı bulunamadı."
exit 1
fi
}
kly_yeni(){
#[ ! ${klyD[0]} ] && klyD+=("$1")
[ ! -d "$VT/$1" ] && klymap["$1"]=1
altgerekler=($(bagimlilar $1))
local _paket="$1"
[ ! -d "$VT/$1" ] && klymap+=";${_paket};"
altgerekler="$(bagimlilar $_paket)"
if [[ "$altgerekler" != "0" && "$altgerekler" != "-1" ]];then
for altgerek in ${altgerekler[@]};do
for altgerek in ${altgerekler};do
if [ ! -d "$VT/$altgerek" ] ;then
if [[ ! ${klymap["$altgerek"]} ]] ; then
#klyD+=("$altgerek")
#echo ${klyD[-1]}
if [[ "$klymap" != *";${altgerek};"* ]]; then
kly_yeni $altgerek
fi
fi
done
klyD+=("$1")
gerekleri_dosyala ${klyD[-1]}
klyD+="$_paket "
gerekleri_dosyala "$_paket"
else
ryaz 31 "$1 talimatı bulunamadı."
ryaz 31 "$_paket talimatı bulunamadı."
exit 1
fi
}
derleme_listyap(){
ryaz 32 "$1 $_gerekler_belirleniyor"
local pkt dlyp
dlyD=()
declare -A dlymap
dlyD=""
dlymap=""
derleme_listyap_kontrol
dly_yeni $1
echo "${dlyD[@]}"
echo "${dlyD}"
}
kurulum_listyap(){
klyD=()
declare -A klymap
klyD=""
klymap=""
kly_yeni "$1"
}
@ -807,7 +863,7 @@ paket_derle_liste(){
paket_derle_kur(){
tekrarkur="hayir"
derleme_listyap_kontrol
derleme_listyap "$1" && paket_derle_liste gerek.liste
derleme_listyap "$1" && paket_derle_liste gerek.konum.liste
}
# odkp
@ -822,7 +878,7 @@ oto_derle_kur_paketle(){
else
paket_derle_kur $1
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(){
@ -884,7 +940,7 @@ paket_kur_liste_zorla(){
#otomatik kontrollu kur
paket_kur_oto2(){
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(){
@ -911,10 +967,9 @@ paket_inkur_oto(){
local konum anakonum kurdurum _agdan_kur_onay
derleme_listyap_kontrol
#derleme_listyap "$1" | grep "bulunamadı"
kurulum_listyap "$1" | grep "bulunamadı"
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.
kpkt=`basename $paketkonum`
konum="`find "$talimatname" -name $kpkt`"
@ -968,16 +1023,23 @@ paket_sil_oto_onayli(){
}
paket_sil_gerekli(){
local _onay
local _onay _tbs
if [ -d $VT/$1 ];then
bagimli_bilgi_dosyala "$1"
rm -f /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
tbsonuc=()
tbsonuc=""
tbsonuc=$(ters_bagimli_bilgi $pkaltb "kurulu")
if [ ${#tbsonuc[0]} = 0 ];then
if [ $(echo $tbsonuc | wc -l) -eq 0 ];then
ryaz 32 "$pkaltb silinebilir."
echo "$pkaltb" >> /tmp/$1.silinecekler
elif [ "$tbsonuc" = "$1" ];then
@ -1033,13 +1095,13 @@ paket_guncelle(){
paket_guncelle_oto(){
derleme_listyap "$1" > /dev/null &&
local kpkt
for kpkt in `cat gerek.liste`;do
for kpkt in `cat gerek.konum.liste`;do
durum=`kurulu_kontrol "$kpkt"`
if [ "$durum" = "kurulu" ]; then
paket_guncelle "$kpkt"
fi
done
rm gerek.liste tumgerekler.liste
rm gerek.konum.liste gerek.liste
}
dongu_gosterge(){
@ -1591,9 +1653,11 @@ 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
comm -13 <(sort /tmp/mevcut_kurulu.liste) <(sort gerek.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.konum.liste ] && rm -rf gerek.konum.liste
}
# güncellemelerin alınması talimatname üzerinden
@ -2968,6 +3032,9 @@ ayarlar() {
-dly|dliste)
derleme_listyap "$2"
exit 0 ;;
glist)
gerekleri_listele "$2"
exit 0 ;;
### mps -kly paketismi = ilgili paketin ve kurulması gereken altgereklerini verir,oluştur.
-kly)
kurulum_listyap "$2" ;;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,7 +1,7 @@
# Tanım: Acik kaynak kodlu OpenGL uyumlu grafik kutuphanesi
# URL: http://www.xorg-mesa3d.org
# 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
surum=17.1.8