milis/bin/mps

2437 lines
60 KiB
Plaintext
Raw Normal View History

2017-03-29 00:06:21 +02:00
#!/bin/bash
2016-03-06 19:36:07 +01:00
. /etc/mpsd.conf
2016-05-01 04:07:04 +02:00
if [ -f /etc/mps.conf ];then
2016-05-01 03:26:55 +02:00
. /etc/mps.conf
2016-05-01 04:07:04 +02:00
fi
2016-03-07 00:39:49 +01:00
. /root/bin/fonks.sh
2017-09-06 17:36:51 +02:00
versiyon="1.1 Milis Paket Sistemi"
2016-03-11 17:42:21 +01:00
iletisim="milisarge@gmail.com"
2016-02-24 01:27:23 +01:00
paketdepo="/depo/paketler/"
2016-05-01 03:26:55 +02:00
if [ -z ${sunucu+:} ]; then
2016-05-01 04:40:58 +02:00
sunucu="127.0.0.1:8000/"
2016-05-01 03:26:55 +02:00
fi
2016-04-17 15:06:55 +02:00
#sunucu="http://milis.gungre.ch/packages/"
2016-03-07 00:39:49 +01:00
git_sunucu="https://github.com/milisarge/malfs-milis"
2016-02-24 01:27:23 +01:00
ikaynak=""
betikad=${0##*/}
kurulum_onay="evet"
talimatname_dizin="/root/talimatname"
2017-06-10 06:41:58 +02:00
ana_talimatname_dizin="/sources/milis.git/talimatname"
2016-02-25 01:08:35 +01:00
kokdizin="/"
2016-03-07 23:04:43 +01:00
VT="/var/lib/pkg/DB"
2016-03-09 01:57:13 +01:00
TARIHCE_DIZIN="/var/lib/pkg/tarihce"
2016-03-29 02:16:52 +02:00
LOGDIZIN="/var/log/mps"
2016-03-25 22:19:01 +01:00
tekrarkur="hayir"
2017-02-13 16:45:41 +01:00
logdosya=/var/log/mps/mps.log
2016-06-20 03:06:42 +02:00
#temel paket koruma
2017-07-14 15:12:33 +02:00
if [ -z ${tpk+:} ]; then
lokal="evet"
fi
2016-05-01 03:26:55 +02:00
if [ -z ${lokal+:} ]; then
lokal="tr"
fi
if [ -z ${docsil+:} ]; then
docsil="evet"
fi
if [ -z ${yerelsil+:} ]; then
2017-04-15 17:18:27 +02:00
yerelsil="silme"
2016-05-01 03:26:55 +02:00
fi
2017-07-14 14:02:25 +02:00
if [ -z ${ektalimatname+:} ]; then
ektalimatname="/root/talimatlar"
2017-07-31 01:21:22 +02:00
[ ! -d /root/talimatlar ] && mkdir -p /root/talimatlar
2017-07-14 14:02:25 +02:00
fi
2016-03-07 23:04:43 +01:00
2017-08-08 21:39:37 +02:00
if [ -z ${sunucular+:} ]; then
declare -a sunucular=("paketler.milislinux.org")
2017-08-08 22:05:51 +02:00
awk ' {print;} NR == 1 { print "sunucular=(paketler.milislinux.org/)"; }' /etc/mps.conf > /etc/mps2.conf
mv /etc/mps2.conf /etc/mps.conf
2017-08-08 21:39:37 +02:00
fi
2016-02-24 01:27:23 +01:00
icerik_ekle(){
2017-08-08 21:39:37 +02:00
if [ -f "$1" ];then
paketad=`echo "$1" | cut -d'#' -f1`
paketad=`basename $paketad`
ryaz 34 $paketad" paketi kuruluyor-> $kokdizin"
if [ -f /usr/bin/bsdtar ];then
bsdtar -C /tmp --extract --file=$1 .PRE 1 2> /tmp/$paketad_pre.log
2016-03-31 03:23:45 +02:00
else
2017-08-08 21:39:37 +02:00
tar -C /tmp --extract --file=$1 .PRE 1 2> /tmp/$paketad_pre.log
2016-03-31 03:23:45 +02:00
fi
2017-08-08 21:39:37 +02:00
#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 &&
if [ -f /usr/bin/bsdtar ];then
bsdtar xf $1 -C kur.$paketad
2016-03-31 03:23:45 +02:00
else
2017-08-08 21:39:37 +02:00
tar xf $1 -C kur.$paketad
2016-03-31 03:23:45 +02:00
fi
2017-08-08 21:39:37 +02:00
#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."
else
ryaz 31 "icerik_ekle:paket konum parametresi boş!!!"
exit 1
2016-02-24 01:27:23 +01:00
fi
2016-03-29 02:16:52 +02:00
2016-02-24 01:27:23 +01:00
}
2016-03-07 22:12:18 +01:00
paket_sil(){
2016-03-10 01:28:42 +01:00
local paket kkont sil_onay oto_silme
2016-03-07 01:43:25 +01:00
paket="$1"
2017-08-12 15:15:32 +02:00
tersbag_goster="hayir"
2016-03-10 01:28:42 +01:00
if [ "$2" ]; then
oto_silme="$2"
fi
2017-08-12 15:15:32 +02:00
if [ "$3" ]; then
tersbag_goster="evet"
fi
2016-06-20 03:06:42 +02:00
if [ "$tpk" = "evet" ] && [ -d "$talimatname_dizin/temel/$1" ];then
ryaz 31 "$1 temel sistem paketidir.Silinemez!!!"
2017-04-01 01:44:55 +02:00
hataloglama "$1 temel sistem paketidir.Silinemez!!!"
2016-06-20 03:06:42 +02:00
else
kkont=`kurulu_kontrol "$1"`
if [ "$kkont" = "kurulu" ];then
if [ -f "/var/lib/pkg/DB/$paket/kurulan" ];then
2016-10-29 22:25:25 +02:00
#dizin koruma
2017-08-22 05:15:34 +02:00
etkilenen_kurtar $1
2016-06-20 03:06:42 +02:00
cat /var/lib/pkg/DB/$paket/kurulan | cut -d '>' -f2 > /tmp/$paket.sil
2017-08-12 15:15:32 +02:00
if [ "$tersbag_goster" = "evet" ];then
ryaz 31 "ters bagimliliklar"
ryaz 31 "------------------"
ters_bagimli_kontrol "$paket"
ryaz 31 "------------------"
fi
2017-08-22 05:15:34 +02:00
ryaz 31 "etkilenen dosyalar"
2016-06-20 03:06:42 +02:00
ryaz 31 "------------------"
2017-08-22 05:15:34 +02:00
silme_etkilenen_kontrol /tmp/$paket.sil
2016-06-20 03:06:42 +02:00
ryaz 31 "------------------"
if [ "$oto_silme" = "evet" ];then
sil_onay="e"
else
while true; do
2016-10-03 07:43:24 +02:00
ryaz 34 $paket" paketi kaldırılsın mı?";read -p "e veya h-> " eh
2016-06-20 03:06:42 +02:00
case $eh in
[Ee]* ) sil_onay="e"; break;;
[Hh]* ) break;;
* ) echo "e veya h";;
esac
done
fi
if [ "$sil_onay" = "e" ];then
2017-06-28 14:18:39 +02:00
[ -f "$talimatname_dizin/genel/$paket/$paket.kos-sil" ] && bash "$talimatname_dizin/genel/$paket/$paket.kos-sil"
2016-06-20 03:06:42 +02:00
xargs rm -r -f < /tmp/$paket.sil &&
rm -r -f /var/lib/pkg/DB/"$paket" &&
2017-06-28 14:18:39 +02:00
[ -f "$talimatname_dizin/genel/$paket/$paket.sil-kos" ] && bash "$talimatname_dizin/genel/$paket/$paket.sil-kos"
2016-06-20 03:06:42 +02:00
ryaz 34 $paket" paketi silindi."
loglama "$paket paketi silindi."
rm -f /tmp/$paket.sil
else
rm -f /tmp/$paket.sil
fi
2016-05-03 01:31:38 +02:00
else
2016-10-03 07:43:24 +02:00
ryaz 31 "kritik mesaj:kurulanlar dosyası yok."
2017-04-01 01:44:55 +02:00
hataloglama "kritik mesaj:kurulanlar dosyası yok."
2016-03-07 01:43:25 +01:00
fi
2017-05-03 00:13:51 +02:00
elif [ "$kkont" = "degil" ];then
2016-10-03 07:43:24 +02:00
ryaz 32 "paket zaten kurulu değil!"
2017-04-01 01:44:55 +02:00
hataloglama "paket zaten kurulu değil!"
2017-05-03 00:13:51 +02:00
else
ryaz 32 "paket tanımsız!"
hataloglama "paket tanımsız!"
2016-03-07 01:43:25 +01:00
fi
fi
}
2017-08-08 21:39:37 +02:00
paket_ara(){
paket="$1"
2017-08-08 21:39:37 +02:00
for pkt in `cat /depo/paketler/paket*.vt | grep $paket | awk '{print $1}'`; do
2017-08-01 01:06:59 +02:00
pakdesc=$(find $talimatname_dizin -name "$pkt" | xargs -I % sed -n '1{p;q}' %/talimat | sed s'/# Description: //g');
ryaz 34 "$pkt - $pakdesc";
done
}
2017-08-08 21:39:37 +02:00
2016-10-07 21:07:31 +02:00
kelime_bul(){
2017-08-01 01:06:59 +02:00
grep --color -H -ri "$1" $talimatname_dizin
grep --color -H -ri "$1" $ektalimatname
2016-10-07 21:07:31 +02:00
}
2017-08-08 21:39:37 +02:00
2016-05-03 01:31:38 +02:00
paket_bilgi2(){
2016-02-24 01:27:23 +01:00
local paket kkont
kkont=`kurulu_kontrol "$1"`
if [ "$kkont" = "kurulu" ];then
paket="$1"
cat /var/lib/pkg/DB/"$paket"/META
2017-05-03 00:13:51 +02:00
elif [ "$kkont" = "degil" ];then
2016-10-03 07:43:24 +02:00
echo "paket kurulu değil!"
2017-05-03 00:13:51 +02:00
else
echo "paket tanımsız!"
2016-02-24 01:27:23 +01:00
fi
}
2016-05-03 01:31:38 +02:00
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}
2016-05-07 17:53:00 +02:00
satir=`sed -n '9p' < /var/lib/pkg/DB/"$paket"/META`
ryaz 32 "DZ:" `date -d @${satir:1:${#satir}-1}`
2017-05-03 00:13:51 +02:00
elif [ "$kkont" = "degil" ];then
2016-10-03 07:43:24 +02:00
echo "paket kurulu değil!"
2017-05-03 00:13:51 +02:00
else
echo "paket tanımsız!"
2016-05-03 01:31:38 +02:00
fi
}
2016-03-19 00:16:01 +01:00
yeniden_paketle(){
2016-03-19 02:20:46 +01:00
cd $1
bsdtar -r -f ../"$1".mps .META
bsdtar -r -f ../"$1".mps *
cd ..
lzip -9 "$1".mps
2016-03-19 00:16:01 +01:00
}
2017-07-31 01:21:22 +02:00
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
}
2017-09-06 19:52:02 +02:00
derleme_listyap_eski(){
2017-07-31 01:21:22 +02:00
2017-07-21 00:28:01 +02:00
bagimlist=`bagimlilar "$1"`
2017-07-31 01:21:22 +02:00
#echo $bagimlist
2017-07-21 00:28:01 +02:00
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
}
2017-09-06 17:36:51 +02:00
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
fi
}
dly_yeni(){
dlymap["$1"]=1
altgerekler=($(bagimlilar $1))
2017-09-06 19:52:02 +02:00
if [ "$altgerekler" != "talimatyok" ];then
for altgerek in ${altgerekler[@]};do
if [[ ! ${dlymap["$altgerek"]} ]] ; then
dly_yeni $altgerek
fi
done
dlyD+=("$1")
gerekleri_dosyala "$1"
else
ryaz 31 "$1 talimatı bulunamadı."
exit 1
fi
2017-09-06 17:36:51 +02:00
}
kly_yeni(){
2017-09-06 17:53:03 +02:00
#[ ! ${klyD[0]} ] && klyD+=("$1")
2017-09-06 17:36:51 +02:00
[ ! -d "$VT/$1" ] && klymap["$1"]=1
altgerekler=($(bagimlilar $1))
2017-09-06 19:52:02 +02:00
if [ "$altgerekler" != "talimatyok" ];then
for altgerek in ${altgerekler[@]};do
if [ ! -d "$VT/$altgerek" ] ;then
if [[ ! ${klymap["$altgerek"]} ]] ; then
#klyD+=("$altgerek")
#echo ${klyD[-1]}
kly_yeni $altgerek
fi
2017-09-06 17:36:51 +02:00
fi
2017-09-06 19:52:02 +02:00
done
klyD+=("$1")
gerekleri_dosyala ${klyD[-1]}
else
ryaz 31 "$1 talimatı bulunamadı."
exit 1
fi
2017-09-06 17:36:51 +02:00
}
2017-09-06 19:52:02 +02:00
derleme_listyap(){
2017-09-06 17:36:51 +02:00
local pkt dlyp
dlyD=()
declare -A dlymap
2017-09-06 19:52:02 +02:00
derleme_listyap_kontrol
2017-09-06 17:36:51 +02:00
dly_yeni $1
}
2017-09-06 19:52:02 +02:00
kurulum_listyap(){
2017-09-06 17:36:51 +02:00
klyD=()
2017-09-06 17:53:03 +02:00
declare -A klymap
2017-09-06 17:36:51 +02:00
kly_yeni "$1"
}
2017-07-21 00:28:01 +02:00
2016-03-02 01:26:35 +01:00
derleme_listbilgi(){
2016-10-03 07:43:24 +02:00
ryaz 34 "yapim asamasında"
2016-03-02 01:26:35 +01:00
}
2017-06-10 06:41:58 +02:00
# -derlist
2016-04-17 01:08:11 +02:00
paket_derle_liste(){
2017-07-31 01:21:22 +02:00
for dpktyer in `cat $1`;do
dpkt=`basename $dpktyer`
2016-02-24 01:27:23 +01:00
echo $dpkt "derleniyor...."
2016-03-10 12:42:16 +01:00
zorla_derle="yok"
2017-07-31 01:21:22 +02:00
paket_derle $dpktyer
2016-02-24 01:27:23 +01:00
done
}
2017-06-10 06:41:58 +02:00
2016-03-03 15:10:44 +01:00
#otomatik derle kontrollu kur
2017-06-10 06:41:58 +02:00
# -derle
2016-04-17 01:08:11 +02:00
paket_derle_kur(){
2016-03-23 06:53:40 +01:00
tekrarkur="hayir"
2017-07-31 01:21:22 +02:00
derleme_listyap_kontrol
derleme_listyap "$1" && paket_derle_liste bag.liste
2016-03-03 15:10:44 +01:00
}
2016-03-02 01:26:35 +01:00
2017-06-10 06:41:58 +02:00
# odkp
2017-03-05 20:08:43 +01:00
oto_derle_kur_paketle(){
2017-09-09 06:31:30 +02:00
paketvt_guncelle
2017-06-10 06:41:58 +02:00
# mps -kur
paket_inkur_oto $1 &&
2017-03-05 20:08:43 +01:00
if [ -f "$talimatname_dizin/genel/$1/$1.sira" ];then
2017-03-05 20:10:36 +01:00
ryaz 32 "sıralı derleme yapılacak."
2017-07-31 01:21:22 +02:00
paket_derle_liste "$talimatname_dizin/genel/$1/$1.sira"
2017-03-05 20:08:43 +01:00
else
2017-07-31 01:21:22 +02:00
paket_derle_kur $1
2017-03-05 20:08:43 +01:00
fi
}
2016-03-02 01:26:35 +01:00
paket_kur_oto(){
2016-08-04 09:15:54 +02:00
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
2016-03-02 01:26:35 +01:00
for pkt in `ls $kpkt* | cut -d'#' -f1`;do
2016-03-12 00:09:47 +01:00
pak=`ls "$pkt#"*`
2017-06-10 06:41:58 +02:00
mps -k "$pak" && paket_inkur_oto "$pkt"
2016-03-02 01:26:35 +01:00
done
done
2016-08-04 09:15:54 +02:00
rm -rf otokur.list
2016-03-02 01:26:35 +01:00
}
2016-03-10 01:28:42 +01:00
2016-08-04 08:58:35 +02:00
paket_kur_oto_zorla(){
2016-08-04 09:09:23 +02:00
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
2016-08-04 08:58:35 +02:00
for pkt in `ls $kpkt* | cut -d'#' -f1`;do
pak=`ls "$pkt#"*`
paket_sil "$pkt" "evet"
2017-06-10 06:41:58 +02:00
mps -k "$pak" && paket_inkur_oto "$pkt"
2016-08-04 08:58:35 +02:00
done
done
2016-08-04 09:09:23 +02:00
rm -rf otokur.list
2016-08-04 08:58:35 +02:00
}
2016-03-17 03:08:24 +01:00
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#"*`
2016-08-04 09:44:56 +02:00
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"
2016-03-17 03:08:24 +01:00
done
done
}
2016-03-17 04:08:47 +01:00
#otomatik kontrollu kur
2016-03-12 00:09:47 +01:00
paket_kur_oto2(){
2017-07-31 01:21:22 +02:00
derleme_listyap_kontrol
derleme_listyap "$1" > /dev/null && mps -ok bag.liste
2016-03-12 00:09:47 +01:00
}
2016-04-21 15:37:37 +02:00
paket_inkur_liste_direk(){
local kpkt
for kpkt in `cat $1`;do
2017-07-31 02:49:21 +02:00
agdan_kur "$kpkt"
2016-04-21 15:37:37 +02:00
done
}
2016-04-05 02:02:34 +02:00
paket_inkur_liste(){
2016-04-21 15:25:08 +02:00
local kpkt
2016-03-17 04:08:47 +01:00
for kpkt in `cat $1`;do
2017-06-10 06:41:58 +02:00
paket_inkur_oto "$kpkt"
2016-03-17 04:08:47 +01:00
done
}
2017-06-10 06:41:58 +02:00
# otomatik kontrollu kur
# -kur
2016-04-05 02:02:34 +02:00
paket_inkur_oto(){
2017-09-06 19:52:02 +02:00
local konum anakonum kurdurum
2017-07-31 01:21:22 +02:00
derleme_listyap_kontrol
2017-09-06 19:52:02 +02:00
#derleme_listyap "$1" | grep "bulunamadı"
kurulum_listyap "$1" | grep "bulunamadı"
2016-04-21 15:25:08 +02:00
local kpkt
2017-07-31 01:21:22 +02:00
for paketkonum in `cat bag.liste`;do
2017-06-10 06:41:58 +02:00
# önce talimat-anatalimat karşılaştırması yapılır.
2017-07-31 01:21:22 +02:00
kpkt=`basename $paketkonum`
2017-06-10 06:41:58 +02:00
konum="`find "$talimatname_dizin" -name $kpkt`"
anakonum="`find "$ana_talimatname_dizin" -name $kpkt`"
2017-07-31 01:21:22 +02:00
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"
2017-06-10 06:41:58 +02:00
else
2017-07-31 01:21:22 +02:00
ryaz 31 "$kpkt talimatı bulunamadı!"
2017-06-10 06:41:58 +02:00
fi
2016-04-21 15:25:08 +02:00
done
2017-09-06 19:52:02 +02:00
if [ $(kurulu_kontrol $1) = "degil" ];then
kurdurum="kurulu değil"
elif [ $(kurulu_kontrol $1) = "kurulu" ];then
kurdurum="kurulu"
else
kurdurum="tanımsız paket"
fi
ryaz 32 "\n$1 $kurdurum "
2016-07-19 20:47:33 +02:00
rm -rf *.liste *.eski
2016-03-17 04:08:47 +01:00
}
2016-03-10 01:28:42 +01:00
paket_sil_oto(){
local spkt
for spkt in `cat $1`;do
oto_silme="evet"
paket_sil "$spkt" "$oto_silme"
done
}
2016-05-03 01:31:38 +02:00
2017-01-29 19:47:24 +01:00
paket_sil_oto_onayli(){
local spkt
2017-08-16 22:39:57 +02:00
for spkt in `perl -e 'print reverse <>' $1`;do
2017-08-16 21:50:44 +02:00
paket_sil "$spkt" "hayir" "evet"
2017-01-29 19:47:24 +01:00
done
}
2017-09-07 02:10:34 +02:00
paket_sil_gerekli(){
2017-09-07 04:06:55 +02:00
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
if [ -d $VT/$pkaltb ];then
tbsonuc=()
tbsonuc=$(ters_bagimli_bilgi $pkaltb)
if [ ${#tbsonuc[0]} = 0 ];then
ryaz 32 "$pkaltb silinebilir."
echo "$pkaltb" >> /tmp/$1.silinecekler
else
ryaz 31 "$pkaltb silinemez."
fi
else
ryaz 32 "$pkaltb zaten kurulu değil"
fi
done
cat /tmp/$1.silinecekler
paket_sil_oto_onayli "/tmp/$1.silinecekler"
else
ryaz 32 "$1 zaten kurulu değil"
exit 1
fi
2017-09-07 02:10:34 +02:00
}
2017-03-19 00:20:09 +01:00
paketsiz_talimatlar(){
2017-08-08 21:39:37 +02:00
for talimatyol in `( ls -d $talimatname_dizin/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`
elif [ -d $ektalimatname/*/$talimat ];then
ack=`grep -e '# Description:' $ektalimatname/*/$talimat/talimat | cut -d':' -f2`
fi
printf '%s = %s \n' "$talimat" "$ack"
fi
2017-03-19 00:20:09 +01:00
fi
done
}
2016-05-03 01:31:38 +02:00
paket_guncelle(){
2017-07-31 15:35:46 +02:00
surum_kontrol $1 $2
devir_kontrol $1 $2
2016-05-03 01:31:38 +02:00
}
paket_guncelle_oto(){
2017-09-06 19:52:02 +02:00
derleme_listyap "$1" > /dev/null &&
2016-05-03 01:31:38 +02:00
local kpkt
for kpkt in `cat bag.liste`;do
2017-09-09 06:31:30 +02:00
durum=`kurulu_kontrol "$kpkt"`
if [ "$durum" = "kurulu" ]; then
paket_guncelle "$kpkt"
2017-09-09 06:33:32 +02:00
fi
2016-05-03 01:31:38 +02:00
done
rm bag.liste tumbag.liste
}
2017-07-31 15:35:46 +02:00
dongu_gosterge(){
count=0
total=$1
pstr="[=======================================================================]"
while [ $count -lt $total ]; do
2017-07-31 15:54:50 +02:00
sleep 0.5 # yapılacak iş veya uyutulur.
2017-07-31 15:35:46 +02:00
count=$(( $count + 1 ))
pd=$(( $count * 73 / $total ))
printf "\r%3d.%1d%% %.${pd}s" $(( $count * 100 / $total )) $(( ($count * 1000 / $total) % 10 )) $pstr
done
}
2017-09-09 08:55:43 +02:00
guncelleme_tespit(){
guncelleme_dosya="/tmp/mps.guncellenecekler"
rm -f $guncelleme_dosya
touch $guncelleme_dosya
for kpaket in $(ls $VT/);do
satir=$(sed -n '7p' < $VT/$kpaket/META)
surum=${satir:1:${#satir}-1}
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!"
exit 1
fi
source $pkt/talimat
deposurum=`echo -e "$version" | sort -V | head -n1`
depodevir=`echo -e "$release" | sort -V | head -n1`
#echo $kpaket " : $surum ---> $deposurum" "$devir ---> $depodevir"
#sleep 3
if [ "$surum" != "$deposurum" ];then
printf "$kpaket -surum: ";echo "$surum ---> $deposurum"
echo $kpaket >> $guncelleme_dosya
elif [ "$devir" != "$depodevir" ];then
printf "$kpaket -devir: ";echo "$devir ---> $depodevir"
echo $kpaket >> $guncelleme_dosya
fi
done
}
2017-07-31 15:35:46 +02:00
2016-05-03 01:42:27 +02:00
sistem_guncelle(){
2017-07-31 15:35:46 +02:00
count=0
2017-09-09 04:48:16 +02:00
esgec=(xorg-font xorg-proto kernel-lts kernel-lts-src vlc)
2016-05-03 01:42:27 +02:00
local kpkt
2017-05-15 15:09:30 +02:00
local pk_guncelle
2017-07-31 16:05:58 +02:00
total=`ls $VT | wc -l`
2017-07-31 15:35:46 +02:00
pstr="[=======================================================================]"
2017-09-09 06:31:30 +02:00
git_guncelle
paketvt_guncelle
2017-07-31 15:35:46 +02:00
GS_CIKTI="H"
while [ $count -lt $total ]; do
count=$(( $count + 1 ))
pd=$(( $count * 73 / $total ))
printf "\r%3d.%1d%% %.${pd}s" $(( $count * 100 / $total )) $(( ($count * 1000 / $total) % 10 )) $pstr
2017-07-31 16:05:58 +02:00
kpkt=$(ls -rct $VT | tr " " "\n" | sed -n ${count}'p')
2017-07-31 15:35:46 +02:00
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ı"
#ryaz 31 "$kpkt atlandı"
fi
done
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"
2016-05-03 01:42:27 +02:00
for kpkt in `mps -kl`;do
2017-05-15 15:09:30 +02:00
pk_guncelle="e"
case "${esgec[@]}" in *"$kpkt"*) pk_guncelle="h" ;; esac
if [ "$pk_guncelle" = "e" ];then
2017-07-31 15:35:46 +02:00
paket_guncelle "$kpkt" $GS_CIKTI
#printf "."
2017-05-15 15:09:30 +02:00
else
2017-07-31 15:35:46 +02:00
[ $GS_CIKTI = "E" ] && ryaz 31 $kpkt "güncellemesi atlandı"
printf "."
2017-05-15 15:09:30 +02:00
fi
2016-05-03 01:42:27 +02:00
done
2017-07-31 15:35:46 +02:00
ryaz 32 "\nSistem Güncellemesi Tamamlandı."
2016-05-03 01:42:27 +02:00
}
2016-05-03 01:31:38 +02:00
surum_kontrol(){
2017-07-31 15:35:46 +02:00
GS_CIKTI="E"
if [ "$2" ]; then
GS_CIKTI="$2"
fi
2016-05-03 01:31:38 +02:00
local ksurum version pkt dusuk yuksek durum
durum="belirsiz"
satir=`sed -n '7p' < /var/lib/pkg/DB/"$1"/META`
ksurum=${satir:1:${#satir}-1}
2017-08-08 21:39:37 +02:00
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
2016-05-03 01:31:38 +02:00
source $pkt/talimat
dusuk=`echo -e "$ksurum\n$version" | sort -V | head -n1`
if [ "$ksurum" = "$version" ];then
durum="guncel"
2017-07-31 15:35:46 +02:00
[ $GS_CIKTI = "E" ] && ryaz 33 "$1 sürümü güncel"
#printf "."
2016-05-03 01:31:38 +02:00
else
if [ "$ksurum" = "$dusuk" ];then
durum="yukselt"
else
durum="dusur"
fi
2017-03-07 20:24:59 +01:00
gun_onay="h"
2016-05-03 01:31:38 +02:00
if [ "$durum" <> "guncel" ];then
2017-03-07 20:24:59 +01:00
while true; do
2017-08-01 01:42:44 +02:00
printf "\n"
2017-03-07 20:24:59 +01:00
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
2017-07-23 03:20:01 +02:00
if [ -d "$talimatname_dizin/temel/$1" ]; then
2017-07-23 03:23:36 +02:00
kurulum_dogrulama_icerik $1
2017-07-23 03:20:01 +02:00
tpk="hayir"
paket_sil "$1" "evet"
mps -i $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
2017-03-07 20:24:59 +01:00
ryaz 33 "$1 sürüm güncellemesi yapıldı"
else
ryaz 31 "$1 sürüm güncellemesi yapılmadı"
2017-04-01 01:44:55 +02:00
hataloglama "$1 sürüm güncellemesi yapılmadı"
2017-03-07 20:24:59 +01:00
fi
2016-05-03 01:31:38 +02:00
fi
fi
2017-03-07 20:24:59 +01:00
2016-05-03 01:31:38 +02:00
}
devir_kontrol(){
2017-07-31 15:35:46 +02:00
GS_CIKTI="E"
if [ "$2" ]; then
GS_CIKTI="$2"
fi
2017-03-07 20:24:59 +01:00
local kdevir release pkt dusuk yuksek durum gun_onay
2016-05-03 01:31:38 +02:00
durum="belirsiz"
satir=`sed -n '8p' < /var/lib/pkg/DB/"$1"/META`
kdevir=${satir:1:${#satir}-1}
2017-08-08 21:39:37 +02:00
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
2016-05-03 01:31:38 +02:00
source $pkt/talimat
dusuk=`echo -e "$kdevir\n$release" | sort -V | head -n1`
if [ "$kdevir" = "$release" ];then
durum="guncel"
2017-07-31 15:35:46 +02:00
[ $GS_CIKTI = "E" ] && ryaz 33 "$1 deviri güncel"
#printf "."
2016-05-03 01:31:38 +02:00
else
if [ "$kdevir" = "$dusuk" ];then
durum="yukselt"
else
durum="dusur"
fi
2017-03-07 20:24:59 +01:00
gun_onay="h"
2016-05-03 01:31:38 +02:00
if [ "$durum" <> "guncel" ];then
2017-03-07 20:24:59 +01:00
while true; do
2017-08-01 01:42:44 +02:00
printf "\n"
2017-03-07 20:24:59 +01:00
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"
2017-04-07 05:05:02 +02:00
paket_inkur_oto $1
2017-03-07 20:24:59 +01:00
ryaz 33 "$1 devir güncellemesi yapıldı"
else
ryaz 31 "$1 devir güncellemesi yapılmadı"
2017-04-01 01:44:55 +02:00
hataloglama "$1 devir güncellemesi yapılmadı"
2017-03-07 20:24:59 +01:00
fi
2016-05-03 01:31:38 +02:00
fi
2017-03-07 20:24:59 +01:00
fi
2016-05-03 01:31:38 +02:00
}
2016-02-24 01:27:23 +01:00
paket_derle(){
2017-07-31 01:21:22 +02:00
#parametre olarak direk konum gelecek
2016-10-03 07:43:24 +02:00
#eski derleme kalıntılarını temizle
2016-03-12 14:27:37 +01:00
if [ -d tmp.* ];then
rm -r tmp.*
fi
2016-03-07 00:39:49 +01:00
kaynakdizin_kontrol
2017-07-31 01:21:22 +02:00
local konum derleme_onay eh bagimd derpaket
2016-02-24 01:27:23 +01:00
derleme_onay="h"
2017-07-31 01:21:22 +02:00
if [ -d "$1" ];then
konum="$1"
derpaket=`basename $1`
else
2017-08-01 01:06:59 +02:00
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
fi
2017-07-31 01:21:22 +02:00
derpaket="$1"
fi
2016-02-24 01:27:23 +01:00
if [ -d "$konum" ];then
2017-07-31 01:21:22 +02:00
mkdir -p tmp."$derpaket"
cp -a $konum/* tmp."$derpaket"/
cd tmp."$derpaket"
2017-08-01 01:06:59 +02:00
2017-07-31 01:21:22 +02:00
if [ "`kurulu_kontrol "$derpaket"`" = "kurulu" ] && [ "$zorla_derle" = "yok" ];then
2016-03-02 16:48:57 +01:00
derleme_onay="h"
2016-02-24 01:27:23 +01:00
else
derleme_onay="e"
fi
if [ "$derleme_onay" = "e" ];then
2017-07-31 01:21:22 +02:00
ryaz 33 "$derpaket" "derleniyor...."
2016-02-28 00:55:08 +01:00
echo "------------------------"
2017-07-31 01:21:22 +02:00
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
2016-02-28 00:55:08 +01:00
exit 1
fi
2016-02-24 01:27:23 +01:00
if [ "$kurulum_onay" = "evet" ];then
2017-07-31 01:21:22 +02:00
for kpkt in `ls $derpaket* | cut -d'#' -f1`;do
2016-02-24 01:27:23 +01:00
mps -k "$kpkt#"*
done
fi
mv *.mps.lz ../
2016-03-07 23:04:43 +01:00
else
2016-10-03 07:43:24 +02:00
ryaz 32 "paket zaten kurulu,yine de derlemek için:
2017-07-31 01:21:22 +02:00
mps -zd $derpaket"
2016-02-24 01:27:23 +01:00
fi
cd ..
2017-07-31 01:21:22 +02:00
rm -r tmp."$derpaket"
2016-02-24 01:27:23 +01:00
else
2016-10-03 07:43:24 +02:00
ryaz 31 "talimat dosyası bulunamadı."
2017-04-01 01:44:55 +02:00
hataloglama "talimat dosyası bulunamadı."
2016-02-24 01:27:23 +01:00
fi
}
2016-03-03 15:10:44 +01:00
2017-07-31 01:21:22 +02:00
bagimlilar_eski(){
2016-02-24 01:27:23 +01:00
local bagimd konum
konum="`find "$talimatname_dizin" -name $1`"
2016-06-02 01:55:44 +02:00
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'`
2016-10-03 07:43:24 +02:00
#sıralı gösterme
2016-06-02 01:55:44 +02:00
echo `echo "$bagimd" | sed 's/,/ /g'`
fi
else
echo "talimatyok"
exit 1
2016-03-02 01:26:35 +01:00
fi
}
2017-07-31 01:21:22 +02:00
bagimlilar(){
2017-07-21 00:28:01 +02:00
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
}
2017-09-07 02:10:34 +02:00
ters_bagimli_bilgi_eski(){
2017-08-08 21:39:37 +02:00
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
}
2017-09-07 02:10:34 +02:00
ters_bagimli_bilgi(){
2017-09-04 07:07:10 +02:00
gtbpaket=$1
tbgdosya=$(mktemp)
grep -rli "\s${gtbpaket}\s.*Depends\|Depends.*\s${gtbpaket}\s" $talimatname_dizin > $tbgdosya ;
2017-09-07 02:10:34 +02:00
grep -rli "\s${gtbpaket}\s.*Depends\|Depends.*\s${gtbpaket}\s" $ektalimatname >> $tbgdosya ;
grep -rli "\s${gtbpaket}\s.*Depends\|Depends.*\s${gtbpaket}$" $ektalimatname >> $tbgdosya ;
2017-09-04 07:07:10 +02:00
grep -rli "\s${gtbpaket}\s.*Depends\|Depends.*\s${gtbpaket}$" $talimatname_dizin >> $tbgdosya ;
2017-09-07 02:10:34 +02:00
cat $tbgdosya | xargs -I {} dirname {} | xargs -I {} basename {} | sort > /tmp/${gtbpaket}.tb.txt
2017-09-04 07:07:10 +02:00
rm -f $tbgdosya
cat /tmp/${gtbpaket}.tb.txt
2017-09-07 02:10:34 +02:00
rm -rf $tbgdizin
2017-09-04 07:07:10 +02:00
}
2017-08-30 21:36:24 +02:00
kirik_ters_bagimli_bilgi(){
2017-09-08 07:21:56 +02:00
ryaz 32 "Aşağıdaki kurulu ters bağımlılıklarda kırılım araması yapılacaktır."
2017-09-07 02:10:34 +02:00
ters_bagimli_bilgi $1
2017-09-08 07:21:56 +02:00
ryaz 32 "........"
2017-09-07 02:10:34 +02:00
talimatlar=$(cat /tmp/$1.tb.txt)
for tal in $talimatlar;do
2017-08-30 21:58:39 +02:00
#paket kuruluysa kontrolu yapılacak
if [ -d "$VT/$tal" ];then
2017-09-08 07:25:07 +02:00
ryaz 34 "$tal paketi araştırılıyor:"
2017-09-07 02:10:34 +02:00
kirik_kontrol_paket $tal
2017-09-08 07:25:07 +02:00
ryaz 34 "--------------------------"
2017-08-30 21:36:24 +02:00
fi
done
}
2016-03-02 01:26:35 +01:00
bagimli_bilgi(){
local bagimd konum bag
2017-08-08 21:39:37 +02:00
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ı!"
exit 1
fi
2016-03-02 01:26:35 +01:00
bagimd=`cat $konum/talimat | grep "Depends" | cut -d':' -f2`
if [ -n "$bagimd" ]; then
bagimd=`echo "$bagimd" | sed 's/,/ /g'`
2016-10-03 07:43:24 +02:00
#sıralı gösterme
2016-03-02 01:26:35 +01:00
#echo `echo "$bagimd" | sed 's/,/ /g'`
#kurulu kontrollu gosterim
for bag in $bagimd;do
2017-08-10 01:17:44 +02:00
if [ "$2" = "dogrula" ];then
kurulum_dogrulama_icerik "$bag"
else
2017-08-29 03:12:27 +02:00
echo "$bag" "`kurulu_kontrol $bag`"
2017-08-10 01:17:44 +02:00
fi
2016-03-02 01:26:35 +01:00
done
fi
2017-08-10 01:17:44 +02:00
if [ "$2" = "dogrula" ];then
kurulum_dogrulama_icerik "$1"
else
echo "$1" "`kurulu_kontrol $1`"
fi
2016-02-24 01:27:23 +01:00
}
2017-01-29 19:47:24 +01:00
bagimli_bilgi_dosyala(){
2017-09-07 02:10:34 +02:00
rm -f "/tmp/$1.gerekler.liste"
2017-01-29 19:47:24 +01:00
local bagimd konum bag
2017-08-08 21:39:37 +02:00
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ı!"
exit 1
fi
2017-01-29 19:47:24 +01:00
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
2017-09-07 02:10:34 +02:00
echo $bag >> "/tmp/$1.gerekler.liste"
2017-01-29 19:47:24 +01:00
done
fi
2017-09-07 02:10:34 +02:00
echo "$1" >> "/tmp/$1.gerekler.liste"
2017-01-29 19:47:24 +01:00
}
2017-08-22 05:15:34 +02:00
silme_etkilenen_kontrol(){
2016-04-16 23:32:13 +02:00
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
}
2017-06-10 06:41:58 +02:00
# iki dosyanın içerik karşılaştırması yapar.
dosya_karsilastir(){
if cmp -s "$1" "$2"
then
echo "evet"
else
echo "degil"
fi
}
2017-02-13 16:45:41 +01:00
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ı!"
2017-04-01 01:44:55 +02:00
hataloglama "mps.log bulunamadı!"
2017-02-13 16:45:41 +01:00
fi
}
2017-08-22 05:15:34 +02:00
etkilenen_kurtar(){
2016-10-27 22:45:46 +02:00
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
2016-10-29 22:25:25 +02:00
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
2017-08-22 05:15:34 +02:00
ryaz 32 "$paket etkilenen dosyaları kurtarıldı."
2016-10-29 22:25:25 +02:00
else
2017-08-22 05:15:34 +02:00
ryaz 32 "$paket etkilenen dosyası yok."
2016-10-29 22:25:25 +02:00
fi
2016-10-27 22:45:46 +02:00
rm -f /tmp/$paket.sil
else
ryaz 31 "kurulan paket yok!"
2017-04-01 01:44:55 +02:00
hataloglama "kurulan paket yok!"
2016-10-27 22:45:46 +02:00
fi
}
2016-03-12 01:06:20 +01:00
ters_bagimli_kontrol(){
2017-09-07 02:10:34 +02:00
ters_bagimli_bilgi $1
cat /tmp/${1}.tb.txt | sort > tersb.liste
2016-03-12 01:44:27 +01:00
ls /var/lib/pkg/DB/ | sed "/$1/d" | sort > simdiki.liste
2016-03-12 01:06:20 +01:00
comm -12 tersb.liste simdiki.liste
rm tersb.liste simdiki.liste
2016-03-12 00:09:47 +01:00
}
2016-02-24 01:27:23 +01:00
kurulu_kontrol(){
2016-03-31 02:28:09 +02:00
if [ -d "$kokdizin/var/lib/pkg/DB/$1" ];then
2016-02-24 01:27:23 +01:00
echo "kurulu"
exit 1
fi
2017-04-01 14:15:52 +02:00
if [[ $(find $talimatname_dizin -name $1) ]];then
echo "degil"
2017-08-08 21:39:37 +02:00
elif [[ $(find $ektalimatname -name $1) ]];then
echo "degil"
2017-04-01 14:15:52 +02:00
else
echo "tanimsiz"
fi
exit 1
2016-02-24 01:27:23 +01:00
}
2016-04-12 00:14:39 +02:00
sistem_kur(){
local spaket
for spaket in `cat $1`;do
./$betikad -ik "$spaket" -kok $2;
done
}
2016-03-07 00:39:49 +01:00
kaynakdizin_kontrol(){
if [ ! -d $DERLEME_KAYNAKDIZIN ];then
mkdir $DERLEME_KAYNAKDIZIN
fi
}
2016-03-29 02:16:52 +02:00
logdizin_kontrol(){
2016-03-31 03:23:45 +02:00
if [ ! -d $kokdizin$LOGDIZIN ];then
mkdir $kokdizin$LOGDIZIN
2016-03-29 02:16:52 +02:00
fi
2016-03-31 03:23:45 +02:00
if [ ! -d $kokdizin$LOGDIZIN/derleme ];then
mkdir $kokdizin$LOGDIZIN/derleme
2016-03-29 02:16:52 +02:00
fi
2016-03-31 03:23:45 +02:00
if [ ! -f $kokdizin$LOGDIZIN/mps.log ];then
touch $kokdizin$LOGDIZIN/mps.log
2016-03-29 02:16:52 +02:00
fi
2017-04-01 01:44:55 +02:00
if [ ! -f $kokdizin$LOGDIZIN/mps-hata.log ];then
touch $kokdizin$LOGDIZIN/mps-hata.log
fi
2017-04-04 21:32:09 +02:00
if [ ! -f $kokdizin$LOGDIZIN/mps-git.log ];then
touch $kokdizin$LOGDIZIN/mps-git.log
fi
2016-03-29 02:16:52 +02:00
}
2016-03-09 01:57:13 +01:00
tarihce_dkontrol(){
if [ ! -d $TARIHCE_DIZIN ];then
mkdir $TARIHCE_DIZIN
fi
}
2016-05-01 04:40:58 +02:00
temel_tarihce_kontrol(){
if [ ! -f $TARIHCE_DIZIN/temel-pkvt.tar.lz ];then
tarihce_olustur "temel"
fi
}
2016-03-09 01:57:13 +01:00
tarihce_liste(){
tarihce_dkontrol
ls $TARIHCE_DIZIN/
}
tarihce_yap(){
tarihce_dkontrol
2016-03-10 01:28:42 +01:00
local t_isim
if [ "$temel_tarihce" = "evet" ];then
t_isim="temel"
else
t_isim=`date +%m-%d-%y.%H%M%S`
fi
2016-05-01 04:40:58 +02:00
tarihce_olustur "$t_isim"
}
tarihce_olustur(){
bsdtar -P -r -f $TARIHCE_DIZIN/"$1"-pkvt.tar $VT
lzip -9 $TARIHCE_DIZIN/"$1"-pkvt.tar
2016-03-09 01:57:13 +01:00
}
tarihce_yukle(){
tarihce_dkontrol
2016-03-12 00:09:47 +01:00
local islem_onay cikis
2016-03-10 01:28:42 +01:00
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
2016-03-12 00:09:47 +01:00
ls /tmp/var/lib/pkg/DB/ > hedef.pkvt
2016-03-10 01:28:42 +01:00
ls /var/lib/pkg/DB/ > simdiki.pkvt
2016-06-02 03:56:21 +02:00
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
2016-03-10 01:28:42 +01:00
rm -r /tmp/var
2016-03-12 00:09:47 +01:00
cikis=""
2016-03-10 01:28:42 +01:00
if [ -s sil.liste ];then
ryaz 32 "silinecekler"
ryaz 32 "------------"
cat sil.liste
2016-03-12 00:09:47 +01:00
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!"
2016-03-10 01:28:42 +01:00
exit 1
fi
while true; do
2016-10-03 07:46:00 +02:00
ryaz 34 "otomatik geri dönüşüm başlasın mı?";read -p "e veya h-> " eh
2016-03-10 01:28:42 +01:00
case $eh in
2016-03-12 00:09:47 +01:00
[Ee]* ) islem_onay="e"; break;;
2016-03-10 01:28:42 +01:00
[Hh]* ) break;;
* ) echo "e veya h";;
esac
done
2016-03-12 00:09:47 +01:00
if [ "$islem_onay" = "e" ];then
2016-03-10 01:28:42 +01:00
mps -os sil.liste
2017-08-30 03:24:29 +02:00
mps kurul kur.liste
2016-03-10 01:28:42 +01:00
mv sil.liste silinenler.liste
2016-03-12 00:09:47 +01:00
mv kur.liste kurulanlar.liste
2016-03-10 01:28:42 +01:00
exit 1
fi
mv sil.liste sil_iptal.liste
2016-03-12 00:09:47 +01:00
mv kur.liste kur_iptal.liste
2016-03-09 01:57:13 +01:00
else
2016-10-03 07:43:24 +02:00
ryaz 31 "ilgili tarihce dosyası bulunamadı!"
2017-04-01 01:44:55 +02:00
hataloglama "ilgili tarihce dosyası bulunamadı!"
2016-03-09 01:57:13 +01:00
fi
}
tarihce_sil(){
tarihce_dkontrol
2016-03-10 01:28:42 +01:00
if [ -f $TARIHCE_DIZIN/"$1-pkvt.tar.lz" ];then
rm -f $TARIHCE_DIZIN/"$1-pkvt.tar.lz"
2016-03-09 01:57:13 +01:00
else
2016-10-03 07:43:24 +02:00
ryaz 31 "ilgili tarihce dosyası bulunamadı!"
2017-04-01 01:44:55 +02:00
hataloglama "ilgili tarihce dosyası bulunamadı!"
2016-03-09 01:57:13 +01:00
fi
}
2017-03-12 21:45:04 +01:00
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!"
2017-04-01 01:44:55 +02:00
hataloglama "Tanımsız paket sunucusu!"
2017-03-12 21:45:04 +01:00
fi
}
2017-08-08 21:39:37 +02:00
sunucu_ayarla_y(){
wget -q --spider "$1/paket.vt"
yenisun="$1"
if [ $? -eq 0 ]; then
source /etc/mps.conf
ydizi=("${sunucular[@]}")
ydizi[0]="$1"
echo ${ydizi[@]}
esnc=${sunucular[0]}
ysnc=${ydizi[0]}
sed -i "/^sunucular/s/"${esnc}"\'"$ysnc"'/g" /etc/mps.conf
else
ryaz 31 "Tanımsız paket sunucusu!"
fi
}
2016-03-29 02:16:52 +02:00
loglama(){
logdizin_kontrol
2016-03-31 03:23:45 +02:00
echo "$(date +'%F %T') $1" >> "$kokdizin/$LOGDIZIN/mps.log"
2016-03-09 01:57:13 +01:00
}
2017-04-01 01:44:55 +02:00
hataloglama(){
logdizin_kontrol
echo "$(date +'%F %T') $1" >> "$kokdizin/$LOGDIZIN/mps-hata.log"
}
2016-11-30 01:31:22 +01:00
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`
2017-02-08 20:08:21 +01:00
wget $2 $dosya -O $gdosya
dosya=$gdosya
fi
if [[ $2 =~ "-6" ]]; then
ryaz 32 "talimat linkten cekilecek"
gdosya=`mktemp`
wget $2 $dosya -O $gdosya
2016-11-30 01:31:22 +01:00
dosya=$gdosya
fi
if [ ! -f $dosya ];then
ryaz 31 "$dosya talimat dosyasi yok!"
2017-04-01 01:44:55 +02:00
hataloglama "$dosya talimat dosyasi yok!"
2016-11-30 01:31:22 +01:00
exit 1
fi
local paketisim
paketisim=`grep -ri 'name=' $dosya | cut -d'=' -f 2`
if [ ! -n "$paketisim" ]; then
ryaz 31 "paket ismi degiskeni bulunamadı!"
2017-04-01 01:44:55 +02:00
hataloglama "paket ismi degiskeni bulunamadı!"
2016-11-30 01:31:22 +01:00
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!"
2017-04-01 01:44:55 +02:00
hataloglama "$paketisim talimatı zaten talimatnamede var!"
2016-11-30 01:31:22 +01:00
fi
}
2016-06-21 20:42:06 +02:00
talimat_olustur(){
if [ "$1" = '?' ];then
2016-10-03 07:43:24 +02:00
ryaz 34 "kullanım : mps -to paket_ismi"
2016-06-21 20:42:06 +02:00
else
local name
name=$1
mkdir -p $name
tee "$name/talimat" > /dev/null <<EOF
# description:x
# url:x
# packager:milisarge
# Depends on:
name=$name
version=1
release=1
source=()
build () {
cd name-version
./autogen.sh
./configure --prefix=/usr
make
make DESTDIR=$PKG install
}
EOF
2016-10-03 07:46:00 +02:00
ryaz 34 $name "talimatı oluşturuldu."
2016-06-21 20:42:06 +02:00
fi
}
2016-03-07 00:39:49 +01:00
git_guncelle() {
kaynakdizin_kontrol
2016-03-31 03:23:45 +02:00
gitayar_kontrol
2016-03-07 00:39:49 +01:00
cd $DERLEME_KAYNAKDIZIN
#git sunucudan guncelleme
2016-10-03 07:43:24 +02:00
ryaz 33 "git sunucudan güncelleme çekiliyor."
2016-03-07 00:39:49 +01:00
if [ ! -d milis.git ];then
git clone $git_sunucu milis.git
2016-05-01 05:09:29 +02:00
rsync -av /sources/milis.git/rootfs/* /
2016-03-07 00:39:49 +01:00
else
cd milis.git
2017-04-04 21:32:09 +02:00
git pull >& $LOGDIZIN/mps-git.log
if grep -q "Already\ up-to-date" $LOGDIZIN/mps-git.log; then
ryaz 32 "git deposu güncel."
else
2017-04-07 04:46:22 +02:00
#ryaz 32 `cat $LOGDIZIN/mps-git.log`
2017-04-04 21:32:09 +02:00
ryaz 32 "git deposu güncellendi."
fi
2017-03-29 00:04:22 +02:00
#baslangic betiklerinin guncellenmesi
2017-03-29 17:04:19 +02:00
rsync -aviz -q --delete /sources/milis.git/rootfs/lib/services/* /lib/services/
2016-03-07 00:39:49 +01:00
fi
2016-10-24 22:19:15 +02:00
cd `dirname $talimatname_dizin`
2016-10-03 07:46:00 +02:00
ryaz 33 "yerele eşitleniyor."
2016-10-24 22:19:15 +02:00
rm -r $talimatname_dizin
mkdir -p $talimatname_dizin
2016-10-27 19:18:32 +02:00
rsync -aviz -q --delete $DERLEME_KAYNAKDIZIN/milis.git/talimatname/ $talimatname_dizin
2016-03-11 17:48:24 +01:00
rm -r `dirname $talimatname_dizin`/bin/*
2016-10-27 19:18:32 +02:00
rsync -aviz -q --delete $DERLEME_KAYNAKDIZIN/milis.git/bin/ `dirname $talimatname_dizin`/bin
2016-04-21 02:17:18 +02:00
rm -r `dirname $talimatname_dizin`/ayarlar/*
2016-10-27 19:18:32 +02:00
rsync -aviz -q --delete $DERLEME_KAYNAKDIZIN/milis.git/ayarlar/ `dirname $talimatname_dizin`/ayarlar
2016-10-03 07:43:24 +02:00
#ikili dosyaların /usr/bin altına kısayol atılması
2016-09-18 12:07:58 +02:00
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
2017-04-04 21:32:09 +02:00
ryaz 32 "yerele eşitleme tamam."
2016-03-07 00:39:49 +01:00
}
2016-10-16 03:20:36 +02:00
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
}
2017-06-21 06:20:18 +02:00
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
}
2017-03-28 04:34:52 +02:00
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!!!"
2017-04-01 01:44:55 +02:00
hataloglama "$1 servisi kurulum olumsuz!!!"
2017-03-28 04:34:52 +02:00
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!!!"
2017-04-01 01:44:55 +02:00
hataloglama "$1 servisi silme olumsuz!!!"
2017-03-28 04:34:52 +02:00
fi
cd -
}
2017-07-14 14:02:25 +02:00
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
}
2017-08-08 21:39:37 +02:00
paketvt_guncelle_eski(){
2016-05-01 04:40:58 +02:00
temel_tarihce_kontrol
2017-08-08 21:39:37 +02:00
wget -q --spider "$sunucu""paket.vt"
2016-02-24 01:27:23 +01:00
#if wget -P /tmp -q "$sunucu""paket.vt" > /dev/null; then
if [ $? -eq 0 ]; then
2017-03-12 21:49:27 +01:00
ryaz 32 $sunucu
2017-04-05 03:42:43 +02:00
ryaz 32 "paket veritabanı güncelleniyor." "$paketdepo""paket.vt"
2016-02-24 01:27:23 +01:00
if [ -f "$paketdepo""paket.vt" ];then
mv "$paketdepo""paket.vt" "$paketdepo""paket.vt.eski"
fi
2017-08-08 21:39:37 +02:00
wget -q --show-progress -P "$paketdepo" "$sunucu""paket.vt"
2016-02-24 01:27:23 +01:00
#rm /tmp/paket.vt*
2016-06-30 13:40:08 +02:00
mps -kudo
2016-02-24 01:27:23 +01:00
exit 1
fi
2017-04-05 03:42:43 +02:00
ryaz 31 "paket veritabanı güncelleme olumsuz."
hataloglama "paket veritabanı güncelleme olumsuz."
2016-02-24 01:27:23 +01:00
}
2017-08-08 21:39:37 +02:00
2016-03-07 00:39:49 +01:00
talimat_bilgi(){
local konum HEAD
2017-08-08 21:39:37 +02:00
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ı!"
exit 1
fi
grep -B 12 "build()" $konum/talimat
2016-03-07 00:39:49 +01:00
}
2016-02-24 01:27:23 +01:00
sistem_kontrol(){
paketvt_kontrol
sunucu_kontrol
}
sunucu_kontrol(){
2017-08-08 21:39:37 +02:00
uzunluk=${#sunucular[@]}
for ((i=1;i<=$uzunluk;i++)); do
pktsunucu=${sunucular[$i-1]}
wget --no-check-certificate -q --spider "$pktsunucu/paket.vt"
if [ $? -eq 0 ]; then
ryaz 32 "$pktsunucu paket sunucu aktif"
else
ryaz 31 "$pktsunucu sunucu erişim dışı"
fi
done
2016-02-24 01:27:23 +01:00
}
2016-03-31 03:23:45 +02:00
gitayar_kontrol(){
if [ ! -f /root/.gitconfig ];then
git_ssl_iptal
git_otokimlik
fi
}
2017-04-07 06:48:03 +02:00
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
}
2016-06-30 13:33:01 +02:00
kurulum_dogrulama(){
for kuruland in `ls $VT`
do
if [ ! -f "$VT/$kuruland/kurulan" ]; then
2016-10-03 07:43:24 +02:00
ryaz 32 "$kuruland hasarlı kurulum tesbiti!"
2016-06-30 13:33:01 +02:00
rm -r $VT/$kuruland
mps -i $kuruland
mps -k "$paketdepo/$kuruland"*.mps.lz
2016-10-03 07:43:24 +02:00
ryaz 32 "$kuruland hasarlı kurulum onarıldı."
2016-06-30 13:33:01 +02:00
fi
done
}
2017-08-10 22:56:16 +02:00
paket_icerik_dogrulama(){
local dosyayol kontpaketadi tempmpslz pidanayol
kontpaketadi="$1"
if [ -f "$paketdepo/$kontpaketadi#"*.mps.lz ];then
tempmpslz=$(mktemp)
if [ -d $2 ];then
pidanayol="$2"
tar tf "$paketdepo/$kontpaketadi#"*.mps.lz > $tempmpslz
IFS=''
while read dosyayol;do
if [ ! -f $pidanayol$dosyayol ] && [ ! -d $pidanayol$dosyayol ] && [ $dosyayol != ".MTREE" ] && [ $dosyayol != ".META" ]; then
ryaz 31 "$pidanayol$dosyayol hasarlı"
while true; do
ryaz 34 $kontpaketadi" paketi yenilensin mi?";read -p "e veya h-> " eh
case $eh in
[Ee]* ) tekrarkur="evet";agdan_kur "$kontpaketadi";break;;
[Hh]* ) break;;
* ) echo "e veya h";;
esac
done
fi
done < $tempmpslz
else
ryaz 31 "$2 kök dizini bulunamadı!"
exit 1
fi
else
ryaz 31 "$1 paketi bulunamadı!"
exit 1
fi
}
2017-07-28 02:21:57 +02:00
kurulum_dogrulama_icerik_tum(){
2017-09-09 22:01:34 +02:00
ryaz 33 "paket veritabanı yedekleniyor"
2017-08-10 01:17:44 +02:00
tarihce_yap
for kurulanpak in `ls $VT`
2017-07-28 02:21:57 +02:00
do
2017-08-10 01:17:44 +02:00
if [ -f "$VT/$kurulanpak/kurulan" ]; then
kurulum_dogrulama_icerik $kurulanpak
ryaz 32 "$kurulanpak kurulum icerik onarıldı."
2017-07-28 02:21:57 +02:00
fi
done
}
2017-07-23 03:20:01 +02:00
chr_yordam() {
[ "$1" -lt 256 ] || return 1
printf "\\$(printf '%03o' "$1")"
}
ord_yordam() {
LC_CTYPE=C printf '%d' "'$1"
}
2017-07-20 09:55:46 +02:00
kurulum_dogrulama_icerik(){
paketadi="$1"
2017-09-09 22:56:15 +02:00
onar="hayir"
2017-07-23 03:20:01 +02:00
#echo $VT
#tarihce_yap
2017-09-09 22:56:15 +02:00
ryaz 33 "$paketadi içeriği kontrol ediliyor."
2017-07-20 09:55:46 +02:00
if [ -f "$VT/$paketadi/kurulan" ]; then
2017-07-23 03:20:01 +02:00
ilksatir=`head -n 1 $VT/$paketadi/kurulan`
if [[ `echo ${ilksatir}` =~ ^ ]] ; then
ryaz 32 "temel sistem paket kurulan hatası düzeltildi!"
sed -i 's//'\''\//;s//'\''/' $VT/$paketadi/kurulan
fi
2017-09-09 22:56:15 +02:00
#for dosyayol in $(cat $VT/$paketadi/kurulan);do
while read dosyayol; do
#for dosyayol in $(<$VT/$paketadi/kurulan);do
2017-08-10 01:17:44 +02:00
dosyayol=$(echo $dosyayol | sed 's/^.\(.*\).$/\1/')
2017-09-09 22:56:15 +02:00
netdosyayol="${dosyayol:1:${#dosyayol}-1}"
2017-09-09 22:01:34 +02:00
if [ ! -f $dosyayol ] && [ ! -d $dosyayol ] ; then
ryaz 31 "$dosyayol hasarlı"
2017-09-09 22:56:15 +02:00
onar="evet"
2017-07-20 09:55:46 +02:00
fi
2017-09-09 22:56:15 +02:00
done < $VT/$paketadi/kurulan
if [ $onar = "evet" ];then
ryaz 34 "$paketadi hasarlı dosya barındırıyor,düzeltilsin mi?";read -p "e veya h-> " eh
case $eh in
[Ee]* ) tekrarkur="evet";agdan_kur "$paketadi";;
[Hh]* ) ryaz 31 "$paketadi pas geçildi.";;
* ) echo "e veya h";;
esac
fi
2017-08-10 01:17:44 +02:00
2017-07-23 03:20:01 +02:00
ryaz 32 "$paketadi kurulum doğrulama tamamlandı."
elif [ -d "$VT/$paketadi" ]; then
2017-08-10 01:17:44 +02:00
cp -rf $VT $VT.yedek
ryaz 31 "$paketadi hasarlı kurulum tesbiti!"
2017-07-23 03:20:01 +02:00
#onarma
2017-08-10 01:17:44 +02:00
rm -r $VT/$paketadi
mps -i $paketadi
mps -k "$paketdepo/$paketadi#"*.mps.lz
2017-07-20 09:55:46 +02:00
ryaz 32 "$paketadi hasarlı kurulum onarıldı."
2017-07-23 03:20:01 +02:00
else
ryaz 31 "$paketadi kurulu değil!"
2017-07-20 09:55:46 +02:00
fi
}
2017-07-23 03:20:01 +02:00
tamir_temel_kurulan(){
if [ ! -d $VT ] ; then
ryaz 31 "paket kurulum vt bulunamadı!"
exit 1
fi
for paketadi in `ls $VT`
do
sed -i 's//'\''\//;s//'\''/' $VT/$paketadi/kurulan
done
}
2017-08-09 19:56:35 +02:00
depo_paketler_liste(){
2017-08-10 22:56:16 +02:00
ls $paketdepo*.mps.lz
2017-08-09 19:56:35 +02:00
}
depo_paketler_sil(){
while true; do
2017-08-10 22:56:16 +02:00
pktsay="0"
[[ $(ls $paketdepo*.mps.lz) ]] && pktsay=$(ls $paketdepo/*.mps.lz | wc -l)
ryaz 34 "$paketdepo altındaki $pktsay paket silinecek?";read -p "e veya h-> " eh
2017-08-09 19:56:35 +02:00
case $eh in
2017-08-10 22:56:16 +02:00
[Ee]* ) rm $paketdepo/*.mps.lz;ryaz 32 "$paketdepo paketler temizlendi."; break;;
2017-08-09 19:56:35 +02:00
[Hh]* ) break;;
* ) echo "e veya h";;
esac
done
}
2016-07-09 13:35:59 +02:00
kurulum_dosya_listele(){
cat "$VT/$1/kurulan"
}
2017-04-14 20:17:54 +02:00
# bir dosyanın kurulmuş hangi pakette olduğunu bulur.
kurulan_dosya_bul(){
grep -rli "$1" "$VT/" | cut -d "/" -f6
}
2016-02-24 01:27:23 +01:00
paketvt_kontrol(){
mkdir -p /depo/paketler
if [ ! -f /depo/paketler/paket.vt ];then
touch /depo/paketler/paket.vt
fi
}
2016-03-29 02:39:30 +02:00
pvt_olustur(){
if [ ! -f paket.vt ];then
touch paket.vt
fi
if [ -f "paket.vt" ];then
mv "paket.vt" "paket.vt.eski"
fi
2016-10-03 07:46:00 +02:00
ryaz 32 "paket.vt oluşturuluyor...."
2016-03-30 14:28:57 +02:00
for paket in `ls *.mps.lz`
2016-03-29 02:39:30 +02:00
do
paketad="`echo $paket|cut -d "#" -f1`"
shaek=`sha1sum $paket`
echo $paketad $shaek >> paket.vt
done
2016-10-03 07:46:00 +02:00
ryaz 32 "paket.vt oluşturuldu."
2016-03-29 02:39:30 +02:00
}
2017-08-08 21:39:37 +02:00
paketvt_guncelle(){
uzunluk=${#sunucular[@]}
#for snc in "${sunucular[@]}"
for ((i=1;i<=$uzunluk;i++)); do
pktsunucu=${sunucular[$i-1]}
pkvt=""
if [ $i = 1 ];then
pktvt="paket.vt"
else
pktvt="paket${i-1}.vt"
fi
wget --no-check-certificate -q --spider "$pktsunucu""paket.vt"
if [ $? -eq 0 ]; then
ryaz 32 $pktsunucu
ryaz 32 "paket veritabanı güncelleniyor." "$paketdepo""$pktvt"
if [ -f "$paketdepo""$pktvt" ];then
mv "$paketdepo""$pktvt" "$paketdepo""$pktvt.eski"
fi
wget --no-check-certificate -q --show-progress -P "$paketdepo" "$pktsunucu""paket.vt" -O "$paketdepo""$pktvt"
#rm /tmp/paket.vt*
2016-05-27 01:30:25 +02:00
else
2017-08-08 21:39:37 +02:00
ryaz 31 "$pktsunucu paket veritabanı güncelleme olumsuz."
hataloglama "paket veritabanı güncelleme olumsuz."
2016-05-27 01:30:25 +02:00
fi
2017-08-08 21:39:37 +02:00
done
2016-05-27 01:30:25 +02:00
}
2017-08-08 21:39:37 +02:00
paket_indir(){
if [ -f "$paketdepo""paket.vt" ];then
local pkt
uzunluk=${#sunucular[@]}
#paketin paketin sunucularında aranaması,buldugu sunucudan indirmesi
for ((i=1;i<=$uzunluk;i++)); do
pktsunucu=${sunucular[$i-1]}
pkvt=""
if [ $i = 1 ];then
pktvt="paket.vt"
else
pktvt="paket${i-1}.vt"
fi
pkt=`cat "$paketdepo$pktvt" | grep "^$1 " | cut -d' ' -f3`
#ryaz 32 "$1 paketi $pktsunucu altında aranıyor"
if [ $pkt ];then
#ryaz 32 "$1 paketi $pktsunucu altında bulundu"
ekontdeg=`cat "$paketdepo$pktvt" | grep "^$1 " | cut -d' ' -f2`
cpaket="${pkt/'#'/'%23'}"
#paketin sunucuda varlık kontrolu
wget -q --spider "$pktsunucu$cpaket"
if [ $? -eq 0 ]; then
wget --no-check-certificate -nc -q --show-progress -P "$paketdepo" "$pktsunucu$cpaket"
if [[ "$?" != 0 ]]; then
ryaz 31 "indirme hatalı"
hataloglama "indirme hatalı"
else
ryaz 34 "$1 indirildi \t $pktsunucu"
break
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
else
ryaz 31 "$1 paketi bulunamadı $pktsunucu dan silinmiş olmalı!"
fi
else
ryaz 31 "$pktsunucu-$1 paketi bulunmuyor!"
fi
done
else
ryaz 31 "$paketdepo altında paket.vt dosyanız yok.Güncelleme yapınız!"
fi
}
2017-07-31 01:21:22 +02:00
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
2017-08-08 21:39:37 +02:00
paket_indir "$1"
2017-08-12 20:35:08 +02:00
if [ $(find $paketdepo -name $1#* | head -1) ];then
2017-08-12 16:00:49 +02:00
if [ -f $(ls -1t "$paketdepo$1#"* | head -1) ];then
if [ "$kurulum_onay" = "evet" ];then
if [ "$tekrarkur" = "evet" ];then
paket_sil "$1" "evet"
fi
#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#"*)
elif [ $surumler > 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"
icerik_ekle $kurulacak_guncel_paket
fi
2017-07-31 01:21:22 +02:00
fi
2017-08-12 16:00:49 +02:00
else
ryaz 31 "$1 indirme hatası"
2017-07-31 01:21:22 +02:00
fi
fi
2017-08-08 21:39:37 +02:00
elif [ "$kkont" = "kurulu" ];then
2017-07-31 02:49:21 +02:00
#ryaz 32 "$1 paketi zaten kurulu!"
printf "."
2017-08-08 21:39:37 +02:00
else
ryaz 31 "tanımsız paket veya tekrar kurulum iptali var!"
2017-07-31 01:21:22 +02:00
fi
}
2016-02-24 01:27:23 +01:00
ayarlar() {
while [ "$1" ]; do
case $1 in
2017-08-22 07:34:33 +02:00
### Milis_Paket_Sistemi_Yardim
2017-08-22 06:44:51 +02:00
### --------------------------
### mps -i paketismi = sadece paketi indirir,paket kurulmaz.
2016-02-24 01:27:23 +01:00
-i|--indir)
2017-07-31 01:21:22 +02:00
kurulum_onay="olumsuz"
2017-08-10 22:56:16 +02:00
paket_indir "$2" ;;
2017-08-22 06:44:51 +02:00
### mps -ik paketismi = ilgili paketi indirirve kurar.
2016-02-24 01:27:23 +01:00
-ik|--inku)
2016-04-03 02:08:03 +02:00
if [ "$3" == "-kok" ] && [ -d "$4" ]; then
kokdizin="$4"
fi
2017-07-31 01:21:22 +02:00
agdan_kur "$2" ;;
2017-08-22 06:44:51 +02:00
### mps -ikz|yekur paketismi = ilgili indirip tekrardan kurar,kurulu olmasına bakılmaz.
2017-07-23 15:18:59 +02:00
-ikz|yekur)
2017-07-31 01:21:22 +02:00
tekrarkur="evet"
agdan_kur "$2" ;;
2017-08-22 06:44:51 +02:00
### mps -k paketismi..mps.lz = yerel dizindeki paketi kurar.
-k)
2016-03-31 02:28:09 +02:00
if [ "$3" == "-kok" ] && [ -d "$4" ]; then
kokdizin="$4"
tekrarkur="evet"
fi
2017-07-31 01:21:22 +02:00
yerelden_kur "$2" ;;
2017-08-22 06:44:51 +02:00
### mps sil|-s paketismi = ilgili paketi onaylı kaldırır.
2016-09-30 01:16:04 +02:00
-s|sil)
2016-10-02 12:25:49 +02:00
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
2017-09-08 06:49:53 +02:00
paket_sil "$2"
exit 0 ;;
2017-08-22 07:15:53 +02:00
### mps zorsil|-sz paketismi = ilgili paketi onaysız kaldırır.
2016-10-10 19:47:49 +02:00
-sz|zorsil)
paket_sil "$2" "evet";;
2017-08-22 07:34:33 +02:00
### mps gsil paketismi = ilgili paketi güvenli(ters bağımlılıklarına da bakarak) kaldırır.
2017-08-12 15:15:32 +02:00
gsil)
paket_sil "$2" "hayir" "evet";;
2017-08-22 07:34:33 +02:00
### mps -S|silgrub paketismi = ilgili paketi altbağımlılıklarını da sorarak kaldırır.
2017-01-29 19:47:24 +01:00
-S|silgrub)
2017-09-08 14:32:31 +02:00
paket_sil_gerekli "$2"
exit 0 ;;
2017-08-30 03:24:29 +02:00
### mps ara aranan = paket isimleri ve açıklamalarında anahtar kelime arar.
-pa|ara)
2017-09-08 14:32:31 +02:00
paket_ara "$2"
exit 0 ;;
2017-08-30 03:24:29 +02:00
### mps bul aranan = talimat dosyaları içinde anahtar kelimeyi arar.
2016-10-07 21:07:31 +02:00
bul)
2017-09-08 14:32:31 +02:00
kelime_bul "$2"
exit 0 ;;
2017-08-30 03:24:29 +02:00
### mps -d paketisimi = sadece paketi bağımlıksız derler.Genelde bağımlılığı olmayan paketler için kullanılır.
2016-02-24 01:27:23 +01:00
-d|--pkde)
2016-03-07 23:04:43 +01:00
zorla_derle="yok"
2016-02-24 01:27:23 +01:00
kurulum_onay="olumsuz"
2017-09-09 06:31:30 +02:00
paket_derle "$2"
exit 0 ;;
2017-08-30 03:24:29 +02:00
### mps -zd paketismi = Pake kurulu olsa bile derleme yapılır.Bağımlıksız derleme için kullanılır.
2016-03-07 18:52:54 +01:00
-zd|--pkzde)
zorla_derle="evet"
kurulum_onay="olumsuz"
2017-09-08 19:15:46 +02:00
paket_derle "$2"
exit 0 ;;
2017-08-30 21:05:26 +02:00
### mps odkp paketismi = bir paketi bağımlılık zinciri çıkarıp gereklileri önce kurar gerekli olanları derler,paketler ve kurar.
2017-03-05 20:08:43 +01:00
odkp)
2017-07-23 03:53:27 +02:00
if [ -d "$talimatname_dizin/temel/$2" ] ; then
ryaz 31 "temel paket için odkp kullanılamaz!"
exit 1
fi
2017-09-08 14:32:31 +02:00
oto_derle_kur_paketle "$2"
exit 0 ;;
2016-02-24 01:27:23 +01:00
-dk|--pkdk)
paket_derle "$2" ;;
2017-08-30 03:24:29 +02:00
### mps -derlist liste = verilen liste dosyasındaki paketleri derler.Alt alta yazılı olmalıdır.
2016-04-17 01:08:11 +02:00
-derlist)
paket_derle_liste "$2" ;;
2017-08-30 03:24:29 +02:00
### mps derle paketismi = paketismi için bağımlılık zinciri çıkarıp gerekli tüm paketleri derler,paketler ve kurar.
derle)
2016-04-17 01:08:11 +02:00
paket_derle_kur "$2" ;;
2016-03-02 01:26:35 +01:00
-ok|--pkok)
2016-03-12 00:09:47 +01:00
paket_kur_oto "$2" ;;
2016-08-04 08:58:35 +02:00
-okz)
paket_kur_oto_zorla "$2" ;;
2016-03-17 03:08:24 +01:00
-okl|--pkokl)
paket_kur_liste "$2" ;;
2016-08-04 09:44:56 +02:00
-oklz)
paket_kur_liste_zorla "$2" ;;
2016-10-08 20:42:19 +02:00
-kh)
local templist
templist=`mktemp`
ls *.mps.lz > $templist
mps -okz -H $templist ;;
2016-03-12 00:09:47 +01:00
-ko|--pkko)
2016-03-17 04:08:47 +01:00
paket_kur_oto2 "$2" ;;
2016-04-21 15:37:37 +02:00
-kuruld)
paket_inkur_liste_direk "$2" ;;
2017-08-30 03:24:29 +02:00
### mps kurul liste = verilen liste dosyasındaki paketleri kurar.Alt alta yazılı olmalıdır.
kurul)
2017-06-18 03:32:31 +02:00
if [ -f $PWD/mps-liste ]; then
paket_inkur_liste mps-liste
2017-06-18 03:26:04 +02:00
else
paket_inkur_liste "$2"
fi ;;
2016-04-05 02:02:34 +02:00
-kur)
paket_inkur_oto "$2" ;;
2017-08-30 03:24:29 +02:00
### mps gkur paketismi = git-paketvt günceller ve yerelde mps.lz varsa yereldekini yoksa sunucudan paketi indirip kurar.
2017-08-22 05:18:04 +02:00
gkur)
git_guncelle && paketvt_guncelle && paket_inkur_oto "$2" ;;
2017-08-30 03:24:29 +02:00
### mps kur paketismi = yerelde mps.lz varsa yereldekini yoksa sunucudan paketi indirip kurar.
2017-08-22 05:18:04 +02:00
kur)
2016-10-02 12:25:49 +02:00
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
2016-09-28 22:42:15 +02:00
if [[ "$2" == *"mps.lz"* ]]; then
if [ "$3" == "-kok" ] && [ -d "$4" ]; then
kokdizin="$4"
tekrarkur="evet"
fi
2017-07-31 01:21:22 +02:00
yerelden_kur "$2"
2016-09-28 22:42:15 +02:00
else
paket_inkur_oto "$2"
2017-09-08 06:49:53 +02:00
fi
exit 0 ;;
2017-06-21 06:20:18 +02:00
# özel git projesi kurmak için
2016-10-16 03:20:36 +02:00
gitkur)
git_proje_kur "$2" ;;
2017-08-22 06:02:40 +02:00
# otomatik proje sistemi
2017-06-21 06:20:18 +02:00
# özel git projesi kurmak için
opk)
op_kur "$2" ;;
# özel git projesi silmek için
ops)
op_sil "$2" ;;
2017-08-30 03:24:29 +02:00
### mps serkur paketismi = ilgili paketin servisini kurar
2017-03-28 04:34:52 +02:00
serkur)
servis_kur "$2" ;;
2017-08-30 03:24:29 +02:00
### mps sersil paketismi = ilgili paketin servisini siler
2017-03-28 04:34:52 +02:00
sersil)
servis_sil "$2" ;;
2017-08-30 03:24:29 +02:00
### mps serkon paketismi = servislerin değişmemezlik kontrolünü yapar.
2017-07-14 14:02:25 +02:00
serkon)
servisler_kontrol ;;
2017-08-30 03:24:29 +02:00
### mps kurkos paketismi = ilgili paketin kurulumdan sonraki çalışması gereken betiğini çalıştırır.
2016-10-24 21:54:58 +02:00
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!"
2017-04-01 01:44:55 +02:00
hataloglama "$2 kur-kos yok!"
2016-10-24 21:54:58 +02:00
fi ;;
2017-08-30 03:24:29 +02:00
### mps koskur paketismi = ilgili paketin kurulumdan önceki çalışması gereken betiğini çalıştırır.
2016-10-24 21:54:58 +02:00
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!"
2017-04-01 01:44:55 +02:00
hataloglama "$2 kos-kur yok!"
2016-10-24 21:54:58 +02:00
fi ;;
2017-08-30 03:24:29 +02:00
### mps silkos paketismi = ilgili paketin silindikten sonraki çalışması gereken betiğini çalıştırır.
2016-10-24 21:54:58 +02:00
silkos)
local pkt
pkt="`find $talimatname_dizin -name $2`"
if [ -f $pkt/$2.sil-kos ];then
bash $pkt/$2.sil-kos
else
2017-04-01 01:44:55 +02:00
ryaz 31 "$2 sil-kos yok!"
hataloglama "$2 sil-kos yok!"
2016-10-24 21:54:58 +02:00
fi ;;
2017-08-30 03:24:29 +02:00
### mps kossil paketismi = ilgili paketin silindikten önceki çalışması gereken betiğini çalıştırır.
2016-10-24 21:54:58 +02:00
kossil)
local pkt
pkt="`find $talimatname_dizin -name $2`"
if [ -f $pkt/$2.kos-sil ];then
bash $pkt/$2.kos-sil
else
2017-04-01 01:44:55 +02:00
ryaz 31 "$2 kos-sil yok!"
hataloglama "$2 kos-sil yok!"
2016-10-24 21:54:58 +02:00
fi ;;
2017-08-30 03:24:29 +02:00
### mps -kdl paketismi = ilgili paketin sistemdeki kurulmuş olması gereken dosyalarını gösterir.
2016-07-09 13:35:59 +02:00
-kdl)
if [ ! "$2" ]; then
ryaz 31 "paket ismi eksik"
2017-04-07 06:48:03 +02:00
hataloglama "(-kdl) paket ismi eksik"
2016-07-09 13:35:59 +02:00
exit 1
fi
2017-09-08 07:13:43 +02:00
kurulum_dosya_listele "$2"
exit 0 ;;
2017-08-30 03:24:29 +02:00
### mps -kkp paketismi = ilgili paketin çalışması için eksik olan dosyaları tesbit eder.
2017-04-07 06:48:03 +02:00
-kkp)
if [ ! "$2" ]; then
ryaz 31 "paket ismi eksik"
hataloglama "(-kkp) paket ismi eksik"
exit 1
fi
2017-09-08 18:31:23 +02:00
kirik_kontrol_paket "$2"
exit 0 ;;
2017-08-30 21:36:24 +02:00
### mps kirma paketismi = ilgili paketin sistemde kırdığı paketler tespit edilir.
kirma)
if [ ! "$2" ]; then
ryaz 31 "paket ismi eksik"
hataloglama "(kirma) paket ismi eksik"
exit 1
fi
2017-09-08 07:31:27 +02:00
kirik_ters_bagimli_bilgi "$2"
exit 0 ;;
2017-08-30 21:08:59 +02:00
### mps -kks . = sistemde kurulu tüm paketlerin kırık kontrolünü yapar.Eksik dosyaları tespit eder.
2017-04-07 06:48:03 +02:00
-kks)
2017-09-08 07:31:27 +02:00
kirik_kontrol_sistem
exit 0 ;;
2016-03-19 00:16:01 +01:00
-pak|--paketle)
2016-03-19 02:20:46 +01:00
if [ ! "$2" ]; then
ryaz 31 "paketlenecek dizin ismi eksik"
2017-04-01 01:44:55 +02:00
hataloglama "paketlenecek dizin ismi eksik"
2016-03-19 02:20:46 +01:00
exit 1
fi
2017-09-08 07:31:27 +02:00
yeniden_paketle "$2"
exit 0 ;;
2016-04-12 00:14:39 +02:00
-psk|--paksiskur)
if [ ! "$2" ]; then
ryaz 31 "paket liste yok"
2017-04-01 01:44:55 +02:00
hataloglama "paket liste yok"
2016-04-12 00:14:39 +02:00
exit 1
fi
if [ ! "$3" ]; then
ryaz 31 "hedef dizin yok"
2017-04-01 01:44:55 +02:00
hataloglama "hedef dizin yok"
2016-04-12 00:14:39 +02:00
exit 1
fi
2017-09-08 07:31:27 +02:00
sistem_kur "$2" "$3"
exit 0 ;;
2016-03-29 02:39:30 +02:00
-po)
pvt_olustur ;;
2016-03-10 01:28:42 +01:00
-os|--pkos)
if [ ! "$2" ]; then
ryaz 31 "silme listesi yok"
2017-04-01 01:44:55 +02:00
hataloglama "silme listesi yok"
2016-03-10 01:28:42 +01:00
exit 1
fi
paket_sil_oto "$2" ;;
2017-08-30 21:08:59 +02:00
### mps liste . = sistemde kurulu olan paket listesini verir.
2017-08-09 19:56:35 +02:00
-kl|liste)
2016-03-07 23:04:43 +01:00
ls $VT ;;
2017-09-06 17:36:51 +02:00
### mps -dly paketismi = ilgili paketin genel ve tüm bağımlılık listesini verir,oluşturur.
2016-02-24 01:27:23 +01:00
-dly|--drly)
derleme_listyap "$2" ;;
2017-09-06 19:52:02 +02:00
-dly_eski|--drly)
derleme_listyap_eski "$2" ;;
### mps -kly paketismi = ilgili paketin ve kurulması gereken altgereklerini verir,oluştur.
2017-09-06 17:53:03 +02:00
-kly)
2017-09-06 19:52:02 +02:00
kurulum_listyap "$2" ;;
2016-03-02 01:26:35 +01:00
-dlb|--drlb)
2016-03-07 00:39:49 +01:00
derleme_listbilgi "$2";;
2017-08-30 21:39:11 +02:00
### mps -b paketismi = ilgili paketin kurulum bilgilerini verir.
2016-02-24 01:27:23 +01:00
-b|--pkbl)
paket_bilgi "$2" ;;
2016-05-01 03:26:55 +02:00
#sunucu bilgisi alma
2017-08-08 21:39:37 +02:00
-sun2|sunucu)
2016-05-01 03:26:55 +02:00
ryaz 32 $sunucu ;;
2017-09-06 19:52:02 +02:00
### mps sunucular . = paket sunucularını verir.
2017-08-08 21:39:37 +02:00
-sun|sunucular)
ryaz 32 ${sunucular[@]} ;;
2017-03-12 21:45:04 +01:00
sun)
if [ ! "$2" ]; then
ryaz 31 "sunucu bilgi eksik"
2017-04-01 01:44:55 +02:00
hataloglama "sunucu bilgi eksik"
2017-03-12 21:45:04 +01:00
exit 1
fi
sunucu_ayarla "$2" ;;
2017-08-10 01:17:44 +02:00
-bb|bagbil)
2016-03-02 01:26:35 +01:00
bagimli_bilgi "$2" | column -t;;
2017-08-10 01:17:44 +02:00
-bbdog|bdogrula)
bagimli_bilgi "$2" "dogrula";;
2017-01-29 19:47:24 +01:00
-bbd)
bagimli_bilgi_dosyala "$2" ;;
2017-08-08 21:39:37 +02:00
-tb|tersbag)
ters_bagimli_bilgi "$2" ;;
2016-03-12 01:06:20 +01:00
-tbk|--pktbk)
ters_bagimli_kontrol "$2" ;;
2017-09-07 04:16:05 +02:00
### mps bilgi paketismi = ilgili paketin talimat ve kurulum bilgilerini verir.
2017-08-08 21:39:37 +02:00
-talb|bilgi)
talimat_bilgi "$2"
paket_bilgi "$2" ;;
2016-06-21 20:42:06 +02:00
-to)
if [ ! "$2" ]; then
ryaz 31 "talimat ismi eksik"
2017-04-01 01:44:55 +02:00
hataloglama "talimat ismi eksik"
2016-06-21 20:42:06 +02:00
exit 1
fi
talimat_olustur "$2" ;;
2017-09-07 04:16:05 +02:00
### mps log yyyy-aa-gg olay = mps.log verisi çekmek için (ör: mps log 2017-01-01 silindi)
2017-02-13 16:45:41 +01:00
log)
local logyardim
logyardim="mps log zaman durum (ör: mps log 2017-01-01 silindi)"
if [ ! "$2" ]; then
ryaz 31 "zaman parametresi eksik"
2017-04-01 01:44:55 +02:00
hataloglama "zaman parametresi eksik"
2017-02-13 16:45:41 +01:00
ryaz 32 $logyardim
exit 1
fi
if [ ! "$3" ]; then
ryaz 31 "durum parametresi eksik"
2017-04-01 01:44:55 +02:00
hataloglama "durum parametresi eksik"
2017-02-13 16:45:41 +01:00
ryaz 32 $logyardim
exit 1
fi
log_analiz "$2" "$3" ;;
2017-09-07 04:16:05 +02:00
### mps guncelle . = paket veritabanı ve git güncellemesi-talimatname bilgilerini günceller.
2016-10-02 14:19:10 +02:00
guncelle)
2017-09-09 08:55:43 +02:00
mps -GG && mps -G
exit 0 ;;
2017-09-07 04:16:05 +02:00
### mps -GG . = git güncellemelerini ve talimatname bilgilerini günceller.
2016-05-09 10:36:02 +02:00
-Ggit|-GG)
2017-09-09 08:55:43 +02:00
git_guncelle
exit 0 ;;
2017-09-07 04:16:05 +02:00
### mps -G . = paket veritabanı bilgilerini günceller.
2016-02-24 01:27:23 +01:00
-G|--pvtg)
2016-06-30 13:35:20 +02:00
paketvt_guncelle
2017-09-09 08:55:43 +02:00
mps -kudo
exit 0 ;;
### mps tespit . = tüm sistemin güncellemesi için güncellenecek paket listelistesini gösterir.
tespit)
guncelleme_tespit
exit 0 ;;
2017-09-07 04:16:05 +02:00
### mps yukselt . = tüm sistemin güncellemesini gerçekleştirir.
2017-08-01 17:28:42 +02:00
-GS|yukselt)
2017-09-09 08:55:43 +02:00
sistem_guncelle
exit 0 ;;
2017-07-14 15:36:10 +02:00
#tekil temel paket guncelleme-single base package updating
-tg)
paket_sil "$2" "evet" && mps -ik $2 ;;
2017-09-07 04:16:05 +02:00
### mps -g paketismi = ilgili paketi tekil günceller.
2016-02-24 01:27:23 +01:00
-g|--pkgu)
if [ ! "$2" ]; then
2016-03-07 23:04:43 +01:00
ryaz 31 "paket ismi eksik"
2017-04-01 01:44:55 +02:00
hataloglama "paket ismi eksik"
2016-02-24 01:27:23 +01:00
exit 1
fi
2017-04-06 01:18:47 +02:00
local durum
durum=`kurulu_kontrol "$2"`
if [ "$durum" = "kurulu" ]; then
paket_guncelle "$2"
2017-05-03 00:13:51 +02:00
elif [ "$durum" = "degil" ]; then
2017-04-06 01:34:40 +02:00
ryaz 31 "$2 paketi kurulu degil!"
hataloglama "paketi kurulu degil!"
2017-05-03 00:13:51 +02:00
else
ryaz 31 "$2 paketi tanımsız!"
hataloglama "paketi tanımsız!"
2017-04-06 01:18:47 +02:00
fi;;
2016-05-03 01:31:38 +02:00
#bagimliliklariyla beraber paket guncelleme-package updating with depencies
-go|--pkgo)
if [ ! "$2" ]; then
ryaz 31 "paket ismi eksik"
2017-04-01 01:44:55 +02:00
hataloglama "paket ismi eksik"
2016-05-03 01:31:38 +02:00
exit 1
fi
paket_guncelle_oto "$2";;
2017-09-07 04:16:05 +02:00
### mps -kk paketismi = ilgili paketin kurulu olma durumunu gösterir.
2016-03-07 23:04:43 +01:00
-kk|--kurulu-kontrol)
2016-02-24 01:27:23 +01:00
if [ ! "$2" ]; then
2016-03-07 23:04:43 +01:00
ryaz 31 "paket ismi eksik"
2017-04-01 01:44:55 +02:00
hataloglama "paket ismi eksik"
2016-02-24 01:27:23 +01:00
exit 1
fi
2016-03-07 23:04:43 +01:00
ryaz 31 `kurulu_kontrol "$2"`;;
2016-06-30 13:33:01 +02:00
-kudo)
2017-09-08 14:28:18 +02:00
kurulum_dogrulama
exit 0 ;;
2017-07-23 03:20:01 +02:00
-kdi|dogrula)
2017-07-20 09:55:46 +02:00
if [ ! "$2" ]; then
ryaz 31 "paket ismi eksik"
exit 1
fi
2017-07-21 01:00:49 +02:00
kurulum_dogrulama_icerik "$2" ;;
2017-08-10 22:56:16 +02:00
-pid|pdogrula)
kokdzn=""
if [ ! "$2" ]; then
ryaz 31 "paket ismi eksik"
exit 1
elif [ ! "$3" ]; then
kokdzn="/"
else
kokdzn="$3"
fi
paket_icerik_dogrulama "$2" "$kokdzn";;
2017-08-10 01:17:44 +02:00
-kdit|tumdogrula)
2017-09-08 14:28:18 +02:00
kurulum_dogrulama_icerik_tum
exit 0 ;;
2016-10-27 22:45:46 +02:00
-kdk)
2017-08-22 05:15:34 +02:00
etkilenen_kurtar $2 ;;
2016-02-24 01:27:23 +01:00
-suko)
sunucu_kontrol ;;
2017-03-19 00:20:09 +01:00
-pot)
2017-09-08 14:28:18 +02:00
paketsiz_talimatlar
exit 0 ;;
2017-08-09 19:56:35 +02:00
-dpl|deplist)
2017-09-08 14:28:18 +02:00
depo_paketler_liste
exit 0 ;;
2017-08-09 19:56:35 +02:00
-dps|depsil)
2017-09-08 14:28:18 +02:00
depo_paketler_sil
exit 0 ;;
2016-11-30 01:31:22 +01:00
-dota)
2017-09-08 14:28:18 +02:00
dosyadan_talimat_islem $2 $3
exit 0 ;;
2016-02-24 01:27:23 +01:00
-cf|--config-file)
if [ ! "$2" ]; then
2016-10-03 07:43:24 +02:00
echo "ayardosyası gerek $1"
2016-02-24 01:27:23 +01:00
exit 1
fi
ayar_dosyasi="$2"
shift ;;
2017-04-14 20:17:54 +02:00
# bir dosyanın kurulmuş hangi pakette olduğunu bulur
-hp)
if [ ! "$2" ]; then
ryaz 31 "paket ismi eksik"
exit 1
fi
2017-09-08 14:28:18 +02:00
kurulan_dosya_bul "$2"
exit 0 ;;
2016-03-09 01:57:13 +01:00
-tro)
2017-09-08 14:28:18 +02:00
tarihce_yap
exit 0 ;;
2016-03-10 01:28:42 +01:00
-trot)
temel_tarihce="evet"
2017-09-08 14:28:18 +02:00
tarihce_yap
exit 0 ;;
2016-03-09 01:57:13 +01:00
-try)
if [ ! "$2" ]; then
ryaz 31 "tarihce dosyasi eksik $1"
2017-04-01 01:44:55 +02:00
hataloglama "tarihce dosyasi eksik $1"
2016-03-09 01:57:13 +01:00
exit 1
fi
tarihce_yukle "$2"
shift ;;
-trl)
tarihce_liste ;;
2017-07-23 03:20:01 +02:00
-tamir-tk)
tamir_temel_kurulan ;;
2017-04-20 02:03:42 +02:00
dos)
2017-09-08 14:28:18 +02:00
tarihce_yukle "temel"
exit 0 ;;
2016-03-09 01:57:13 +01:00
-trs)
if [ ! "$2" ]; then
ryaz 31 "parametre eksik $1"
2017-04-01 01:44:55 +02:00
hataloglama "parametre eksik $1"
2016-03-09 01:57:13 +01:00
exit 1
fi
tarihce_sil "$2"
shift ;;
2017-09-07 04:16:05 +02:00
### mps -v . = mps sürüm bilgilerini gösterir.
2016-02-24 01:27:23 +01:00
-v)
2016-03-11 17:42:21 +01:00
ryaz 33 "$betikad $versiyon $iletisim"
2016-02-24 01:27:23 +01:00
exit 0 ;;
2017-09-07 04:16:05 +02:00
-y|-h|yardim)
2017-08-22 06:44:51 +02:00
yardim_icerik;;
2017-09-07 04:16:05 +02:00
-h2|--help)
2016-02-24 01:27:23 +01:00
yardim
exit 0 ;;
2017-09-08 06:45:48 +02:00
*)
ryaz 31 "Geçersiz Parametre! --> mps yardim "
exit 0 ;;
2016-02-24 01:27:23 +01:00
esac
shift
done
}
2017-08-22 06:44:51 +02:00
yardim_icerik(){
2017-08-22 07:34:33 +02:00
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]}'
2017-08-22 06:44:51 +02:00
}
2016-04-17 01:08:11 +02:00
yardim() {
cat <<_EOF
$betikad $versiyon Milis Paket Sistemi
Secenekler:
2016-10-03 07:43:24 +02:00
-G ikili paket veritabanını günceller
2016-04-17 01:59:15 +02:00
-Ggit git sunucusundan talimatname ve sistem gunceller
2017-07-31 01:21:22 +02:00
kur paket_ismi ilgili paketi bagimliliklariyla agdan cekip kurar
2016-04-17 01:59:15 +02:00
-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
2016-10-03 07:43:24 +02:00
-d paket_ismi ilgili paketin talimat dosyasına göre
2016-04-17 01:59:15 +02:00
sadece derler,paketler
2016-10-03 07:43:24 +02:00
-derle paket_ismi ilgili paketin talimat dosyasına göre bagimliliklariyla
2016-04-17 01:59:15 +02:00
beraber derler,paketler ve kurar.
2016-04-17 01:08:11 +02:00
_EOF
exit 1
}
2016-02-24 01:27:23 +01:00
ana(){
2016-10-30 14:54:07 +01:00
if [ `id -u` = 0 ] ; then
ayarlar "$@"
else
sudo mps "$@"
2016-02-24 01:27:23 +01:00
fi
}
ana "$@"
2016-03-07 23:04:43 +01:00
#31 kirmizi
#32 yesil
#33 sari
#34 mavi
#34 mor