mps-tespit

This commit is contained in:
milisbir 2018-10-18 15:26:14 +03:00
parent 797a367575
commit bd573d616a
1 changed files with 21 additions and 11 deletions

30
bin/mps
View File

@ -1217,21 +1217,22 @@ dongu_gosterge(){
} }
t_indeks(){ t_indeks(){
# karşılaştırma dosyası -talimatname indeks dönüşü verecek
[ -z $1 ] && exit 1 [ -z $1 ] && exit 1
local dosya_t="$1" local dosya_t="$1"
# talimat listesi
local dosya=`mktemp` local dosya=`mktemp`
local dosya_sirasiz=`mktemp` local dosya_sirasiz=`mktemp`
[ -f $dosya ] && rm -rf $dosya find ${talimatname}/temel/* -type d > $dosya
find /root/talimatname/temel/* -type d > $dosya find ${talimatname}/genel/*/* -type d >> $dosya
find /root/talimatname/genel/*/* -type d >> $dosya
while IFS='' read -r konum || [[ -n "$konum" ]]; do while IFS='' read -r konum || [[ -n "$konum" ]]; do
# Surum-Devir # Surum-Devir
isim=$(basename $konum) isim=$(basename $konum)
#surum=$(grep -ri ^"surum=" $konum/talimat | cut -d '=' -f2 | awk '{ sub(/[ \t]+$/, ""); print }') #surum=$(grep -ri ^"surum=" $konum/talimat | cut -d '=' -f2 | awk '{ sub(/[ \t]+$/, ""); print }')
# sürüm ve devir değişkenlerinin olası boşluklarının kırpılması
surum=$(grep -ri ^"surum=" $konum/talimat | cut -d '=' -f2 | tr -d [:space:]) surum=$(grep -ri ^"surum=" $konum/talimat | cut -d '=' -f2 | tr -d [:space:])
devir=$(grep -ri ^"devir=" $konum/talimat | cut -d '=' -f2 | tr -d [:space:]) devir=$(grep -ri ^"devir=" $konum/talimat | cut -d '=' -f2 | tr -d [:space:])
echo "$isim@$surum-$devir" >> $dosya_sirasiz echo "$isim@$surum-$devir" >> $dosya_sirasiz
@ -1270,28 +1271,37 @@ k_indeks(){
echo "$isim@$surum-$devir" >> $dosya_sirasiz echo "$isim@$surum-$devir" >> $dosya_sirasiz
done < "$dosya" done < "$dosya"
# alfabetik sıralama
sort $dosya_sirasiz > $dosya_k sort $dosya_sirasiz > $dosya_k
echo "kurulu_sira: $dosya"
rm -f $dosya_sirasiz rm -f $dosya_sirasiz
} }
guncelleme_tespit(){ guncelleme_tespit(){
# talimatname indeks dosyası
local dosya_t=`mktemp` local dosya_t=`mktemp`
# kurulum indeks dosyası
local dosya_k=`mktemp` local dosya_k=`mktemp`
local dosya_kurs=`mktemp` # kuruluma göre sıralı paket listesi
local dosya_ks=`mktemp`
# güncellenecek paket listesi sırasız
local dosya_g=`mktemp` local dosya_g=`mktemp`
local dosya_son=`mktemp` local dosya_son=`mktemp`
local dosya_sonuc=`mktemp`
t_indeks $dosya_t & t_indeks $dosya_t &
k_indeks $dosya_k $dosya_kurs & k_indeks $dosya_k $dosya_ks &
wait $(jobs -p) wait $(jobs -p)
#set -x #set -x
# talimatname ve kurulu sürüm-devir indeks dosya karşılaştırılması
grep -vxFf $dosya_t $dosya_k > $dosya_g grep -vxFf $dosya_t $dosya_k > $dosya_g
sed -i 's/$/@/' $dosya_kurs # paketleri çekmek için satır sonu @ ekleme
sed -i 's/$/@/' $dosya_ks
for _gunc in $(cat $dosya_g);do for _gunc in $(cat $dosya_g);do
_gunc2=$(echo ${_gunc} | cut -d'@' -f1) _gunc2=$(echo ${_gunc} | cut -d'@' -f1)
grep -nr "${_gunc2}@" $dosya_kurs > $dosya_son grep -nr "^${_gunc2}@" $dosya_ks >> $dosya_son
done done
cat $dosya_son | cut -d':' -f2 # güncellenecek paketlerin-kurulum sırasına göre sıralanıp, sadeleştirilmesi
sort $dosya_son | cut -d':' -f2 | cut -d'@' -f1 > $dosya_sonuc
rm @dosya_t @dosya_k @dosya_ks @dosya_g @dosya_son
} }
sistem_guncelle_uygula(){ sistem_guncelle_uygula(){