milis/bin/mps

3893 lines
104 KiB
Plaintext
Raw Permalink Normal View History

2018-02-02 08:10:47 +01:00
#!/bin/bash
2018-01-22 06:18:17 +01:00
2018-11-07 04:06:54 +01:00
versiyon="1.2.4 Milis Paket Sistemi"
2018-01-22 06:18:17 +01:00
iletisim="milisarge@gmail.com"
2018-01-22 07:47:43 +01:00
betikad=${0##*/}
betikyol="$0"
2018-01-29 07:20:25 +01:00
shelltip=$(basename `cat $betikyol | head -n1 | cut -d'!' -f2 | cut -d' ' -f1`)
2018-01-22 07:47:43 +01:00
# sistem araçlarının tespiti ve atanması
2018-02-02 07:44:43 +01:00
#if [ ${shelltip} = "busybox" ] || [ ${shelltip} = "ash" ];then
if [ ${BASH_VERSION} ];then
wget_progress="--show-progress"
else
2018-01-29 07:20:25 +01:00
alias sed="busybox sed"
alias wget="busybox wget"
wget_progress=""
fi
2018-01-22 07:47:43 +01:00
#alias sed="sed"
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
2018-01-22 06:18:17 +01:00
else
echo "/etc/mps.conf ayar dosyası bulunamadı!"
fi
if [ -z ${paketdepo+:} ]; then
paketdepo="/depo/paketler/"
2016-05-01 04:07:04 +02:00
fi
2018-01-01 22:22:58 +01:00
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
2018-01-22 06:18:17 +01:00
2018-06-09 00:13:08 +02:00
git_sunucu="https://notabug.org"
2018-06-09 14:10:48 +02:00
git_sunucu_eski="https://github.com"
2018-06-09 14:34:53 +02:00
[ -d /sources/milis.git/.git ] && cat /sources/milis.git/.git/config | grep "url =" | grep "${git_sunucu_eski}" &> /dev/null
2018-06-09 14:17:00 +02:00
if [ $? -eq 0 ];then
2018-06-09 14:13:52 +02:00
echo "eski git sunucusundan göç ediliyor."
2018-06-09 19:33:51 +02:00
_gockom="mv /sources/milis.git /sources/milis.git.eski"
2018-06-09 19:34:42 +02:00
if [ $(whoami) == "root" ];then
2018-06-09 19:31:56 +02:00
$_gockom
2018-06-09 19:27:09 +02:00
else
2018-06-09 19:31:56 +02:00
sudo $_gockom
2018-06-09 19:27:09 +02:00
fi
2018-06-09 14:10:48 +02:00
fi
2018-01-22 06:18:17 +01:00
2018-06-02 23:16:10 +02:00
if [ -z ${hesap_repo+:} ]; then
2018-06-09 00:13:08 +02:00
hesap_repo="milislinux/milis"
2018-06-02 23:16:10 +02:00
fi
2018-10-23 08:24:12 +02:00
# kaynak kodların indiği dizin
if [ -z ${kaynak_dizin+:} ]; then
kaynak_dizin="/sources"
fi
# resmi git reposu adresi
2018-06-02 23:16:10 +02:00
if [ -z ${git_repo+:} ]; then
git_repo="${git_sunucu}/${hesap_repo}"
fi
2018-10-23 08:24:12 +02:00
# resmi git reposuna ek takip edilecek talimatname depoları
if [ -z ${git_ekrepo+:} ]; then
git_ekrepo=""
fi
# ek git repolarının kayıt edildiği konum
2018-06-02 23:16:10 +02:00
if [ -z ${git_yereldepo+:} ]; then
2018-10-23 08:24:12 +02:00
git_ekyereldepo="${kaynak_dizin}"
2018-01-30 06:56:07 +01:00
fi
2018-10-23 08:24:12 +02:00
# resmi git reposunun kayıt edildiği konum
if [ -z ${git_yereldepo+:} ]; then
git_yereldepo="/sources/milis.git"
2018-02-01 22:07:25 +01:00
fi
2018-01-22 06:18:17 +01:00
if [ -z ${anatalimatname+:} ]; then
2018-06-02 23:16:10 +02:00
anatalimatname="${git_yereldepo}/talimatname"
2018-01-22 06:18:17 +01:00
fi
2018-06-27 00:34:14 +02:00
if [ -z ${ektalimatname_repo+:} ]; then
ektalimatname_repo="${git_sunucu}/milislinux/ek-talimatlar"
fi
2018-01-22 06:18:17 +01:00
if [ -z ${talimatname+:} ]; then
talimatname="/root/talimatname"
fi
2018-01-03 09:03:44 +01:00
if [ -z ${kokdizin+:} ]; then
kokdizin="/"
fi
2018-01-22 06:18:17 +01:00
2016-06-20 03:06:42 +02:00
#temel paket koruma
2017-07-14 15:12:33 +02:00
if [ -z ${tpk+:} ]; then
2018-01-03 09:03:44 +01:00
tpk="evet"
2017-07-14 15:12:33 +02:00
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
2018-01-29 01:08:56 +01:00
sunucular="paketler.milislinux.org"
awk ' {print;} NR == 1 { print "sunucular=\"paketler.milislinux.org/\""; }' /etc/mps.conf > /etc/mps2.conf
2017-08-08 22:05:51 +02:00
mv /etc/mps2.conf /etc/mps.conf
2018-01-29 01:08:56 +01:00
else
_satirno=$(grep -nr "sunucular=(" /etc/mps.conf | cut -d':' -f1)
if [ ! -z ${_satirno} ];then
echo "mps.conf düzeltildi.kontrol ediniz."
sed "${_satirno}s/(/"\""/;${_satirno}s/)/"\""/" /etc/mps.conf > /etc/mps.conf.yeni
mv /etc/mps.conf.yeni /etc/mps.conf
fi
2017-08-08 21:39:37 +02:00
fi
2016-02-24 01:27:23 +01:00
2018-11-07 02:33:01 +01:00
if [ -z ${renklendirme+:} ]; then
renkdurum="--renkli"
fi
2017-11-01 00:06:35 +01:00
if [ -z ${silme_esgec+:} ]; then
2018-01-29 01:08:56 +01:00
silme_esgec=""
2017-11-01 00:06:35 +01:00
fi
2018-01-08 19:48:25 +01:00
if [ -z ${esgec+:} ]; then
2018-01-29 01:08:56 +01:00
esgec=""
2018-01-08 19:48:25 +01:00
fi
2018-01-29 01:08:56 +01:00
2018-10-23 11:53:06 +02:00
esgec="xorg xorg-app"
2017-09-25 17:41:26 +02:00
2018-01-22 06:18:17 +01:00
kurulum_onay="evet"
2018-11-07 03:48:32 +01:00
# Bir paketin silinme onayı 1 ise silme onaylanır.
onayli_sil=1
# Bir paketin silinirken etkilenen dizin kontrolü
silme_etki_kontrol=1
# Bir paketin silinirken ters gereklerinin gösterilmesi
silme_tersbag=0
2018-01-22 06:18:17 +01:00
VT="/var/lib/pkg/DB"
TARIHCE_DIZIN="/var/lib/pkg/tarihce"
LOGDIZIN="/var/log/mps"
tekrarkur="hayir"
logdosya="/var/log/mps/mps.log"
2018-07-20 22:19:15 +02:00
GRUP_DOSYA="/sources/milis.git/ayarlar/gruplar"
2018-01-22 06:18:17 +01:00
2017-09-25 17:41:26 +02:00
# Türkçe Mesajlar
2017-09-27 04:42:23 +02:00
_paket_adi_gerekli="paket ismi eksik!"
_dizin_bulunamadi="dizin bulunamadı!"
2017-09-25 17:41:26 +02:00
_talimat_sayisi_fazla="talimatnameler altında birden fazla talimat mevcut!"
_talimat_bulunamadi="ilgili talimat bulunamadı!"
2018-10-23 08:50:18 +02:00
_ek_talimatname_bulunamadi="mps.conf git_ekrepo değişkeni tanımlanmalı!"
2018-01-24 07:34:08 +01:00
_talimatsiz_dizin="ilgili dizinde talimat bulunamadı!"
2017-09-27 13:42:10 +02:00
_dosya_yolu_bulunamadi="dosya yolu bulunamadı!"
_shasum_uyumsuzluk="shasum uyumsuzluğu tespit edildi!"
2017-09-25 17:41:26 +02:00
_gerekler_belirleniyor="bağımlılıkları belirleniyor."
2018-02-03 13:58:31 +01:00
_yerel_paket_yok="mevcut dizinde mps.lz paketi yok!"
2017-09-25 17:41:26 +02:00
_paket_kuruldu="paketi kuruldu."
2017-12-15 01:57:43 +01:00
_paket_kurulu="kurulu"
2017-09-25 17:41:26 +02:00
_paket_kurulu_degil="paketi kurulu değil!"
_paket_silindi="paketi silindi."
_paket_silinsinmi="paketi kaldırılsın mı?"
_paket_tanimsiz="paketi tanımsız!"
_paket_bulunamadi="ilgili paket bulunamadı!"
_paketvt_guncelleniyor="paket veritabanı güncelleniyor."
_paket_onbellek_depoda_var="paketi önbellek depoda bulunmakta."
2017-11-01 00:06:35 +01:00
_paket_depoda_yok="paket depoda bulunmuyor ve gereksiz,"
_siliniyor="siliniyor"
2017-09-25 17:41:26 +02:00
_git_guncelleniyor="git sunucudan güncelleme çekiliyor."
_git_guncel="git deposu güncel"
_git_guncellendi="git deposu güncellendi."
_yerel_esitlendi="yerele eşitleme tamam."
2018-02-01 22:07:25 +01:00
_yerel_esitlendi_olumsuz="yerele eşitleme olumsuz."
2017-09-25 17:41:26 +02:00
_yerel_esitleniyor="yerele eşitleniyor."
_devir_kontrol_iptal="devir kontrolü iptal edildi!"
_surum_kontrol_iptal="sürüm kontrolü iptal edildi!"
_zaten="zaten"
2017-12-15 06:51:22 +01:00
_indiriliyor="indiriliyor"
2017-09-25 17:41:26 +02:00
2018-04-10 23:39:12 +02:00
export _paketguncel=0
2018-01-24 07:34:08 +01:00
hata_olustu(){
local _hata _mesaj
[ -z $1 ] && exit 1
_hata=$1
case $_hata in
"_paket_adi_gerekli")
_mesaj="$_paket_adi_gerekli"
;;
"_talimatsiz_dizin")
_mesaj="$_talimatsiz_dizin"
;;
2018-01-26 03:42:01 +01:00
"_talimat_bulunamadi")
_mesaj="$_talimat_bulunamadi"
2018-01-24 07:34:08 +01:00
;;
2018-02-03 13:58:31 +01:00
"_yerel_paket_yok")
_mesaj="$_yerel_paket_yok"
;;
2018-01-24 07:34:08 +01:00
*)
_mesaj="böyle bir hata yok"
;;
esac
echo ${_mesaj}
exit 1
}
cikti_renk_ayarla(){
local cikti
cikti="--renkli"
if [ "$1" ]; then
2018-11-07 02:33:01 +01:00
if [ "$1" = "--renksiz" ];then
cikti="--renksiz"
2018-01-24 07:34:08 +01:00
fi
fi
if [ $cikti = "--renkli" ];then
_yaz="ryaz 32"
_yaz_tm="ryaz 34"
_yaz_uyari="ryaz 31"
2018-11-07 02:33:01 +01:00
_yaz_bilgi="ryaz 33"
2018-01-24 07:34:08 +01:00
else
_yaz="echo"
_yaz_tm="echo"
_yaz_uyari="echo"
2018-05-17 23:41:46 +02:00
_yaz_bilgi="echo"
2018-01-24 07:34:08 +01:00
fi
}
2016-02-24 01:27:23 +01:00
icerik_ekle(){
2017-08-08 21:39:37 +02:00
if [ -f "$1" ];then
2018-11-04 23:41:01 +01:00
# kurulan paketin sha1sum değerinin alınması
local _hash1=$(sha1sum $1)
2017-08-08 21:39:37 +02:00
paketad=`echo "$1" | cut -d'#' -f1`
paketad=`basename $paketad`
2017-12-14 06:40:19 +01:00
$_yaz_tm "$paketad paketi kuruluyor-> $kokdizin"
2017-08-08 21:39:37 +02:00
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
2018-11-04 23:41:01 +01:00
# kos-kur kontrolu
2017-08-08 21:39:37 +02:00
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
2018-11-04 23:41:01 +01:00
# yerelsil aktif ise istenmeyen paket dil desteklerinin silinmesi
2017-08-08 21:39:37 +02:00
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
2018-11-04 23:41:01 +01:00
# docsil aktif ise paketinin /usr/share/doc dizininin silinmesi
2017-08-08 21:39:37 +02:00
if [ -d kur.$paketad/usr/share/doc ] && [ "$docsil" == "evet" ];then
rm -r kur.$paketad/usr/share/doc
fi
2017-10-27 14:31:13 +02:00
mkdir -p $kokdizin$VT/"$paketad" &&
2017-08-08 21:39:37 +02:00
cp -v -afr kur.$paketad/* $kokdizin > kur.$paketad/kurulan
2018-11-04 23:41:01 +01:00
cp kur.$paketad/kurulan /tmp/ && cat kur.$paketad/kurulan | cut -d '>' -f2 > ${kokdizin}${VT}/"$paketad"/kurulan &&
# kurulan paketin shasum değerinin kurulu paket dosya kaydı
echo ${_hash1} > ${kokdizin}${VT}/"$paketad"/sha1
2017-10-27 14:31:13 +02:00
#mv kur.$paketad/.MTREE $VT/"$paketad"/files &&
2018-11-04 23:41:01 +01:00
mv kur.$paketad/.META ${kokdizin}${VT}/"$paketad"/META &&
2017-08-08 21:39:37 +02:00
2018-11-04 23:41:01 +01:00
# kur-kos calistirilmasi
2017-08-08 21:39:37 +02:00
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
2017-12-14 06:40:19 +01:00
$_yaz_tm "$paketad $_paket_kuruldu"
2017-09-25 17:41:26 +02:00
loglama "$paketad $_paket_kuruldu"
2017-08-08 21:39:37 +02:00
else
2017-12-14 06:40:19 +01:00
$_yaz_uyari "icerik_ekle:paket konum parametresi boş!!!"
2017-08-08 21:39:37 +02:00
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
}
2018-11-07 03:48:32 +01:00
# paket silme işlevinin parametrelerinin işlenmesi
_paket_sil_args(){
if [[ "${args}" =~ "--onayla" ]];then
_arg="--onayla";_arg_sil
onayli_sil=0
fi
if [[ "${args}" =~ "--sekyok" ]];then
_arg="--sekyok";_arg_sil
silme_etki_kontrol=0
2016-03-10 01:28:42 +01:00
fi
2017-12-14 06:40:19 +01:00
2018-11-07 03:48:32 +01:00
if [[ "${args}" =~ "--tersbag" ]];then
_arg="--tersbag";_arg_sil
silme_tersbag=1
2017-12-14 06:40:19 +01:00
fi
2018-11-07 03:48:32 +01:00
}
paket_sil(){
local paket kkont sil_onay _silinecekler _sek
# paket silinmesi için gelen parametrelerin işlenmesi
_paket_sil_args
[ -z $1 ] && hata_olustu "_paket_adi_gerekli" || paket=$1
_silinecekler=/tmp/$paket.sil
2017-12-14 06:40:19 +01:00
2017-09-25 17:41:26 +02:00
if [ "$tpk" = "evet" ] && [ -d "$talimatname/temel/$1" ];then
2017-12-14 06:40:19 +01:00
$_yaz_uyari "$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
2017-10-27 14:31:13 +02:00
if [ -f "$VT/$paket/kurulan" ];then
2018-06-30 06:49:15 +02:00
#eski dizin koruma
#etkilenen_kurtar $1 $cikti
cat $VT/$paket/kurulan | cut -d '>' -f2 > ${_silinecekler}
2018-11-07 03:48:32 +01:00
if [ ${silme_tersbag} -eq 1 ];then
2017-12-14 06:40:19 +01:00
$_yaz_uyari "ters bagimliliklar"
$_yaz_uyari "------------------"
2017-11-14 05:18:39 +01:00
ters_bagimli_bilgi "$paket"
2017-12-14 06:40:19 +01:00
$_yaz_uyari "------------------"
2017-08-12 15:15:32 +02:00
fi
2018-06-30 06:49:15 +02:00
# yeni silme etkilenen kurtarma
2018-10-12 07:50:29 +02:00
# kernel için ayrı paket silme uygulanır.
if [ ${paket} = "kernel" ];then
for _kkurtar in \
'/boot/grub' \
'/boot'
do
sed -i '\|'\'${_kkurtar}\''|d' ${_silinecekler}
done
2018-11-07 03:48:32 +01:00
silme_etki_kontrol=0
2018-10-12 07:50:29 +02:00
fi
2018-11-07 03:48:32 +01:00
# diğer paketler için
[ ${silme_etki_kontrol} -eq 1 ] && silme_etkilenme_tespit $paket
2018-06-30 06:49:15 +02:00
# silme listesi güncelleme - dizin koruma
# bir paket silinirken dizin yapısındaki diğer paketlerin dosyaları korunacak.
if [ -f /tmp/${paket}_kd.liste ];then
for _kurtar in $(cat /tmp/${paket}_kd.liste);do
echo "$(grep -v "'${_kurtar}'" ${_silinecekler})" > ${_silinecekler}
done
$_yaz_bilgi "etkilenen konumlar korundu."
#else
#$_yaz_bilgi "kurtarılacak dosya yok."
fi
2018-11-07 03:48:32 +01:00
if [ ${onayli_sil} -eq 0 ];then
2016-06-20 03:06:42 +02:00
sil_onay="e"
else
while true; do
2017-12-14 06:40:19 +01:00
$_yaz_tm $paket" $_paket_silinsinmi";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-10-27 15:36:15 +02:00
_konum=$(talimat_bul $paket)
2017-10-27 14:31:13 +02:00
[ -f "$_konum/$paket.kos-sil" ] && bash "$_konum/$paket.kos-sil"
2018-06-30 06:49:15 +02:00
xargs rm -r -f < ${_silinecekler} &&
2017-10-27 14:31:13 +02:00
rm -r -f "$VT/$paket" &&
[ -f "$_konum/$paket.sil-kos" ] && bash "$_konum/$paket.sil-kos"
2017-12-14 06:40:19 +01:00
$_yaz_tm $paket" $_paket_silindi"
2017-09-25 17:41:26 +02:00
loglama "$paket $_paket_silindi"
2018-06-30 06:49:15 +02:00
rm -f ${_silinecekler}
2016-06-20 03:06:42 +02:00
else
2018-06-30 06:49:15 +02:00
rm -f ${_silinecekler}
2016-06-20 03:06:42 +02:00
fi
2016-05-03 01:31:38 +02:00
else
2017-12-14 06:40:19 +01:00
$_yaz_uyari "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
2017-12-18 14:00:48 +01:00
$_yaz "$_zaten $paket $_paket_kurulu_degil"
hataloglama "$_zaten $paket $_paket_kurulu_degil"
2017-05-03 00:13:51 +02:00
else
2017-12-14 06:40:19 +01:00
$_yaz "$_paket_tanimsiz"
2017-09-25 17:41:26 +02:00
hataloglama "$_paket_tanimsiz"
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
2018-11-06 23:05:59 +01:00
pakdesc=$(find $talimatname $ektalimatname -name "$pkt" | xargs -I % sed -n '1{p;q}' %/talimat | sed s'/# Tanım: //g');
2018-05-17 23:37:58 +02:00
$_yaz_tm "$pkt - $pakdesc";
done
}
2017-08-08 21:39:37 +02:00
2017-12-13 04:56:41 +01:00
paket_liste(){
mps_paketler_listesi="/tmp/mps_paketler_listesi"
2017-12-14 02:33:21 +01:00
local cikti _grup
_grup="yok"
2018-11-07 02:33:01 +01:00
cikti="--renksiz"
2017-12-13 04:56:41 +01:00
if [ "$1" ]; then
2017-12-14 02:33:21 +01:00
if [ "$1" == "--json" ];then
cikti="--json"
else
_grup="$1"
fi
2017-12-13 04:56:41 +01:00
fi
2017-12-14 02:33:21 +01:00
if [ "$2" ]; then
cikti="$2"
fi
#echo "cikti:$cikti"
#echo "grup:$_grup"
#exit 1
if [ $_grup == "yok" ];then
if [ $cikti == "--json" ];then
[ -f $mps_paketler_listesi ] && rm -rf $mps_paketler_listesi
for pkt in $(cat /depo/paketler/paket*.vt | awk '{print $1}'); do
printf "$pkt," >> $mps_paketler_listesi
done
sed -i s'/.$//' $mps_paketler_listesi
else
cat /depo/paketler/paket*.vt | awk '{print $1}'
fi
2017-12-13 04:56:41 +01:00
else
2017-12-14 02:33:21 +01:00
if [ $cikti == "--json" ];then
grup_paketler_liste $_grup $cikti
else
grup_paketler_liste $_grup
fi
2017-12-13 04:56:41 +01:00
fi
}
2017-12-13 21:02:05 +01:00
paket_grup_liste(){
mps_paket_grup_listesi="/tmp/mps_paket_grup_listesi"
2018-07-13 17:37:01 +02:00
local cikti _altdizins _ektalname
2017-12-13 21:02:05 +01:00
cikti="normal"
if [ "$1" ]; then
cikti="$1"
fi
2018-07-13 17:37:01 +02:00
_altdizins=`find $ektalimatname/ -maxdepth 1 -type d | wc -l`
if [ $_altdizins -gt 1 ]
then
_ektalname=$ektalimatname/*
else
_ektalname=""
fi
_gruplar=`grep -ri "Grup:" $talimatname/* $_ektalname | cut -d':' -f3 | cut -d' ' -f2 | sed 's/^ *//;s/ *$//' | sort -u`
2017-12-13 21:02:05 +01:00
if [ $cikti == "--json" ];then
[ -f $mps_paket_grup_listesi ] && rm -rf $mps_paket_grup_listesi
#printf "[" >> $mps_paket_grup_listesi
2018-07-13 17:37:01 +02:00
for grp in $(grep -ri "Grup:" $talimatname/* $_ektalname | cut -d':' -f3 | cut -d' ' -f2 | sed 's/^ *//;s/ *$//' | sort -u); do
2017-12-13 21:02:05 +01:00
printf "$grp," >> $mps_paket_grup_listesi
done
sed -i s'/.$//' $mps_paket_grup_listesi
#printf "]" >> $mps_paket_grup_listesi
else
echo $_gruplar
fi
}
2017-12-14 02:33:21 +01:00
grup_paketler_liste(){
mps_grup_paketler_listesi="/tmp/mps_grup_paketler_listesi"
local cikti _grup _paketler
_grup="$1"
cikti="normal"
if [ "$2" ]; then
cikti="$2"
fi
2017-12-22 23:40:37 +01:00
_paketler=`grep -rli "Grup: .*$_grup" $talimatname/* $ektalimatname/* | cut -d':' -f3 | sed 's/^ *//;s/ *$//' | xargs -I {} dirname {} | xargs -I {} basename {} | sort -u`
2017-12-14 02:33:21 +01:00
if [ $cikti == "--json" ];then
[ -f $mps_grup_paketler_listesi ] && rm -rf $mps_grup_paketler_listesi
#printf "[" >> $mps_paket_grup_listesi
2017-12-22 23:40:37 +01:00
for pkt in $(grep -rli "Grup: .*$_grup" $talimatname/* $ektalimatname/* | cut -d':' -f3 | sed 's/^ *//;s/ *$//' | xargs -I {} dirname {} | xargs -I {} basename {} | sort -u); do
2017-12-14 02:33:21 +01:00
printf "$pkt," >> $mps_grup_paketler_listesi
done
sed -i s'/.$//' $mps_grup_paketler_listesi
#printf "]" >> $mps_paket_grup_listesi
else
echo $_paketler
fi
}
2016-10-07 21:07:31 +02:00
kelime_bul(){
2017-09-25 17:41:26 +02:00
grep --color -H -ri "$1" $talimatname
2017-08-01 01:06:59 +02:00
grep --color -H -ri "$1" $ektalimatname
2016-10-07 21:07:31 +02:00
}
2017-08-08 21:39:37 +02:00
2017-12-17 05:17:23 +01:00
kurulu_kontrol_test(){
2018-05-17 22:53:29 +02:00
local _paket kkont _cikti _yaz _yaz_uyari
2017-12-17 05:17:23 +01:00
_paket=$1
2018-05-17 22:53:29 +02:00
_cikti="--renkli"
[ "$2" ] && _cikti="$2"
cikti_renk_ayarla ${_cikti}
2016-02-24 01:27:23 +01:00
kkont=`kurulu_kontrol "$1"`
2017-12-17 05:17:23 +01:00
if [ "$kkont" == "degil" ];then
$_yaz_uyari "$_paket $_paket_kurulu_degil"
exit 1
elif [ "$kkont" == "tanimsiz" ];then
$_yaz_uyari "$_paket $_paket_tanimsiz"
exit 1
2016-02-24 01:27:23 +01:00
fi
}
2016-05-03 01:31:38 +02:00
paket_bilgi(){
2018-05-17 22:53:29 +02:00
local _paket kkont _cikti
2018-04-12 15:40:59 +02:00
_paket="$1"
2018-05-17 22:53:29 +02:00
_cikti="--renkli"
[ "$2" ] && _cikti="$2"
cikti_renk_ayarla ${_cikti}
2017-12-13 04:56:41 +01:00
2016-05-03 01:31:38 +02:00
kkont=`kurulu_kontrol "$1"`
2017-12-13 22:25:01 +01:00
2016-05-03 01:31:38 +02:00
if [ "$kkont" = "kurulu" ];then
2018-04-12 15:40:59 +02:00
satir=`sed -n '1p' < $VT/"${_paket}"/META`
2017-12-13 15:05:54 +01:00
$_yaz "ADI :" ${satir:1:${#satir}-1} #$_yaz_son
2018-04-12 15:40:59 +02:00
satir=`sed -n '2p' < $VT/"${_paket}"/META`
2017-12-13 15:05:54 +01:00
$_yaz "TANIM :" ${satir:1:${#satir}-1} #$_yaz_son
2018-04-12 15:40:59 +02:00
satir=`sed -n '3p' < $VT/"${_paket}"/META`
2017-12-13 15:05:54 +01:00
$_yaz "URL :" ${satir:1:${#satir}-1} #$_yaz_son
2018-04-12 15:40:59 +02:00
satir=`sed -n '5p' < $VT/"${_paket}"/META`
2017-12-13 15:05:54 +01:00
$_yaz "PAKETÇİ :" ${satir:1:${#satir}-1} #$_yaz_son
2018-04-12 15:40:59 +02:00
satir=`sed -n '6p' < $VT/"${_paket}"/META`
2017-09-25 17:41:26 +02:00
satir=${satir:1:${#satir}-1}
printf -v boyut '%d\n' "$satir" 2>/dev/null
if [ $boyut -lt 1048576 ];then
boyut=$(($boyut/1024))
_ek="kb"
else
boyut=$(($boyut/1024/1024))
_ek="mb"
fi
2017-12-13 15:05:54 +01:00
$_yaz "KUR BOYUT :" "$boyut $_ek (tahmini)" #$_yaz_son
2018-04-12 15:40:59 +02:00
satir=`sed -n '7p' < $VT/"${_paket}"/META`
2017-12-13 15:05:54 +01:00
$_yaz "SÜRÜM :" ${satir:1:${#satir}-1} #$_yaz_son
2018-04-12 15:40:59 +02:00
satir=`sed -n '8p' < $VT/"${_paket}"/META`
2017-12-13 15:05:54 +01:00
$_yaz "DEVİR :" ${satir:1:${#satir}-1} #$_yaz_son
2018-04-12 15:40:59 +02:00
satir=`sed -n '9p' < $VT/"${_paket}"/META`
2017-12-13 15:05:54 +01:00
$_yaz "PAKETLENME :" `date -d @${satir:1:${#satir}-1}` #$_yaz_son
2018-04-12 15:40:59 +02:00
satir=`sed -n '10p' < $VT/"${_paket}"/META`
2017-12-13 15:05:54 +01:00
$_yaz "MİMARİ :" ${satir:1:${#satir}-1} #$_yaz_son
2018-04-12 15:40:59 +02:00
satir=`sed -n '11p' < $VT/"${_paket}"/META`
2017-12-13 15:05:54 +01:00
$_yaz "GRUP :" ${satir:1:${#satir}-1} #$_yaz_son
2017-05-03 00:13:51 +02:00
elif [ "$kkont" = "degil" ];then
2017-12-13 22:25:01 +01:00
_konum=$(talimat_bul $1)
2018-01-10 15:59:06 +01:00
source ${_konum}/talimat
_ad=$(basename ${_konum})
2017-12-13 22:25:01 +01:00
_tanim=$(grep -ri "# Tanım:" $_konum/talimat | cut -d ':' -f2-)
_url=$(grep -ri "# Url:" $_konum/talimat | cut -d ':' -f2-)
_paketci=$(grep -ri "# Paketçi:" $_konum/talimat | cut -d ':' -f2-)
2018-01-10 15:59:06 +01:00
_surum=${surum}
_devir=${devir}
2017-12-14 04:24:51 +01:00
_grup=$(grep -ri "# Grup:" $_konum/talimat | head -1 | cut -d ':' -f2)
2017-12-13 22:25:01 +01:00
$_yaz "ADI :" ${_ad} #$_yaz_son
$_yaz "TANIM :" ${_tanim} #$_yaz_son
$_yaz "URL :" ${_url} #$_yaz_son
$_yaz "PAKETÇİ :" ${_paketci} #$_yaz_son
$_yaz "SÜRÜM :" ${_surum} #$_yaz_son
$_yaz "DEVİR :" ${_devir} #$_yaz_son
$_yaz "GRUP :" ${_grup} #$_yaz_son
2018-04-12 15:40:59 +02:00
$_yaz_uyari "${_paket} $_paket_kurulu_degil"
2017-05-03 00:13:51 +02:00
else
2018-04-12 15:40:59 +02:00
$_yaz_uyari "${_paket} $_paket_tanimsiz"
2016-05-03 01:31:38 +02:00
fi
}
2017-12-13 15:05:54 +01:00
paket_bilgi_html(){
2017-12-19 06:46:31 +01:00
_simgedepo="/srv/http/mpsweb/static/simgeler"
2017-12-18 21:53:36 +01:00
_simgehtmldepo="/static/simgeler"
2017-12-18 20:53:44 +01:00
_simgedosya=""
2017-12-13 15:05:54 +01:00
_dosya=$1
2017-12-16 07:41:23 +01:00
_paket=`echo "${_dosya}" | cut -d'_' -f4-5`
2017-12-13 15:05:54 +01:00
icerik="<table border=1>"
2017-12-15 07:20:08 +01:00
# ikon arşive baktırılacak varsa programın kendi ikonu yoksa öntanımlı ikon kullanılacak
2017-12-18 21:53:36 +01:00
if [ -f $_simgedepo/${_paket}.png ];then
_simgedosya="$_simgehtmldepo/$_paket.png"
elif [ -f /usr/share/icons/hicolor/32x32/apps/${_paket}.png ];then
cp /usr/share/icons/hicolor/32x32/apps/${_paket}.png $_simgedepo/${_paket}.png
_simgedosya="$_simgehtmldepo/$_paket.png"
elif [ `ls $_simgedepo/${_paket}_* 2>/dev/null | head -n1` ];then
_gecicidosya=`ls $_simgedepo/${_paket}_* 2>/dev/null | head -n1`
_simgedosya="$_simgehtmldepo/$(ls $_gecicidosya | xargs -I {} basename {})"
2017-12-18 20:53:44 +01:00
else
2017-12-18 21:53:36 +01:00
_simgedosya="$_simgehtmldepo/package.png"
2017-12-18 20:53:44 +01:00
fi
2017-12-18 21:53:36 +01:00
2017-12-18 20:53:44 +01:00
icerik+="<tr><td align=center><img src='${_simgedosya}' alt='' weight=40 height=40></img><td></tr>"
2017-12-13 15:05:54 +01:00
while IFS='' read -r satir || [[ -n "$line" ]]; do
icerik+="<tr>"
_sutun_baslik="$(echo $satir | cut -d':' -f1)"
2017-12-13 15:26:53 +01:00
_sutun_deger="$(echo $satir | cut -d':' -f2-)"
2017-12-13 22:25:01 +01:00
2017-12-13 15:26:53 +01:00
#icerik+="<td>$_sutun_deger</td>"
if [ "${_sutun_baslik}" != "${_sutun_deger}" ];then
2017-12-13 22:25:01 +01:00
icerik+="<td>$_sutun_baslik</td>"
2017-12-13 15:26:53 +01:00
icerik+="<td>$_sutun_deger</td>"
fi
2017-12-13 15:05:54 +01:00
icerik+="</tr>"
done < "$_dosya"
2017-12-13 22:25:01 +01:00
if [[ "${_sutun_baslik}" == *"${_paket_kurulu_degil}"* ]] || [[ "${_sutun_baslik}" == *"${_paket_tanimsiz}"* ]];then
2017-12-14 04:24:51 +01:00
icerik+="<tr bgcolor='red'><td>DURUM</td><td>${_sutun_baslik}</td></tr>"
else
icerik+="<tr bgcolor='green'><td>DURUM</td><td>kurulu</td></tr>"
2017-12-13 22:25:01 +01:00
fi
2017-12-13 15:05:54 +01:00
icerik+="</table>"
echo "$icerik" > $_dosya.html
}
2017-12-18 14:00:48 +01:00
# paketlerin toplu tablo gösterimi
paketler_depo_html(){
icerik="<table border=1>"
for _paket in $(ls $VT);do
# ikon arşive baktırılacak varsa programın kendi ikonu yoksa öntanımlı ikon kullanılacak
2017-12-18 20:53:44 +01:00
_simgedosya="/static/package.png"
2017-12-18 21:53:36 +01:00
#echo "dosya: $_simgedepo/${_paket}.png"
[ -f $_simgedepo/${_paket}.png ] && _simgedosya="$_simgehtmldepo/$_paket.png"
[ $(ls $_simgedepo/${_paket}_* | head -n1) ] && _simgedosya="$_simgehtmldepo/$(ls $_simgedepo/${_paket}_* | head -n1 | xargs -I {} basename {})"
2017-12-18 20:53:44 +01:00
icerik+="<tr><td align=center><img src='${_simgedosya}' alt='' weight=40 height=40></img><td><td>$_paket</td></tr>"
2017-12-18 14:00:48 +01:00
done
icerik+="</table>"
echo "$icerik" > /tmp/test.html
}
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
}
2018-01-24 07:34:08 +01:00
talimat_bul(){
local _apaket _bulunan _sonuc _donus _konum
[ -z $1 ] && hata_olustu "_paket_adi_gerekli"
_konum="$talimatname $ektalimatname"
[ ! -z $2 ] && _konum="$2"
_donus="-1"
_apaket="$1"
_sonuc=$(find $_konum -name ${_apaket} | wc -l)
if [ ${_sonuc} -eq 0 ];then echo $_donus;return; fi
_bulunan=$(find $_konum -name ${_apaket} | head -n1)
2018-04-12 15:40:59 +02:00
#if [ ! -f "${_bulunan}/talimat" ];then hata_olustu "_talimatsiz_dizin";return; fi
if [ ! -f "${_bulunan}/talimat" ];then echo ${_donus};return; fi
2018-01-24 07:34:08 +01:00
[ ${_sonuc} -gt 1 ] && echo "$(date +'%F %T') ${_apaket} $_talimat_sayisi_fazla" >> $LOGDIZIN/mps-hata.log
echo ${_bulunan}
}
2017-09-27 13:42:10 +02:00
paket_analiz(){
_gcc_uyumsuz_paketler="/tmp/gcc_uyumsuz_paketler"
_pkvt="paket.vt"
if [ -z "$1" ];then echo "$_paket_adi_gerekli";exit 1;fi
local pkt _apaket _konum
pkt=$1
if [ -f $pkt ];then
_apaket=$(basename $pkt |cut -d'#' -f 1)
2018-01-24 07:34:08 +01:00
_konum=$(talimat_bul $_apaket $anatalimatname)
2017-10-07 06:08:43 +02:00
_depo_sha=$(cat "$paketdepo$_pkvt" | grep " $_apaket#" | cut -d' ' -f2)
2017-09-27 13:42:10 +02:00
_paket_sha=$(sha1sum $pkt | cut -d ' ' -f1)
if [[ $_konum != "-1" && $_konum != "0" ]];then
source $_konum/talimat
if [ -f $pkt ];then
bsdtar xf $pkt .META
if [ -f $PWD/.META ];then
mv .META /tmp/$_apaket.META
satir=$(sed -n '7p' < /tmp/$_apaket.META)
psurum=${satir:1:${#satir}-1}
satir2=$(sed -n '8p' < /tmp/$_apaket.META)
pdevir=${satir2:1:${#satir2}-1}
2018-02-02 15:06:12 +01:00
deposurum=`echo -e "$surum" | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n | head -n1`
depodevir=`echo -e "$devir" | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n | head -n1`
2017-09-27 13:42:10 +02:00
_surumbilgi="gereken_sürüm:$deposurum ! paket_sürüm:$psurum"
_devirbilgi="gereken_devir:$depodevir ! paket_devir:$pdevir"
2018-05-17 23:37:58 +02:00
$_yaz_bilgi "$pkt"
2017-09-27 13:42:10 +02:00
if [ "$deposurum" != "$psurum" ];then
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$_surumbilgi"
2017-09-27 13:42:10 +02:00
echo "$pkt" >> $_gcc_uyumsuz_paketler
fi
if [ "$depodevir" != "$pdevir" ];then
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$_devirbilgi"
2017-09-27 13:42:10 +02:00
echo "$pkt" >> $_gcc_uyumsuz_paketler
fi
if [ "$_paket_sha" != "$_depo_sha" ];then
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$_shasum_uyumsuzluk"
2017-09-27 13:42:10 +02:00
echo "$pkt" >> $_gcc_uyumsuz_paketler
2017-09-27 04:42:23 +02:00
fi
else
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$_apaket depoda yok. mps -i $_apaket"
2017-09-27 04:42:23 +02:00
fi
else
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$_apaket depoda yok. mps -i $_apaket"
2017-09-27 04:42:23 +02:00
fi
2017-09-27 13:42:10 +02:00
else
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$1 $_talimat_bulunamadi"
2017-09-27 13:42:10 +02:00
fi
rm -f /tmp/$_apaket.META
else
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$pkt $_dosya_yolu_bulunamadi"
2017-09-27 13:42:10 +02:00
exit 0
fi
}
paketdepo_analiz(){
2017-09-27 13:46:47 +02:00
paketvt_guncelle
2017-09-27 13:42:10 +02:00
_aranandepo=$1
_uyumsuz_paketler="/tmp/uyumsuz_paketler"
if [[ -d $_aranandepo && ! -f $_aranandepo ]];then
rm -f $_uyumsuz_paketler
_gcc_uyumsuz_paketler="/tmp/gcc_uyumsuz_paketler"
for pkt in $(ls $_aranandepo*mps.lz);do
paket_analiz $pkt
2017-09-27 04:42:23 +02:00
echo "-"
done
echo "tarama bitti"
sort -u $_gcc_uyumsuz_paketler > $_uyumsuz_paketler
echo "file://$_uyumsuz_paketler"
exit 0
else
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$1 $_dizin_bulunamadi"
2017-09-27 04:42:23 +02:00
exit 1
fi
}
2017-09-25 17:41:26 +02:00
derleme_listyap_kontrol(){
2017-07-31 01:21:22 +02:00
2017-09-25 17:41:26 +02:00
if [ -f gerek.liste ];then
mv gerek.liste gerek.eski.liste
fi
2018-01-25 18:05:56 +01:00
if [ -f gerek.konum.liste ];then
mv gerek.konum.liste gerek.konum.eski.liste
fi
2017-09-25 17:41:26 +02:00
touch gerek.liste
2018-01-25 18:05:56 +01:00
touch gerek.konum.liste
2017-07-21 00:28:01 +02:00
}
2017-09-25 17:41:26 +02:00
gerekleri_dosyala(){
local _altgerek _konum
_altgerek="$1"
_konum=$(talimat_bul $_altgerek)
if [[ $konum != "-1" && $konum != "0" ]];then
printf "."
2018-01-25 18:05:56 +01:00
echo "$_altgerek" >> gerek.liste
2017-09-25 17:41:26 +02:00
if [ ! -d "$talimatname/temel/$_altgerek" ];then
2018-01-25 18:05:56 +01:00
echo "$_konum" >> gerek.konum.liste
2017-09-25 17:41:26 +02:00
fi
else
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$1 $_talimat_bulunamadi"
2017-09-06 17:36:51 +02:00
fi
}
2018-07-12 10:52:46 +02:00
deps_recursive(){
2018-07-05 03:31:21 +02:00
local _talimat _deps _temp _pkt _konum _kurkon bagimd
local _ekle=1
[ $1 ] && _pkt=$1 || hata_olustu "_talimat_bulunamadi"
[ $2 ] && _kurkon=$2 || echo "kurkon tanımsız"
[ $3 ] && _depsf=$3 || echo "depsf tanımsız"
2018-07-12 10:52:46 +02:00
printf "-"
2018-07-05 03:31:21 +02:00
_konum=$(talimat_bul $_pkt)
_talimat="${_konum}/talimat"
[ $_kurkon -eq 1 ] && [ `kurulu_kontrol $_pkt` = "kurulu" ] && _ekle=0
2018-07-12 10:52:46 +02:00
[ $_ekle -eq 1 ] && echo "@$bag@" >> ${_depsf}
2018-07-05 03:31:21 +02:00
_deps=$(cat $_talimat | awk '/^#[[:blank:]]*Gerek*/ {print}' | cut -d':' -f2)
if [ -n "$_deps" ]; then
bagimd=`echo "$_deps" | sed 's/,/ /g'`
for bag in $bagimd;do
2018-07-12 10:52:46 +02:00
#[ $_ekle -eq 1 ] && echo "@$bag@" >> ${_depsf}
_temp=$(grep -rli "@${bag}@" ${_depsf})
[ ! -z $_temp ] || deps_recursive $bag $_kurkon ${_depsf}
2018-07-05 03:31:21 +02:00
done
fi
2018-07-12 10:52:46 +02:00
2018-07-05 03:31:21 +02:00
}
2018-07-12 10:52:46 +02:00
deps(){
local _depsf="/tmp/deps"
2018-07-05 03:31:21 +02:00
local _kurkon=0
local _pkt
[ $1 ] && _pkt=$1 || hata_olustu "_talimat_bulunamadi"
$_yaz "$1 $_gerekler_belirleniyor"
[ $2 ] && [ $2 == "--kurulu_atla" ] && _kurkon=1
[ -f ${_depsf} ] && rm -f ${_depsf} && touch ${_depsf}
2018-07-12 10:52:46 +02:00
deps_recursive $_pkt $_kurkon ${_depsf}
2018-07-05 03:31:21 +02:00
sed -i 's/@//g' ${_depsf}
2018-07-12 10:52:46 +02:00
#printf "\n"
cat ${_depsf}
2018-07-05 03:31:21 +02:00
}
2018-07-12 10:52:46 +02:00
gerekleri_listele(){
2018-01-25 18:05:56 +01:00
derleme_listyap_kontrol
2018-01-26 03:42:01 +01:00
local _paket _konum _pkvt
2018-01-25 18:05:56 +01:00
_konum="$talimatname $ektalimatname"
[ $1 ] && _paket=$1 || hata_olustu "_talimat_bulunamadi"
2018-01-26 03:42:01 +01:00
_pkvt=""
[ "$2" = "--kurulu_atla" ] && _pkvt="$VT"
2018-02-21 17:20:28 +01:00
#echo "arama konum: $_konum"
2018-01-26 03:42:01 +01:00
echo $_paket | awk -v arama_konum="$_konum" -v PKVT="$_pkvt" \
'''
2018-01-25 18:05:56 +01:00
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);
2018-01-26 03:42:01 +01:00
2018-01-25 18:05:56 +01:00
if (konum != ""){
2018-01-26 03:42:01 +01:00
if (length(PKVT) > 0 ){
(kk(PKVT "/" ara))? yaz("."):gerekbul(konum)
}
else {gerekbul(konum)}
2018-01-25 18:05:56 +01:00
}
}
}
}
}
}
ISLENDI[paket]=1 ;
printf "."
system("echo $(dirname " paket ") >> gerek.konum.liste")
system("echo $(basename $(dirname " paket ")) >> gerek.liste")
close(paket)
}
2018-01-26 03:42:01 +01:00
# kurulu kontrol
function kk(p) {
return !system("test -d \""p"\"");
}
function yaz(_param){
printf _param
}
2018-01-25 18:05:56 +01:00
function talimat_bul(ara){
cmd= "find " arama_konum " -name " ara " | head -n1 "
2018-02-21 17:20:28 +01:00
_bulundu=0
2018-01-25 18:05:56 +01:00
while ( ( cmd | getline talimatyol ) > 0 ) {
2018-02-21 17:20:28 +01:00
_bulundu=1
2018-01-25 18:05:56 +01:00
break
}
close(cmd)
2018-02-21 17:20:28 +01:00
if ( _bulundu == 0 ) {
print ara " talimatı bulunamadı";
exit 1
}
return talimatyol "/talimat"
2018-01-25 18:05:56 +01:00
}
{
#print FILENAME
_talimat=$1
_paket=talimat_bul(_talimat)
if ( length(_paket) > 0 ){gerekbul(_paket);}
2018-01-27 07:55:32 +01:00
else {print _talimat " talimatı bulunumadı!"}
2018-01-25 18:05:56 +01:00
exit 1
}
'''
[ -f gerek.liste ] && cat gerek.liste | tr "\n" " ";echo
}
2018-07-12 10:52:46 +02:00
derleme_listyap(){
2018-11-07 02:33:01 +01:00
[ "$2" = "--renksiz" ] && cikti_renk_ayarla "$2"
[ "$3" = "--renksiz" ] && cikti_renk_ayarla "$3"
2018-05-17 22:53:29 +02:00
$_yaz "$1 $_gerekler_belirleniyor"
2018-01-26 03:42:01 +01:00
gerekleri_listele $@
}
2017-06-10 06:41:58 +02:00
# -derlist
2016-04-17 01:08:11 +02:00
paket_derle_liste(){
2018-07-12 10:52:46 +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
2018-07-12 10:52:46 +02:00
derleme_listyap "$1" && paket_derle_liste gerek.konum.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
2017-10-27 14:31:13 +02:00
_konum=$(talimat_bul $1)
2017-06-10 06:41:58 +02:00
paket_inkur_oto $1 &&
2017-10-27 14:31:13 +02:00
if [ -f "$_konum/$1.sira" ];then
2018-05-17 23:37:58 +02:00
$_yaz "sıralı derleme yapılacak."
2017-10-27 14:31:13 +02:00
paket_derle_liste "$_konum/$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
2018-01-26 04:36:35 +01:00
rm -rf {gerek.konum.eski,gerek.konum,gerek,kurulanlar,silinenler,gerek.eski}.liste
2017-03-05 20:08:43 +01:00
}
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#"*`
2018-02-03 13:58:31 +01:00
yerelden_kur "$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(){
2018-06-21 11:15:38 +02:00
local _pak _kliste
[ ! -z $1 ] && _kliste=$1
for _kpkt in `cat $_kliste`;do
for _pkt in `ls $_kpkt* | cut -d'#' -f1`;do
_pak=`ls "$_pkt#"*`
2018-11-07 03:48:32 +01:00
paket_sil "$_pkt" "--onayla"
2018-06-23 21:14:16 +02:00
echo $_pak
2018-06-21 11:15:38 +02:00
yerelden_kur "$_pak" && paket_inkur_oto "$_pkt"
2016-08-04 08:58:35 +02:00
done
done
2018-06-21 11:15:38 +02:00
rm -rf $_kliste
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#"*`
2018-02-03 13:58:31 +01:00
yerelden_kur "$pak"
2016-08-04 09:44:56 +02:00
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#"*`
2018-11-07 03:48:32 +01:00
paket_sil "$kpkt" "--onayla"
2018-02-03 13:58:31 +01:00
yerelden_kur "$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
2018-01-25 18:05:56 +01:00
derleme_listyap "$1" > /dev/null && mps -ok gerek.konum.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(){
2018-05-17 22:53:29 +02:00
local _cikti
2018-01-24 07:34:08 +01:00
_cikti="--renkli"
2018-01-27 07:55:32 +01:00
[ $1 ] && _pkt="$1" || hata_olustu "_paket_adi_gerekli"
2018-01-24 07:34:08 +01:00
[ $2 ] && _cikti="$2"
cikti_renk_ayarla $_cikti
local konum anakonum kurdurum _agdan_kur_onay
2017-07-31 01:21:22 +02:00
derleme_listyap_kontrol
2018-01-27 07:55:32 +01:00
derleme_listyap ${_pkt} "--kurulu_atla"
2018-01-26 03:42:01 +01:00
for kpkt in `cat gerek.liste`;do
2017-06-10 06:41:58 +02:00
# önce talimat-anatalimat karşılaştırması yapılır.
2017-09-25 17:41:26 +02:00
konum="`find "$talimatname" -name $kpkt`"
anakonum="`find "$anatalimatname" -name $kpkt`"
2017-07-31 01:21:22 +02:00
ekkonum="`find "$ektalimatname" -name $kpkt`"
if [ -f "$anakonum/talimat" ];then
2018-01-10 12:48:47 +01:00
# depo ve talimatname sürüm kontrolü
2018-01-26 03:42:01 +01:00
_gncdurum=""
[ "$(kurulu_kontrol ${kpkt})" = "kurulu" ] && _gncdurum=$(surum_karsilastir ${kpkt})
2018-01-10 15:09:12 +01:00
_agdan_kur_onay="x"
if [ "${_gncdurum}" == "degil" ];then
_agdan_kur_onay="h"
2018-01-10 12:48:47 +01:00
elif [ "`dosya_karsilastir $konum/talimat $anakonum/talimat`" = "evet" ];then
2018-01-10 15:09:12 +01:00
_agdan_kur_onay="e"
2017-07-31 01:21:22 +02:00
else
2018-01-10 15:09:12 +01:00
_agdan_kur_onay="h"
2017-12-14 06:40:19 +01:00
$_yaz_uyari "$kpkt talimat eşitsizliğinden atlandı."
2017-07-31 01:21:22 +02:00
fi
2018-01-10 15:09:12 +01:00
[ $_agdan_kur_onay == "x" ] && exit 1
2018-01-26 03:42:01 +01:00
[ $_agdan_kur_onay == "e" ] && agdan_kur "$kpkt" "$_cikti"
# ek talimatlar için sürüm karşılaştırma henüz yok.farklı depolara bakılarak sağlanacak
2017-07-31 01:21:22 +02:00
elif [ -f "$ekkonum/talimat" ];then
2018-01-26 03:42:01 +01:00
agdan_kur "$kpkt" "$_cikti"
2017-06-10 06:41:58 +02:00
else
2017-12-14 06:40:19 +01:00
$_yaz_uyari "$kpkt talimatı bulunamadı!"
2017-06-10 06:41:58 +02:00
fi
2016-04-21 15:25:08 +02:00
done
2018-01-27 07:55:32 +01:00
if [ $(kurulu_kontrol ${_pkt}) = "degil" ];then
2017-09-06 19:52:02 +02:00
kurdurum="kurulu değil"
2018-01-27 07:55:32 +01:00
elif [ $(kurulu_kontrol ${_pkt}) = "kurulu" ];then
2017-09-06 19:52:02 +02:00
kurdurum="kurulu"
2018-11-07 02:33:01 +01:00
$_yaz "${_pkt} $kurdurum"
2017-09-06 19:52:02 +02:00
else
2017-09-25 17:41:26 +02:00
kurdurum="$_paket_tanimsiz"
2017-09-06 19:52:02 +02:00
fi
2017-09-25 17:41:26 +02:00
rm -rf *.liste
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
2018-11-07 03:48:32 +01:00
paket_sil "$spkt" "--onayla"
2016-03-10 01:28:42 +01:00
done
}
2016-05-03 01:31:38 +02:00
2017-01-29 19:47:24 +01:00
paket_sil_oto_onayli(){
local spkt
2017-11-14 06:51:44 +01:00
#for spkt in `perl -e 'print reverse <>' $1`;do
for spkt in $(tac $1);do
2018-11-07 03:48:32 +01:00
paket_sil "$spkt" "--tersbag"
2017-01-29 19:47:24 +01:00
done
}
2018-01-26 03:42:01 +01:00
paket_sil_gereklerle(){
2018-06-30 18:18:42 +02:00
local _onay _tbsnc _paket _dosya _silindi
[ $1 ] && _paket="$1" || hata_olustu "_paket_adi_gerekli"
# otomatik onay verme durum kontrolü
_onay="onay"
2018-06-30 18:24:55 +02:00
[ $2 ] && _onay="$2";
2018-06-30 18:18:42 +02:00
if [ -d $VT/${_paket} ];then
_dosya=/tmp/${_paket}.gerekler.liste
rm -f /tmp/${_paket}.silinecekler
rm -f /tmp/${_paket}.silinemezler
_sliste=`mktemp`
_eliste=`mktemp`
bagimli_bilgi_dosyala "${_paket}"
for _pk in $(cat ${_dosya});do
_silindi=0
_tbsnc=$(ters_bagimli_bilgi ${_pk} "kurulu")
for _tbb in `echo $_tbsnc`;do
for _benzer in $(grep -ri "${_tbb}" ${_dosya});do
if [ ${_tbb} = ${_benzer} ];then
echo ${_pk} >> ${_sliste}
_silindi=1
fi
done
if [ ${_tbb} = ${_paket} ];then
echo ${_pk} >> ${_sliste}
_silindi=1
fi
if [ $_silindi -eq 0 ];then
echo ${_pk} >> ${_eliste}
fi
done
done
sort -u ${_sliste} > /tmp/${_paket}.silinecekler
sort -u ${_eliste} > /tmp/${_paket}.silinemezler
rm -rf ${_eliste} ${_sliste}
#cat /tmp/${_paket}.silinecekler
#cat /tmp/${_paket}.silinemezler
if [ $_onay = "oto" ];then
paket_sil_oto "/tmp/${_paket}.silinecekler"
else
paket_sil_oto_onayli "/tmp/${_paket}.silinecekler"
fi
else
$_yaz "$_zaten ${_paket} $_paket_kurulu_degil"
exit 1
fi
}
paket_sil_gereklerle_eski(){
2018-01-26 03:42:01 +01:00
local _onay _tbs _tbsnc _paket _ustgerek
[ $1 ] && _paket="$1" || hata_olustu "_paket_adi_gerekli"
2018-06-08 23:55:11 +02:00
# otomatik onay verme durum kontrolü
[ $2 ] && _onay="$2";
_onay="onay"
2018-01-26 03:42:01 +01:00
if [ -d $VT/${_paket} ];then
bagimli_bilgi_dosyala "${_paket}"
rm -f /tmp/${_paket}.silinecekler
touch /tmp/${_paket}.silinecekler
_tbsnc=$(ters_bagimli_bilgi ${_paket} "kurulu")
if [ -z "${_tbsnc}" ];then _tbs=0
else _tbs=$(echo "$_tbsnc" | wc -l)
fi
2018-01-25 18:05:56 +01:00
if [ $_tbs -gt 0 ];then
2018-05-17 23:37:58 +02:00
$_yaz_uyari "${_paket} silinemez."
2018-01-26 03:42:01 +01:00
echo "ters gerekleri:";echo "$_tbsnc"
2018-01-25 18:05:56 +01:00
exit 1
fi
2018-01-26 03:42:01 +01:00
for pkaltb in $(cat /tmp/${_paket}.gerekler.liste);do
2017-09-07 04:06:55 +02:00
if [ -d $VT/$pkaltb ];then
2018-01-26 03:42:01 +01:00
_tbsnc=""
_tbsnc=$(ters_bagimli_bilgi $pkaltb "kurulu")
if [ -z "${_tbsnc}" ];then _tbs=0
else _tbs=$(echo "$_tbsnc" | wc -l)
fi
echo "$pkaltb >"
if [ -f ${pkaltb}.tbk.txt ];then
_ustgerek=$(cat /tmp/${_paket}.silinecekler | grep -f ${pkaltb}.tbk.txt)
[ ${_ustgerek} ] && _tbs=0
fi
if [ $_tbs -eq 0 ];then
2018-05-17 23:37:58 +02:00
$_yaz "$pkaltb silinebilir."
2018-01-26 03:42:01 +01:00
echo "$pkaltb" >> /tmp/${_paket}.silinecekler
elif [ "$_tbsnc" = "${_paket}" ];then
2018-05-17 23:37:58 +02:00
$_yaz "$pkaltb silinebilir."
2018-01-26 03:42:01 +01:00
echo "$pkaltb" >> /tmp/${_paket}.silinecekler
2017-09-07 04:06:55 +02:00
else
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$pkaltb silinemez."
2017-11-14 05:18:39 +01:00
echo "ters gerekleri: $tbsonuc"
2017-09-07 04:06:55 +02:00
fi
else
2018-05-17 23:37:58 +02:00
$_yaz "$_zaten $pkaltb $_paket_kurulu_degil"
2017-09-07 04:06:55 +02:00
fi
done
2018-06-08 23:55:11 +02:00
2018-01-26 03:42:01 +01:00
#cat /tmp/${_paket}.silinecekler
if [ $_onay = "oto" ];then
2018-01-26 03:42:01 +01:00
paket_sil_oto "/tmp/${_paket}.silinecekler"
else
2018-01-26 03:42:01 +01:00
paket_sil_oto_onayli "/tmp/${_paket}.silinecekler"
fi
2017-09-07 04:06:55 +02:00
else
2018-05-17 23:37:58 +02:00
$_yaz "$_zaten ${_paket} $_paket_kurulu_degil"
2017-09-07 04:06:55 +02:00
exit 1
fi
2017-09-07 02:10:34 +02:00
}
2017-03-19 00:20:09 +01:00
paketsiz_talimatlar(){
2017-10-27 14:31:13 +02:00
for talimatyol in `( ls -d $talimatname/genel/*/* & ls -d $ektalimatname/*/* ) | cat`;do
2017-08-08 21:39:37 +02:00
#echo $talimat
if [ -d $talimatyol ];then
talimat=$(basename $talimatyol)
if [[ ! $(cat $paketdepo/paket*.vt | grep $talimat#) ]] ;then
2017-10-27 14:31:13 +02:00
if [ -d $talimatname/*/*/$talimat ];then
2017-10-27 20:46:27 +02:00
ack=`grep -e '# Tanım:' $talimatname/genel/*/$talimat/talimat | cut -d':' -f2`
2017-08-08 21:39:37 +02:00
elif [ -d $ektalimatname/*/$talimat ];then
2017-10-27 20:46:27 +02:00
ack=`grep -e '# Tanım:' $ektalimatname/*/$talimat/talimat | cut -d':' -f2`
2017-08-08 21:39:37 +02:00
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(){
2018-04-01 23:11:20 +02:00
surum_kontrol $1 $2 $3
2017-11-01 00:06:35 +01:00
if [ -d "$VT/$1" ];then
2018-11-07 09:09:45 +01:00
# paket sürümü güncellenirse devir güncelleme pas geçilecek.
2018-11-07 09:49:42 +01:00
# paketin güncel olması durumu 1 gelirse
2018-04-10 23:39:12 +02:00
if [ ${_paketguncel} -eq 0 ];then
devir_kontrol $1 $2 $3
fi
2017-11-01 00:06:35 +01:00
fi
2018-04-10 23:39:12 +02:00
export _paketguncel=0
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
2018-04-01 23:11:20 +02:00
GS_CIKTI="H"
2018-01-25 18:05:56 +01:00
for kpkt in `cat gerek.konum.liste`;do
2017-09-09 06:31:30 +02:00
durum=`kurulu_kontrol "$kpkt"`
if [ "$durum" = "kurulu" ]; then
2018-04-01 23:11:20 +02:00
paket_guncelle "$kpkt" $GS_CIKTI
2017-09-09 06:33:32 +02:00
fi
2016-05-03 01:31:38 +02:00
done
2018-01-26 03:42:01 +01:00
listeleri_temizle
2016-05-03 01:31:38 +02:00
}
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
}
2018-10-18 08:01:43 +02:00
t_indeks(){
2018-10-18 14:26:14 +02:00
# karşılaştırma dosyası -talimatname indeks dönüşü verecek
2018-10-18 08:01:43 +02:00
[ -z $1 ] && exit 1
local dosya_t="$1"
2018-10-18 14:26:14 +02:00
# talimat listesi
2018-10-18 08:01:43 +02:00
local dosya=`mktemp`
local dosya_sirasiz=`mktemp`
2018-11-07 04:06:54 +01:00
find ${talimatname}/temel/ -type f -name talimat | xargs -I {} dirname {} > $dosya
find ${talimatname}/genel/ -type f -name talimat | xargs -I {} dirname {} >> $dosya
find ${ektalimatname}/ -type f -name talimat | xargs -I {} dirname {} >> $dosya
2018-10-18 14:26:14 +02:00
2018-11-04 15:27:44 +01:00
i=1
sp="/-\|"
echo -n ' '
2018-10-18 08:01:43 +02:00
while IFS='' read -r konum || [[ -n "$konum" ]]; do
2018-11-04 15:27:44 +01:00
printf "\b${sp:i++%${#sp}:1}"
2018-10-18 08:01:43 +02:00
# Surum-Devir
isim=$(basename $konum)
#surum=$(grep -ri ^"surum=" $konum/talimat | cut -d '=' -f2 | awk '{ sub(/[ \t]+$/, ""); print }')
2018-10-18 14:26:14 +02:00
# sürüm ve devir değişkenlerinin olası boşluklarının kırpılması
2018-10-18 08:01:43 +02:00
surum=$(grep -ri ^"surum=" $konum/talimat | cut -d '=' -f2 | tr -d [:space:])
devir=$(grep -ri ^"devir=" $konum/talimat | cut -d '=' -f2 | tr -d [:space:])
2018-10-18 12:33:42 +02:00
echo "$isim@$surum-$devir" >> $dosya_sirasiz
2018-10-18 08:01:43 +02:00
done < "$dosya"
sort $dosya_sirasiz > $dosya_t
rm -f $dosya $dosya_sirasiz
}
k_indeks(){
2018-10-18 12:33:42 +02:00
# karşılaştırma dosyası -sıralı dönüş verecek
2018-10-18 08:01:43 +02:00
[ -z $1 ] && exit 1
2018-10-18 12:33:42 +02:00
# sistemde kurulum sıralı dosya dönüş verecek
[ -z $2 ] && exit 1
2018-10-18 08:01:43 +02:00
local dosya_k="$1"
2018-10-18 12:33:42 +02:00
local dosya="$2"
2018-10-18 08:01:43 +02:00
local dosya_sirasiz=`mktemp`
[ -f $dosya ] && rm -rf $dosya
2018-10-18 12:33:42 +02:00
ls -rct $VT > $dosya
2018-10-18 08:01:43 +02:00
for _esgec in `echo ${esgec} | tr " " "\n"`;do
2018-10-18 12:33:42 +02:00
_satirno=$(grep -wxnr "${_esgec}" ${dosya} | cut -d':' -f1)
2018-10-18 08:01:43 +02:00
[ ! -z ${_satirno} ] && sed -i "${_satirno}d" ${dosya}
2017-07-31 15:35:46 +02:00
done
2018-11-04 15:27:44 +01:00
i=1
sp="/-\|"
echo -n ' '
2018-10-18 12:33:42 +02:00
while IFS='' read -r kpaket || [[ -n "$kpaket" ]]; do
2018-10-18 08:01:43 +02:00
2018-11-04 15:27:44 +01:00
printf "\b${sp:i++%${#sp}:1}"
2018-10-18 08:01:43 +02:00
# Surum-Devir
2018-10-18 12:33:42 +02:00
satir=$(sed -n '1p' < $VT/${kpaket}/META)
2018-10-18 08:01:43 +02:00
isim=${satir:1:${#satir}-1}
2018-10-18 12:33:42 +02:00
satir=$(sed -n '7p' < $VT/${kpaket}/META)
2018-10-18 08:01:43 +02:00
surum=${satir:1:${#satir}-1}
2018-10-18 12:33:42 +02:00
satir=$(sed -n '8p' < $VT/${kpaket}/META)
2018-10-18 08:01:43 +02:00
devir=${satir:1:${#satir}-1}
2018-10-18 12:33:42 +02:00
echo "$isim@$surum-$devir" >> $dosya_sirasiz
2018-10-18 08:01:43 +02:00
done < "$dosya"
2018-10-18 14:26:14 +02:00
# alfabetik sıralama
2018-10-18 08:01:43 +02:00
sort $dosya_sirasiz > $dosya_k
2018-10-18 12:33:42 +02:00
rm -f $dosya_sirasiz
2017-07-31 15:35:46 +02:00
}
2018-10-18 08:01:43 +02:00
guncelleme_tespit(){
2018-10-18 14:26:14 +02:00
# talimatname indeks dosyası
2018-10-18 08:01:43 +02:00
local dosya_t=`mktemp`
2018-10-18 14:26:14 +02:00
# kurulum indeks dosyası
2018-10-18 08:01:43 +02:00
local dosya_k=`mktemp`
2018-10-18 14:26:14 +02:00
# kuruluma göre sıralı paket listesi
local dosya_ks=`mktemp`
# güncellenecek paket listesi sırasız
2018-10-18 12:33:42 +02:00
local dosya_g=`mktemp`
2018-11-04 04:21:15 +01:00
# güncellenecek paket liste
2018-10-18 13:52:33 +02:00
local dosya_son=`mktemp`
2018-10-18 14:26:14 +02:00
local dosya_sonuc=`mktemp`
2018-11-04 04:21:15 +01:00
# talimatsız paket listesi
local dosya_talimatsiz=`mktemp`
2018-10-18 08:01:43 +02:00
t_indeks $dosya_t &
2018-10-18 14:26:14 +02:00
k_indeks $dosya_k $dosya_ks &
2018-10-18 08:01:43 +02:00
wait $(jobs -p)
2018-10-18 13:09:13 +02:00
#set -x
2018-10-18 14:26:14 +02:00
# talimatname ve kurulu sürüm-devir indeks dosya karşılaştırılması
2018-10-18 12:33:42 +02:00
grep -vxFf $dosya_t $dosya_k > $dosya_g
2018-10-18 14:26:14 +02:00
# paketleri çekmek için satır sonu @ ekleme
sed -i 's/$/@/' $dosya_ks
2018-10-18 14:32:42 +02:00
for _satir in $(cat $dosya_g);do
_gpaket=$(echo ${_satir} | cut -d'@' -f1)
2018-11-04 04:21:15 +01:00
# kurulu olup talimatı olmayan paketlerin tespit edilmesi
grep -nr "^${_gpaket}@" $dosya_t > /dev/null
if [ $? -eq 0 ];then
grep -nr "^${_gpaket}@" $dosya_ks >> $dosya_son
else
echo "${_gpaket}" >> $dosya_talimatsiz
fi
2018-10-18 13:52:33 +02:00
done
2018-10-18 14:26:14 +02:00
# güncellenecek paketlerin-kurulum sırasına göre sıralanıp, sadeleştirilmesi
2018-10-23 08:24:12 +02:00
sort $dosya_son | cut -d':' -f2 | cut -d'@' -f1 > $dosya_sonuc
2018-10-18 14:32:42 +02:00
# geçici dosyaların silinmesi
2018-11-04 04:21:15 +01:00
#echo "$dosya_t $dosya_k $dosya_ks $dosya_g $dosya_son"
2018-11-03 23:12:05 +01:00
rm -f $dosya_t $dosya_k $dosya_ks $dosya_g $dosya_son
2018-10-18 14:32:42 +02:00
# güncellenecek paket listesi yazdırılması
2018-11-04 15:27:44 +01:00
printf "\n"
2018-11-04 04:21:15 +01:00
echo "--------------güncelleme----------------"
cat $dosya_sonuc
echo "--------------talimatsız----------------"
# talimatsız paket listesi yazdırılması
cat $dosya_talimatsiz
2018-10-18 08:01:43 +02:00
}
2018-11-04 23:41:01 +01:00
# deneme aşamasında
guncelleme_tespit_hizli(){
for _hashd in $(find $VT -name sha1 -type f);do
_hash=$(cat $_hashd | awk -F" " '{print $1}')
for pktvt in $(ls ${paketdepo}paket*.vt) ; do
# hash değerinin paket.vt kontrolü
printf "$(basename ${_hashd%/*})\t"
grep -r ${_hash} ${pktvt} > /dev/null
if [ ! $? -eq 0 ];then
echo "-"
else
echo "+"
break
fi
done
done
#echo "----"
}
2018-04-01 23:11:20 +02:00
sistem_guncelle_uygula(){
2018-08-27 16:54:50 +02:00
local _gdosya _onay
2018-04-02 00:26:06 +02:00
if [ "$1" ]; then
_gdosya="$1"
2018-04-01 23:11:20 +02:00
fi
2018-08-27 16:54:50 +02:00
_onay="yok"
if [ "$2" ]; then
_onay="$2"
fi
[ $_onay = "evet" ] && GS_CIKTI="E"
2018-04-01 23:11:20 +02:00
[ ! -f ${_gdosya} ] && exit 1
for gpkt in `cat ${_gdosya}`;do
durum=`kurulu_kontrol "$gpkt"`
if [ "$durum" = "kurulu" ]; then
paket_guncelle "$gpkt" $GS_CIKTI "E"
fi
done
}
sistem_guncelle(){
2018-09-02 23:24:54 +02:00
local guncelleme_dosya _onay _talimatsiz_dosya
2018-04-11 01:53:09 +02:00
_onay=0
if [ "$1" = "evet" ];then
_onay=1
fi
2018-07-20 16:03:15 +02:00
if [ "$1" = "dosya" ];then
_onay=2
fi
2018-04-02 02:05:49 +02:00
if [ "$1" ] && [ -f "$1" ];then
guncelleme_dosya="$1"
2018-04-11 01:53:09 +02:00
[ "$2" = "evet" ] && _onay=1
2018-04-02 02:05:49 +02:00
else
count=0
local kpaket _pkliste _konum
guncelleme_dosya="/tmp/mps.guncellenecekler"
2018-09-02 23:24:54 +02:00
_talimatsiz_dosya="/tmp/talimatsizpkt.liste"
2018-04-02 02:05:49 +02:00
rm -f $guncelleme_dosya
touch $guncelleme_dosya
2018-09-02 23:24:54 +02:00
rm -f $_talimatsiz_dosya
touch $_talimatsiz_dosya
2018-04-02 02:05:49 +02:00
total=`ls $VT | wc -l`
pstr="[=======================================================================]"
2018-10-18 08:20:11 +02:00
git_guncelle
paketvt_guncelle
2018-04-02 02:05:49 +02:00
GS_CIKTI="H"
_pkliste=$(mktemp)
ls -rct $VT > ${_pkliste}
for _esgec in `echo ${esgec} | tr " " "\n"`;do
_satirno=$(grep -wxnr "${_esgec}" ${_pkliste} | cut -d':' -f1)
[ ! -z ${_satirno} ] && sed -i "${_satirno}d" ${_pkliste}
done
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
kpaket=$(sed -n ${count}'p' ${_pkliste})
2018-06-03 15:48:22 +02:00
_konum=$(talimat_bul $kpaket)
if [ "$_konum" = "-1" ];then
2018-09-02 23:29:40 +02:00
#$_yaz_uyari "$kpaket $_talimat_bulunamadi $_surum_kontrol_iptal"
2018-06-03 15:48:22 +02:00
# talimatnamede yer almadığından paketin güncellenmesi es geçilecek.
2018-09-02 23:24:54 +02:00
echo $kpaket >> $_talimatsiz_dosya
2018-06-03 15:48:22 +02:00
kpaket=""
fi
2018-04-02 02:05:49 +02:00
if [ ! -z $kpaket ];then
satir=$(sed -n '7p' < $VT/$kpaket/META)
ksurum=${satir:1:${#satir}-1}
satir2=$(sed -n '8p' < $VT/$kpaket/META)
kdevir=${satir2:1:${#satir2}-1}
#deposurum=$(grep " $kpaket#" /depo/paketler/paket.vt | cut -d' ' -f3 | cut -d'#' -f 2 | cut -d'-' -f1)
source $_konum/talimat
deposurum=`echo -e "$surum" | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n | head -n1`
depodevir=`echo -e "$devir" | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n | head -n1`
#echo $kpaket " : $ksurum ---> $deposurum" "$kdevir ---> $depodevir"
#sleep 3
if [ "$ksurum" != "$deposurum" ];then
#printf "$kpaket -surum: ";echo "$ksurum ---> $deposurum"
echo $kpaket >> $guncelleme_dosya
elif [ "$kdevir" != "$depodevir" ];then
#printf "$kpaket -devir: ";echo "$kdevir ---> $depodevir"
echo $kpaket >> $guncelleme_dosya
fi
2018-04-01 23:11:20 +02:00
fi
2018-04-02 02:05:49 +02:00
done
2018-10-18 08:01:43 +02:00
$_yaz "Sistem Güncelleme Taraması Tamamlandı."
2018-04-02 02:05:49 +02:00
fi
2018-11-04 04:31:13 +01:00
if [ -s "$_talimatsiz_dosya" ];then
2018-09-02 23:24:54 +02:00
$_yaz_tm "aşağıdaki paketlerin talimatı olmayıp depoda bulunmamaktadırlar!"
cat $_talimatsiz_dosya
$_yaz_uyari "mps sildos $_talimatsiz_dosya - komutuyla ilgili paketleri kaldırabilirsiniz."
fi
2018-04-02 02:05:49 +02:00
if [ -s "$guncelleme_dosya" ];then
2018-05-17 23:37:58 +02:00
$_yaz_tm "aşağıdaki paketler güncellenecektir:"
2018-04-02 02:05:49 +02:00
cat $guncelleme_dosya
2018-05-17 23:37:58 +02:00
$_yaz_uyari "Güncellemesini istemediğiniz paketleri $guncelleme_dosya dosyasından sildikten sonra onay veriniz!"
2018-04-11 01:53:09 +02:00
if [ ${_onay} -eq 0 ];then
while true; do
2018-05-17 23:37:58 +02:00
$_yaz_tm "listedeki paketler güncellensin mi?";read -p "e veya h-> " eh
2018-04-11 01:53:09 +02:00
case $eh in
[Ee]* ) sistem_guncelle_uygula $guncelleme_dosya; break;;
[Hh]* ) break;;
* ) echo "e veya h";;
esac
done
2018-07-20 16:03:15 +02:00
elif [ ${_onay} -eq 1 ];then
2018-08-27 16:54:50 +02:00
sistem_guncelle_uygula $guncelleme_dosya "evet"
2018-07-20 16:03:15 +02:00
else
echo "güncelleme dosyanız: $guncelleme_dosya"
exit 1
2018-04-11 01:53:09 +02:00
fi
2018-04-02 02:05:49 +02:00
else
2018-05-17 23:37:58 +02:00
$_yaz_uyari "Güncellenecek paket bulunamadı!"
2018-04-02 02:05:49 +02:00
fi
2018-04-01 23:11:20 +02:00
}
2016-05-03 01:31:38 +02:00
surum_kontrol(){
2017-11-01 00:06:35 +01:00
local _konum pk_sil _paket
_paket=$1
2017-07-31 15:35:46 +02:00
GS_CIKTI="E"
2018-04-01 23:11:20 +02:00
G_ONAY="H"
2017-07-31 15:35:46 +02:00
if [ "$2" ]; then
GS_CIKTI="$2"
fi
2018-04-01 23:11:20 +02:00
if [ "$3" ]; then
G_ONAY="$3"
fi
2017-10-28 14:10:23 +02:00
local ksurum surum pkt dusuk yuksek durum
2016-05-03 01:31:38 +02:00
durum="belirsiz"
2017-11-01 00:06:35 +01:00
satir=`sed -n '7p' < $VT/$_paket/META`
2016-05-03 01:31:38 +02:00
ksurum=${satir:1:${#satir}-1}
2017-08-08 21:39:37 +02:00
2017-09-25 17:41:26 +02:00
2017-11-01 00:06:35 +01:00
_konum=$(talimat_bul $_paket)
2018-01-24 07:34:08 +01:00
if [ "$_konum" = "-1" ];then
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$_paket $_talimat_bulunamadi $_surum_kontrol_iptal"
2017-11-01 00:06:35 +01:00
pk_sil="e"
2018-01-29 05:01:20 +01:00
for _esgec in `echo ${silme_esgec} | tr " " "\n"`;do
if [ "${_esgec}" = "${_paket}" ];then
pk_sil="h"
break
fi
done
2017-11-01 00:06:35 +01:00
if [ "$pk_sil" = "e" ];then
2018-05-17 23:37:58 +02:00
$_yaz "$_paket $_paket_depoda_yok $_siliniyor"
2018-11-07 03:48:32 +01:00
paket_sil "$_paket" "--onayla"
2017-11-01 00:06:35 +01:00
else
2018-05-17 23:37:58 +02:00
$_yaz "$_paket silinmesi es geçildi"
2017-11-01 00:06:35 +01:00
fi
2017-10-29 18:37:17 +01:00
else
2017-08-08 21:39:37 +02:00
2017-10-29 18:37:17 +01:00
source $_konum/talimat
2017-09-25 17:41:26 +02:00
2018-02-02 15:06:12 +01:00
dusuk=`echo -e "$ksurum\n$surum" | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n | head -n1`
2017-10-29 18:37:17 +01:00
if [ "$ksurum" = "$surum" ];then
durum="guncel"
2018-05-17 23:37:58 +02:00
[ $GS_CIKTI = "E" ] && $_yaz_bilgi "$_paket sürümü güncel"
2017-10-29 18:37:17 +01:00
#printf "."
2016-05-03 01:31:38 +02:00
else
2017-10-29 18:37:17 +01:00
if [ "$ksurum" = "$dusuk" ];then
durum="yukselt"
else
durum="dusur"
fi
gun_onay="h"
2017-12-13 15:26:53 +01:00
if [ "$durum" != "guncel" ];then
2018-04-01 23:11:20 +02:00
if [ $G_ONAY = "H" ];then
while true; do
printf "\n"
2018-05-17 23:37:58 +02:00
$_yaz_tm "$_paket sürüm $durum""me işlemi uygulanacak. $ksurum <> $surum ";read -p "e veya h-> " eh
2018-04-01 23:11:20 +02:00
case $eh in
[Ee]* ) gun_onay="e"; break;;
[Hh]* ) break;;
* ) echo "e veya h";;
esac
done
else
gun_onay="e"
fi
2017-10-29 18:37:17 +01:00
if [ "$gun_onay" = "e" ];then
2017-11-01 00:06:35 +01:00
if [ -d "$talimatname/temel/$_paket" ]; then
kurulum_dogrulama_icerik $_paket
2017-10-29 18:37:17 +01:00
tpk="hayir"
2018-11-07 03:48:32 +01:00
paket_sil "$_paket" "--onayla"
2017-11-01 00:06:35 +01:00
paket_indir $_paket
pkt=`cat "$paketdepo""paket.vt" | grep "^$_paket " | cut -d' ' -f3`
2018-11-04 23:41:01 +01:00
icerik_ekle "${paketdepo}${pkt}"
2017-10-29 18:37:17 +01:00
else
2018-11-07 03:48:32 +01:00
paket_sil "$_paket" "--onayla"
2017-11-01 00:06:35 +01:00
paket_inkur_oto $_paket
2017-10-29 18:37:17 +01:00
fi
2018-05-17 23:37:58 +02:00
$_yaz_tm "$_paket sürüm güncellemesi yapıldı"
2018-04-10 23:39:12 +02:00
export _paketguncel=1
2017-07-23 03:20:01 +02:00
else
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$_paket sürüm güncellemesi yapılmadı"
2017-11-01 00:06:35 +01:00
hataloglama "$_paket sürüm güncellemesi yapılmadı"
2017-07-23 03:20:01 +02:00
fi
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-11-01 00:06:35 +01:00
local _konum pk_sil _paket
_paket="$1"
2017-07-31 15:35:46 +02:00
GS_CIKTI="E"
2018-04-01 23:11:20 +02:00
G_ONAY="H"
2017-07-31 15:35:46 +02:00
if [ "$2" ]; then
GS_CIKTI="$2"
fi
2018-04-01 23:11:20 +02:00
if [ "$3" ]; then
G_ONAY="$3"
fi
2017-10-28 14:10:23 +02:00
local kdevir devir pkt dusuk yuksek durum gun_onay
2016-05-03 01:31:38 +02:00
durum="belirsiz"
2017-11-01 00:06:35 +01:00
satir=`sed -n '8p' < $VT/$_paket/META`
2016-05-03 01:31:38 +02:00
kdevir=${satir:1:${#satir}-1}
2017-08-08 21:39:37 +02:00
2017-11-01 00:06:35 +01:00
_konum=$(talimat_bul $_paket)
2018-01-24 07:34:08 +01:00
if [ "$_konum" = "-1" ];then
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$_paket $_talimat_bulunamadi $_devir_kontrol_iptal"
2017-11-01 00:06:35 +01:00
pk_sil="e"
2018-01-29 05:01:20 +01:00
for _esgec in `echo ${silme_esgec} | tr " " "\n"`;do
if [ "${_esgec}" = "${_paket}" ];then
pk_sil="h"
break
fi
done
2017-11-01 00:06:35 +01:00
if [ "$pk_sil" = "e" ];then
2018-05-17 23:37:58 +02:00
$_yaz "$_paket $_paket_depoda_yok $_siliniyor"
2018-11-07 03:48:32 +01:00
paket_sil "$_paket" "--onayla"
2017-11-01 00:06:35 +01:00
else
2018-05-17 23:37:58 +02:00
$_yaz "$_paket silinmesi es geçildi"
2017-11-01 00:06:35 +01:00
fi
2017-10-29 18:37:17 +01:00
2016-05-03 01:31:38 +02:00
else
2017-10-29 18:37:17 +01:00
source $_konum/talimat
2018-02-02 15:06:12 +01:00
dusuk=`echo -e "$kdevir\n$devir" | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n | head -n1`
2017-10-29 18:37:17 +01:00
if [ "$kdevir" = "$devir" ];then
durum="guncel"
2018-05-17 23:37:58 +02:00
[ $GS_CIKTI = "E" ] && $_yaz_bilgi "$_paket deviri güncel"
2017-10-29 18:37:17 +01:00
#printf "."
2016-05-03 01:31:38 +02:00
else
2017-10-29 18:37:17 +01:00
if [ "$kdevir" = "$dusuk" ];then
durum="yukselt"
2017-03-07 20:24:59 +01:00
else
2017-10-29 18:37:17 +01:00
durum="dusur"
2017-03-07 20:24:59 +01:00
fi
2017-10-29 18:37:17 +01:00
gun_onay="h"
2017-12-13 15:26:53 +01:00
if [ "$durum" != "guncel" ];then
2018-04-01 23:11:20 +02:00
if [ $G_ONAY = "H" ];then
while true; do
printf "\n"
2018-05-17 23:37:58 +02:00
$_yaz_tm "$_paket devir $durum""me işlemi uygulanacak. $kdevir <> $devir ";read -p "e veya h-> " eh
2018-04-01 23:11:20 +02:00
case $eh in
[Ee]* ) gun_onay="e"; break;;
[Hh]* ) break;;
* ) echo "e veya h";;
esac
done
else
gun_onay="e"
fi
2017-10-29 18:37:17 +01:00
if [ "$gun_onay" = "e" ];then
2018-11-07 03:48:32 +01:00
paket_sil "$_paket" "--onayla"
2018-05-17 22:53:29 +02:00
paket_inkur_oto "$_paket"
2018-05-17 23:37:58 +02:00
$_yaz_bilgi "$_paket devir güncellemesi yapıldı"
2017-10-29 18:37:17 +01:00
else
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$_paket devir güncellemesi yapılmadı"
2017-11-01 00:06:35 +01:00
hataloglama "$_paket devir güncellemesi yapılmadı"
2017-10-29 18:37:17 +01:00
fi
fi
fi
fi
2016-05-03 01:31:38 +02:00
}
2017-11-01 23:37:36 +01:00
2018-01-10 12:48:47 +01:00
surum_karsilastir(){
local kpaket _konum
[ "$1" ] && kpaket="$1" || exit 1
deposurum=$(grep " $kpaket#" /depo/paketler/paket.vt | cut -d' ' -f3 | cut -d'#' -f 2 | cut -d'-' -f1)
_konum=$(talimat_bul $kpaket)
2018-01-24 07:34:08 +01:00
if [ "$_konum" = "-1" ];then
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$kpaket $_talimat_bulunamadi $_surum_kontrol_iptal"
2018-01-10 12:48:47 +01:00
exit 1
fi
source $_konum/talimat
2018-02-02 15:06:12 +01:00
tsurum=`echo -e "$surum" | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n | head -n1`
2018-01-10 12:48:47 +01:00
if [ "$tsurum" == "$deposurum" ];then
echo "esit"
else
echo "degil"
fi
}
2017-12-27 23:31:19 +01:00
surum_devir_kontrol(){
2018-01-08 19:48:25 +01:00
local _konum pk_sil _paket _durum pk_guncelle
2017-12-27 23:31:19 +01:00
_paket=$1
2018-01-07 18:03:08 +01:00
_durum="yaz"
2018-01-08 19:48:25 +01:00
pk_guncelle="e"
2018-01-07 18:03:08 +01:00
[ $2 ] && _durum="$2"
2017-12-27 23:31:19 +01:00
local kdevir devir ksurum surum pkt dusuk yuksek durum
durum="belirsiz"
2017-12-27 23:40:51 +01:00
if [ -d "$VT/$_paket" ];then
satir=`sed -n '7p' < $VT/$_paket/META`
2017-12-28 06:37:13 +01:00
ksurum="${satir:1:${#satir}-1}-"
2017-12-27 23:40:51 +01:00
satir=`sed -n '8p' < $VT/$_paket/META`
2017-12-28 06:37:13 +01:00
kdevir=${satir:1:${#satir}-1}
2017-12-27 23:40:51 +01:00
else
2017-12-28 06:37:13 +01:00
ksurum="(none)"
kdevir=""
2017-12-27 23:40:51 +01:00
fi
2017-12-27 23:31:19 +01:00
_konum=$(talimat_bul $_paket)
2018-01-24 07:34:08 +01:00
if [ "$_konum" = "-1" ];then
2017-12-27 23:31:19 +01:00
echo "$_paket $_talimat_bulunamadi $_surum_kontrol_iptal"
else
2018-01-29 03:01:15 +01:00
for _esgec in `echo ${esgec} | tr " " "\n"`;do
if [ "${_esgec}" = ${_paket} ];then
pk_guncelle="h"
break
fi
done
2018-01-08 19:48:25 +01:00
if [ $pk_guncelle == "e" ];then
source $_konum/talimat
if [ "${_durum}" == "yaz" ];then
echo "$_paket:"
echo "kurulu sürüm :$ksurum$kdevir"
echo "depo sürüm :$surum-$devir"
echo "--"
2018-01-07 18:03:08 +01:00
else
2018-01-08 19:48:25 +01:00
if [ "$ksurum$kdevir" == "$surum-$devir" ];then
echo "yok"
else
echo "var"
fi
2018-01-07 18:03:08 +01:00
fi
2018-01-08 19:48:25 +01:00
else
echo "$_paket için sürüm-devir kontrolü es geçildi."
2018-01-07 18:03:08 +01:00
fi
2017-12-27 23:31:19 +01:00
fi
}
_devir_kontrol_durum(){
local _konum pk_sil _paket
_paket="$1"
local kdevir devir pkt dusuk yuksek durum gun_onay
2018-10-25 15:25:37 +02:00
_kurulu=$(kurulu_kontrol "$_paket")
if [ ${_kurulu} != "kurulu" ];then
ryaz 31 "$_paket $_paket_kurulu_degil"
exit 1
fi
2017-12-27 23:31:19 +01:00
durum="belirsiz"
satir=`sed -n '8p' < $VT/$_paket/META`
kdevir=${satir:1:${#satir}-1}
_konum=$(talimat_bul $_paket)
2018-01-24 07:34:08 +01:00
if [ "$_konum" = "-1" ];then
2017-12-27 23:31:19 +01:00
echo "$_paket $_talimat_bulunamadi $_devir_kontrol_iptal"
else
source $_konum/talimat
echo "kurulu devir :$kdevir"
echo "depo devir :$devir"
fi
}
2018-07-20 22:19:15 +02:00
grup_kontrol() {
local _talimat _grup
[ -z $1 ] && exit 1
_talimat="$1"
2018-07-20 22:42:30 +02:00
_grup=$(LC_ALL=tr_TR.utf-8 grep -ri "Grup:" ${_talimat} | cut -d':' -f2 | sed 's/^ *//;s/ *$//' | cut -d' ' -f1)
echo "( $_grup ) içermektedir!"
2018-07-20 22:19:15 +02:00
if [ -z "${_grup}" ];then
_grup="bos"
grupad_kontrol $_grup ${_talimat}
else
grupad_kontrol $_grup ${_talimat}
fi
}
grupad_kontrol() {
local _grup _var _lineno _agrup _talimat
_var=0
[ -z $1 ] && exit 1
[ -z $2 ] && exit 1
_grup="$1"
_talimat="$2"
if [ -f ${GRUP_DOSYA} ];then
for grup in `cat ${GRUP_DOSYA}`;do
2018-07-20 22:42:30 +02:00
[ "x${_grup}x" = "x${grup}x" ] && _var=1
2018-07-20 22:19:15 +02:00
done
if [ $_var -eq 0 ];then
cat -n ${GRUP_DOSYA}
_lineno=$(wc -l ${GRUP_DOSYA} | cut -d' ' -f1)
if [ $_grup = "bos" ];then
echo "Talimat grup bilgisi içermemektedir!"
else
2018-07-20 22:42:30 +02:00
echo "Talimat geçersiz grup bilgisi( $_grup ) içermektedir!"
2018-07-20 22:19:15 +02:00
fi
echo "Yukarıdaki grup numaralarından birini seçiniz!";read -p "No:" _no
2018-07-20 22:24:27 +02:00
[ $_no -lt 1 ] && grupad_kontrol $_grup ${_talimat}
[ $_no -gt $_lineno ] && grupad_kontrol $_grup ${_talimat}
2018-07-20 22:19:15 +02:00
_agrup=$(cat ${GRUP_DOSYA} | sed -n ${_no}p)
sed -i '/Grup:/d' ${_talimat}
sed -i "/# Gerekler/a # Grup: $_agrup" ${_talimat}
fi
else
echo "gruplar dosyası yok: ${GRUP_DOSYA}"
fi
}
2017-11-01 23:37:36 +01:00
talimat_surum_takip(){
2017-11-02 00:04:16 +01:00
local konum _takip_uzanti
_takip_uzanti=".takip"
2017-11-01 23:37:36 +01:00
konum=$(talimat_bul $1)
if [[ $konum == "-1" || $konum == "0" ]];then
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$1 $_talimat_bulunamadi"
2017-11-01 23:37:36 +01:00
exit 1
else
2017-11-02 00:04:16 +01:00
if [ -f "$konum/$1$_takip_uzanti" ];then
source $konum/$1$_takip_uzanti
if [ "`type -t surum_takip`" = "function" ];then
2018-05-17 23:37:58 +02:00
$_yaz "$1 paketinin kaynak kod arşivleri inceleniyor..."
2017-11-02 00:04:16 +01:00
surum_takip
else
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$1 talimatının sürüm takip işlevi yok!"
2017-11-02 00:04:16 +01:00
fi
2017-11-01 23:37:36 +01:00
else
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$1 talimatının takip betiği yok!"
2017-11-01 23:37:36 +01:00
fi
fi
}
2017-11-14 04:24:55 +01:00
kaynak_kod_indir(){
local konum adres adres2
2018-01-29 07:20:25 +01:00
_kk_indir="wget --no-check-certificate -q ${wget_progress}"
2017-11-14 04:24:55 +01:00
konum=$(talimat_bul $1)
if [[ $konum == "-1" || $konum == "0" ]];then
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$1 $_talimat_bulunamadi"
2017-11-14 04:24:55 +01:00
exit 1
else
source $konum/talimat
for adres in $kaynak;do
urlkont='(https?|ftp|file)://[-A-Za-z0-9\+&@#/%?=~_|!:,.;]*[-A-Za-z0-9\+&@#/%=~_|]'
if [[ $adres =~ $urlkont ]];then
if [[ $adres =~ "::" ]];then
adres2=$(echo $adres | cut -d':' -f-2)
2018-05-17 23:37:58 +02:00
$_yaz "$adres2 indiriliyor."
2017-11-14 04:24:55 +01:00
$_kk_indir $adres2
else
2018-05-17 23:37:58 +02:00
$_yaz "$adres indiriliyor."
2017-11-14 04:24:55 +01:00
$_kk_indir $adres
fi
else
2018-05-17 23:37:58 +02:00
$_yaz "$adres kopyalanıyor."
2017-11-14 04:24:55 +01:00
[ -f $konum/$adres ] && cp $konum/$adres .
fi
done
fi
}
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
2017-09-21 08:52:55 +02:00
rm -rf tmp.*
2018-07-20 22:19:15 +02:00
kaynakdizin_kontrol
2018-01-07 18:03:08 +01:00
local konum derleme_onay eh bagimd derpaket _gncdurum
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-09-30 18:35:58 +02:00
konum=$(talimat_bul $1)
if [[ $konum == "-1" || $konum == "0" ]];then
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$1 $_talimat_bulunamadi"
2017-09-30 18:35:58 +02:00
exit 1
2017-08-01 01:06:59 +02:00
fi
2017-07-31 01:21:22 +02:00
derpaket="$1"
fi
2016-02-24 01:27:23 +01:00
if [ -d "$konum" ];then
2018-08-09 19:56:27 +02:00
#grup_kontrol $konum/talimat
2017-07-31 01:21:22 +02:00
mkdir -p tmp."$derpaket"
cp -a $konum/* tmp."$derpaket"/
cd tmp."$derpaket"
2018-01-10 12:48:47 +01:00
_kurulu=$(kurulu_kontrol "$derpaket")
# paket kurulu ise kurulu sürüm-devir depoyla kontrol edilir,gerekirse silinip yenisi derlenir.
if [ "$_kurulu" = "kurulu" ];then
_gncdurum=$(surum_devir_kontrol ${derpaket} --durum)
if [ "${_gncdurum}" == "var" ];then
2018-05-08 18:36:10 +02:00
echo "Kurulu sürüm depodaki sürümden farklı görünüyor depodaki sürüm ile eşitlemek ister misiniz? "
2018-01-10 12:48:47 +01:00
surum_devir_kontrol ${derpaket}
paket_sil ${derpaket}
2018-06-30 14:31:21 +02:00
# paket silinirse kurulu olma durumunu güncellenir.
_kurulu=$(kurulu_kontrol "$derpaket")
2018-01-10 12:48:47 +01:00
fi
fi
2017-08-01 01:06:59 +02:00
2018-01-10 12:48:47 +01:00
if [ "$_kurulu" = "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
2018-05-17 23:37:58 +02:00
$_yaz_bilgi "$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
2018-02-03 13:58:31 +01:00
yerelden_kur "$kpkt#"*
2016-02-24 01:27:23 +01:00
done
fi
mv *.mps.lz ../
2016-03-07 23:04:43 +01:00
else
2018-05-17 23:37:58 +02:00
$_yaz "$derpaket $_zaten $_paket_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
2018-05-17 23:37:58 +02:00
$_yaz_uyari "talimat dosyası bulunamadı."
2017-04-01 01:44:55 +02:00
hataloglama "talimat dosyası bulunamadı."
2016-02-24 01:27:23 +01:00
fi
}
2017-09-25 17:41:26 +02:00
##_ bagimlilar() : talimatta yer alan gereklerin listesinin alınması.
bagimlilar(){
local bagimd konum
konum=$(talimat_bul $1)
if [[ $konum != "-1" && $konum != "0" ]];then
2017-10-27 20:46:27 +02:00
bagimd=`cat $konum/talimat | grep "Gerekler" | cut -d':' -f2`
2017-09-25 17:41:26 +02:00
bagimd=$(echo "$bagimd" | sed 's/,/ /g')
echo "$bagimd"
else
echo "$konum"
fi
}
2017-09-07 02:10:34 +02:00
ters_bagimli_bilgi(){
2018-08-20 13:32:23 +02:00
local gtbpaket _secim
_secim="x"
2017-09-04 07:07:10 +02:00
gtbpaket=$1
2018-08-20 13:32:23 +02:00
[ "$2" ] && _secim="$2"
2017-09-04 07:07:10 +02:00
tbgdosya=$(mktemp)
2017-10-27 20:46:27 +02:00
grep -rli "\s${gtbpaket}\s.*Gerekler\|Gerekler.*\s${gtbpaket}\s" $talimatname > $tbgdosya ;
grep -rli "\s${gtbpaket}\s.*Gerekler\|Gerekler.*\s${gtbpaket}\s" $ektalimatname >> $tbgdosya ;
grep -rli "\s${gtbpaket}\s.*Gerekler\|Gerekler.*\s${gtbpaket}$" $ektalimatname >> $tbgdosya ;
grep -rli "\s${gtbpaket}\s.*Gerekler\|Gerekler.*\s${gtbpaket}$" $talimatname >> $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
2017-11-14 05:18:39 +01:00
[ -f /tmp/${gtbpaket}.tbk.txt ] && rm -f /tmp/${gtbpaket}.tbk.txt
2018-08-20 13:32:23 +02:00
if [ $_secim = "kurulu" ];then
2017-11-14 05:18:39 +01:00
for _kurulu_pkt in $(cat /tmp/${gtbpaket}.tb.txt);do
if [ -d $VT/$_kurulu_pkt ];then
echo "$_kurulu_pkt" >> /tmp/${gtbpaket}.tbk.txt
fi
done
[ -f /tmp/${gtbpaket}.tbk.txt ] && cat "/tmp/${gtbpaket}.tbk.txt"
2018-08-20 13:32:23 +02:00
elif [ $_secim = "bilgi" ];then
for _kurulu_pkt in $(cat /tmp/${gtbpaket}.tb.txt);do
if [ -d $VT/$_kurulu_pkt ];then
echo "$_kurulu_pkt kurulu" >> /tmp/${gtbpaket}.tbk.txt
else
echo "$_kurulu_pkt değil" >> /tmp/${gtbpaket}.tbk.txt
fi
done
[ -f /tmp/${gtbpaket}.tbk.txt ] && cat "/tmp/${gtbpaket}.tbk.txt"
2017-11-14 05:18:39 +01:00
else
cat "/tmp/${gtbpaket}.tb.txt"
fi
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(){
2018-05-17 23:37:58 +02:00
$_yaz "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
2018-05-17 23:37:58 +02:00
$_yaz "........"
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
2018-05-17 23:37:58 +02:00
$_yaz_bilgi "$tal paketi araştırılıyor:"
2017-09-07 02:10:34 +02:00
kirik_kontrol_paket $tal
2018-05-17 23:37:58 +02:00
$_yaz_bilgi "--------------------------"
2017-08-30 21:36:24 +02:00
fi
done
}
2016-03-02 01:26:35 +01:00
bagimli_bilgi(){
2018-06-08 23:55:11 +02:00
local _konum bagimd _dosya _paket
[ $1 ] && _paket="$1" || hata_olustu "_paket_adi_gerekli"
_konum=$(talimat_bul $_paket)
if [ "$_konum" = "-1" ];then
$_yaz_uyari "$_paket tanimsiz"
exit 0
2017-08-10 01:17:44 +02:00
else
2018-06-08 23:55:11 +02:00
bagimd=`cat $_konum/talimat | grep "Gerekler" | cut -d':' -f2`
if [ -n "$bagimd" ]; then
bagimd=`echo "$bagimd" | sed 's/,/ /g'`
for bag in $bagimd;do
if [ "$2" = "dogrula" ];then
kurulum_dogrulama_icerik "$bag"
else
echo "$bag" "`kurulu_kontrol $bag`"
fi
done
fi
if [ "$2" = "dogrula" ];then
kurulum_dogrulama_icerik "$1"
else
echo "$1" "`kurulu_kontrol $1`"
fi
2017-08-10 01:17:44 +02:00
fi
2016-02-24 01:27:23 +01:00
}
2017-01-29 19:47:24 +01:00
bagimli_bilgi_dosyala(){
2018-06-08 23:55:11 +02:00
local _konum bagimd _dosya _paket
[ $1 ] && _paket="$1" || hata_olustu "_paket_adi_gerekli"
_konum=$(talimat_bul $_paket)
if [ "$_konum" = "-1" ];then
$_yaz_uyari "$_paket tanimsiz"
exit 0
2017-08-08 21:39:37 +02:00
else
2018-06-08 23:55:11 +02:00
_dosya="/tmp/${_paket}.gerekler.liste"
rm -f ${_dosya}
bagimd=`cat $_konum/talimat | grep "Gerekler" | cut -d':' -f2`
if [ -n "$bagimd" ]; then
bagimd=`echo "$bagimd" | sed 's/,/ /g'`
for bag in $bagimd;do
echo "$bag" >> "/tmp/$1.gerekler.liste"
#echo "$bag"
#for _tb in $(ters_bagimli_bilgi $bag);do
# echo '|____' $_tb
#done
done
fi
2017-01-29 19:47:24 +01:00
fi
}
2018-01-24 10:46:25 +01:00
# güncellemelerin alınması talimatname üzerinden
2017-12-17 06:44:38 +01:00
guncellemeler(){
2018-01-24 10:46:25 +01:00
#diff --changed-group-format='***%>' --unchanged-group-format='' --new-group-format='+++%>' \
#$paketdepo/paket.vt.eski $paketdepo/paket.vt | cut -d' ' -f1 | sort --version-sort
_mps_guncellenecekler="/tmp/mps.guncellenecekler.liste"
[ -f $_mps_guncellenecekler ] && rm $_mps_guncellenecekler
for _paket in $(ls $VT);do
if [ "$(surum_devir_kontrol ${_paket} x)" = "var" ];then
echo ${_paket} >> $_mps_guncellenecekler
fi
done
if [ -f $_mps_guncellenecekler ];then
echo "guncellenecek liste"
echo "-------------------"
cat $_mps_guncellenecekler
fi
2017-12-17 06:44:38 +01:00
}
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
}
2018-02-01 22:07:25 +01:00
# ip bulma
ip_bul(){
2018-10-23 08:24:12 +02:00
url='[a www.milislinux.org]'
2018-02-01 22:07:25 +01:00
domain=`echo $url | sed 's-^[^/]*/*\([^/]*\)/\?.*$-\1-'`
echo "< $domain"
ipaddr=`ping -c 1 $domain | sed -n 's@^.*(\([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*\).*$@\1@p' | head -1`
req_url=`echo $url | sed "s-/[^/]\+-/$ipaddr-"`
echo req_url
}
2018-01-01 22:22:58 +01:00
# renkli mesaj
ryaz() {
[ -z "$1" ] && return
: ${color=$1}
shift
case $color in
0*) echo -e "\\033[${color:-38}m$@\\033[39m";;
*) echo -e "\\033[1;${color:-38}m$@\\033[0;39m";;
esac
unset color
}
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
2018-05-17 23:37:58 +02:00
$_yaz_uyari "mps.log bulunamadı!"
2017-04-01 01:44:55 +02:00
hataloglama "mps.log bulunamadı!"
2017-02-13 16:45:41 +01:00
fi
}
2018-06-30 06:49:15 +02:00
silme_etkilenme_tespit(){
2018-06-30 05:51:57 +02:00
local _paket _kliste _eliste dizin
local _satir _edosya _ipaket _ustdizin
[ -z $1 ] && hata_olustu "_paket_adi_gerekli" || _paket=$1
_kliste=`mktemp`
_eliste=`mktemp`
2018-06-30 06:49:15 +02:00
#[ -d /tmp/${_paket}_kurtarma ] && rm -rf /tmp/${_paket}_kurtarma
#mkdir -p /tmp/${_paket}_kurtarma
2018-06-30 05:51:57 +02:00
[ -f /tmp/${_paket}_kd.liste ] && rm -rf /tmp/${_paket}_kd.liste
[ -f /tmp/${_paket}_ep.liste ] && rm -rf /tmp/${_paket}_ep.liste
for _temp in $(cat /var/lib/pkg/DB/${_paket}/kurulan);do
dizin=${_temp//[\']/}
if [ -d $dizin ] ;then
grep --exclude=/var/lib/pkg/DB/${_paket}/kurulan -ri "'${dizin}/" /var/lib/pkg/DB/*/kurulan \
| while read -r _isatir ; do
#echo "$_isatir"
#echo "$dizin - $_paket -"
echo "${dizin}" >> ${_kliste}
_esatir=$(echo ${_isatir} | cut -d ':' -f1)
_edosya=$(echo ${_isatir} | cut -d ':' -f2)
_ipaket=$(basename $(dirname ${_esatir}))
_ustdizin=$(dirname ${_edosya//[\']/})
2018-06-30 06:49:15 +02:00
#mkdir -p /tmp/${_paket}_kurtarma/${_ustdizin}
2018-06-30 14:03:18 +02:00
if [ ! -d ${_edosya//[\']/} ];then
[ ! -f ${_edosya//[\']/} ] && echo "${_edosya//[\']/} dosyası eksik!"
fi
2018-06-30 05:51:57 +02:00
# eksik dosyalar onaylı yekur yapılacak.
# /var/lib/pkg/kurtarma altına kopayalama seçimli olacak.
#\
# cp -rf ${_edosya//[\']/} /tmp/${_paket}_kurtarma/${_ustdizin}
echo "${_ipaket}" >> ${_eliste}
done
fi
done
2018-06-30 06:49:15 +02:00
if [ -s ${_kliste} ];then
sort -u ${_kliste} > /tmp/${_paket}_kd.liste
$_yaz "etkilenen konumlar"
cat /tmp/${_paket}_kd.liste
fi
if [ -s ${_eliste} ];then
sort -u ${_eliste} > /tmp/${_paket}_ep.liste
$_yaz "etkilenen paketler"
cat /tmp/${_paket}_ep.liste
fi
2018-06-30 05:51:57 +02:00
rm -rf ${_eliste} ${_kliste}
}
2018-06-30 07:20:49 +02:00
eski_etkilenen_kurtar(){
2018-05-17 22:53:29 +02:00
local dizin paket
2016-10-27 22:45:46 +02:00
paket=$1
2017-10-27 14:31:13 +02:00
if [ -f $VT/$paket/kurulan ];then
cat $VT/$paket/kurulan | cut -d '>' -f2 > /tmp/$paket.sil
2016-10-27 22:45:46 +02:00
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
2017-10-27 14:31:13 +02:00
mv $VT/$paket/kurulan $VT/$paket/ilk.kurulan
grep -v -F -x -f "/tmp/$paket.kurtar" "/tmp/$paket.sil" > $VT/$paket/kurulan
2017-12-14 06:40:19 +01:00
$_yaz "$paket etkilenen dosyaları kurtarıldı."
2016-10-29 22:25:25 +02:00
else
2017-12-14 06:40:19 +01:00
$_yaz "$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
2017-12-14 06:40:19 +01:00
$_yaz_uyari "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
2017-10-27 14:31:13 +02:00
ls $VT/ | 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(){
2017-09-25 17:41:26 +02:00
local _konum _apaket
2018-01-24 07:34:08 +01:00
[ -z $1 ] && hata_olustu "_paket_adi_gerekli"
2017-09-25 17:41:26 +02:00
_apaket=$1
2018-11-07 02:33:01 +01:00
cikti_renk_ayarla "--renksiz"
2018-01-24 07:34:08 +01:00
[ $2 ] && cikti_renk_ayarla "$2"
2017-10-27 14:31:13 +02:00
if [ -d "$kokdizin$VT/$_apaket" ];then
2018-01-24 07:34:08 +01:00
$_yaz "kurulu"
2017-09-25 17:41:26 +02:00
exit 0
2016-02-24 01:27:23 +01:00
fi
2017-09-25 17:41:26 +02:00
_konum=$(talimat_bul $_apaket)
2018-04-12 15:40:59 +02:00
2018-01-24 07:34:08 +01:00
if [ "$_konum" = "-1" ];then
$_yaz_uyari "tanimsiz"
2017-09-25 17:41:26 +02:00
else
2018-01-24 07:34:08 +01:00
$_yaz_uyari "degil"
2017-04-01 14:15:52 +02:00
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(){
2018-02-01 22:07:25 +01:00
if [ ! -d $kaynak_dizin ];then
mkdir $kaynak_dizin
2016-03-07 00:39:49 +01:00
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
2017-10-27 14:31:13 +02:00
ls /tmp$VT/ > hedef.pkvt
ls $VT/ > 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
2018-05-17 23:37:58 +02:00
$_yaz "silinecekler"
$_yaz "------------"
2016-03-10 01:28:42 +01:00
cat sil.liste
2016-03-12 00:09:47 +01:00
fi
if [ -s kur.liste ];then
2018-05-17 23:37:58 +02:00
$_yaz "kurulacaklar"
$_yaz "------------"
2016-03-12 00:09:47 +01:00
cat kur.liste
fi
if [ ! -s sil.liste ] && [ ! -s kur.liste ];then
2018-05-17 23:37:58 +02:00
$_yaz "sistem zaten hedef durumda!"
2016-03-10 01:28:42 +01:00
exit 1
fi
while true; do
2018-05-17 23:37:58 +02:00
$_yaz_tm "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
2018-09-02 23:24:54 +02:00
paket_sil_oto 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
2018-05-17 23:37:58 +02:00
$_yaz_uyari "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-12-13 04:56:41 +01:00
[ -f $PWD/hedef.pkvt ] && rm $PWD/hedef.pkvt
[ -f $PWD/simdiki.pkvt ] && rm $PWD/simdiki.pkvt
2017-12-12 00:12:48 +01:00
}
2016-03-09 01:57:13 +01:00
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
2018-05-17 23:37:58 +02:00
$_yaz_uyari "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
2018-05-17 23:37:58 +02:00
$_yaz_uyari "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
}
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"
}
2017-09-27 18:45:42 +02:00
indir_talimat_paketle(){
2018-06-27 00:34:14 +02:00
local dosya _ip _talkonum _ek_talimat_link
2017-09-27 18:45:42 +02:00
_wget="wget --quiet --no-check-certificate"
2018-05-17 23:37:58 +02:00
if [ ! -z "$1" ];then dosya=$1;else $_yaz_uyari "link parametre eksik";exit 1;fi
if [ ! -z "$2" ];then _ip=$2;else $_yaz_uyari "ip tipi parametresi eksik";exit 1;fi
if [ ! -z "$3" ];then _talkonum=$3;else $_yaz_uyari "talimatname konum parametre eksik";exit 1;fi
2018-06-27 00:34:14 +02:00
# ek-talimatname altında ilgili talimat var mı kontrol edilir
2017-09-27 18:45:42 +02:00
2018-06-27 00:34:14 +02:00
_ek_talimat_link="${ektalimatname_repo}/raw/master/${dosya}/talimat"
wget -q --spider ${_ek_talimat_link}
[ $? -eq 0 ] && dosya=${_ek_talimat_link}
2016-11-30 01:31:22 +01:00
urlkont='(https?|ftp|file)://[-A-Za-z0-9\+&@#/%?=~_|!:,.;]*[-A-Za-z0-9\+&@#/%=~_|]'
2017-09-27 18:45:42 +02:00
if [[ $dosya =~ $urlkont ]];then
2016-11-30 01:31:22 +01:00
gdosya=`mktemp`
2017-09-27 18:45:42 +02:00
if [[ $_ip =~ "-6" ]]; then
2018-06-27 00:34:14 +02:00
$_yaz "talimat IPv6: ${dosya} linkinden indirildi."
2017-09-27 18:45:42 +02:00
$_wget $_ip $dosya -O $gdosya
else
2018-06-27 00:34:14 +02:00
$_yaz "talimat IPv4: ${dosya} linkinden indirildi."
2017-09-27 18:45:42 +02:00
$_wget $_ip $dosya -O $gdosya
fi
2016-11-30 01:31:22 +01:00
dosya=$gdosya
2017-09-27 18:45:42 +02:00
else
2018-05-17 23:37:58 +02:00
$_yaz_uyari "link geçersiz"
2017-09-27 18:45:42 +02:00
exit 1
2016-11-30 01:31:22 +01:00
fi
2017-09-27 18:45:42 +02:00
2016-11-30 01:31:22 +01:00
if [ ! -f $dosya ];then
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$dosya talimat dosyasi yok!"
2016-11-30 01:31:22 +01:00
exit 1
fi
2017-09-27 18:45:42 +02:00
local _isim
2018-01-29 06:12:19 +01:00
_isim=`grep "^name=" $dosya | head -n1 | cut -d'=' -f 2`
[ -z "${_isim}" ] && _isim=`grep "^isim=" $dosya | head -n1 | cut -d'=' -f 2`
if [ ! -n "${_isim}" ]; then
2018-05-17 23:37:58 +02:00
$_yaz_uyari "paket ismi degiskeni bulunamadı!"
2016-11-30 01:31:22 +01:00
exit 1
fi
2018-01-29 06:12:19 +01:00
if [ ! -d $_talkonum/${_isim:0:1}/${_isim} ];then
mkdir -p $_talkonum/${_isim:0:1}/${_isim}
cp -f $dosya $_talkonum/${_isim:0:1}/${_isim}/talimat
talimat_degisken_cevrim $_talkonum/${_isim:0:1}/${_isim}/talimat
2018-05-17 23:37:58 +02:00
$_yaz "${_isim} talimatı hazırlandı."
2016-11-30 01:31:22 +01:00
else
2018-05-17 23:37:58 +02:00
$_yaz_uyari "${_isim} talimatı zaten talimatnamede var!"
2018-09-20 02:50:50 +02:00
while true; do
$_yaz_tm ${_isim}" talimatı yenilensin mi?";read -p "e veya h-> " eh
case $eh in
2018-09-20 02:53:23 +02:00
[Ee]* ) rm -rf $_talkonum/${_isim:0:1}/${_isim};indir_talimat_paketle $1 "-4" "$ektalimatname/topluluk";break;;
2018-09-20 02:50:50 +02:00
[Hh]* ) break;;
* ) echo "e veya h";;
esac
done
2016-11-30 01:31:22 +01:00
fi
}
2017-10-28 17:41:19 +02:00
talimat_degisken_cevrim(){
_dosya=$1
if [ -f $_dosya ];then
sed -i 's/name=/isim=/g' $_dosya
sed -i 's/$name/$isim/g' $_dosya
sed -i 's/${name}/${isim}/g' $_dosya
sed -i 's/version=/surum=/g' $_dosya
sed -i 's/$version/$surum/g' $_dosya
sed -i 's/${version}/${surum}/g' $_dosya
sed -i 's/${version%.*}/${surum%.*}/g' $_dosya
sed -i 's/release=/devir=/g' $_dosya
sed -i 's/$release/$devir/g' $_dosya
sed -i 's/${release}/${devir}/g' $_dosya
sed -i 's/source=/kaynak=/g' $_dosya
sed -i 's/build()/derle()/g' $_dosya
sed -i 's/build ()/derle()/g' $_dosya
sed -i 's/Description:/Tanım:/g' $_dosya
sed -i 's/Description=/Tanım:/g' $_dosya
sed -i 's/Url=/Url:/g' $_dosya
sed -i 's/description:/Tanım:/g' $_dosya
sed -i 's/Description :/Tanım:/g' $_dosya
sed -i 's/Packager:/Paketçi:/g' $_dosya
sed -i 's/packager:/Paketçi:/g' $_dosya
sed -i 's/Packagers:/Paketçi:/g' $_dosya
sed -i 's/Packager :/Paketçi:/g' $_dosya
sed -i 's/Depends on:/Gerekler:/g' $_dosya
sed -i 's/Depends:/Gerekler:/g' $_dosya
sed -i 's/Depends on :/Gerekler:/g' $_dosya
sed -i '/Maintainer:/d' $_dosya
sed -i '/Optional:/d' $_dosya
else
2018-05-17 23:37:58 +02:00
$_yaz_uyari "ilgili talimat dosyası bulunamadı."
2017-10-28 17:41:19 +02:00
fi
}
2016-06-21 20:42:06 +02:00
talimat_olustur(){
if [ "$1" = '?' ];then
2018-05-17 23:37:58 +02:00
$_yaz_tm "kullanım : mps -to paket_ismi"
2016-06-21 20:42:06 +02:00
else
2017-10-28 14:10:23 +02:00
local isim
isim=$1
mkdir -p $isim
tee "$isim/talimat" > /dev/null <<EOF
2017-10-27 20:46:27 +02:00
# Tanım: paket açıklaması
2017-10-19 00:42:29 +02:00
# Url: paketin ilgili web sayfası
2017-10-27 20:46:27 +02:00
# Paketçi: paketçi
# Gerekler:
2018-01-30 07:06:50 +01:00
# Grup:
2016-06-21 20:42:06 +02:00
2017-10-28 14:10:23 +02:00
isim=$isim
surum=1
devir=1
2017-11-06 22:41:24 +01:00
kaynak=()
2016-06-21 20:42:06 +02:00
2017-11-06 22:41:24 +01:00
derle() {
2017-10-28 14:10:23 +02:00
cd \$isim-\$surum
2016-06-21 20:42:06 +02:00
./autogen.sh
./configure --prefix=/usr
make
2017-10-19 00:42:29 +02:00
make DESTDIR=\$PKG install
2016-06-21 20:42:06 +02:00
}
EOF
2018-05-17 23:37:58 +02:00
$_yaz_tm $isim "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
2018-02-01 19:01:39 +01:00
local _yerel
2018-02-01 22:07:25 +01:00
2018-01-30 06:56:07 +01:00
#git deponun sunucudan güncellenmesi
2018-06-09 00:16:42 +02:00
$_yaz_bilgi "$_git_guncelleniyor : $git_sunucu"
2018-06-02 23:16:10 +02:00
if [ $(sunucu_erisim ${git_repo}) = "aktif" ];then
if [ ! -d ${git_yereldepo} ];then
git clone ${git_repo} ${git_yereldepo}
#rsync -av ${git_yereldepo}/rootfs/* /
2017-04-04 21:32:09 +02:00
else
2018-06-02 23:16:10 +02:00
cd ${git_yereldepo}
2018-01-30 06:56:07 +01:00
git pull >& $LOGDIZIN/mps-git.log
if grep -q "Already\ up-to-date" $LOGDIZIN/mps-git.log; then
2018-05-17 23:37:58 +02:00
$_yaz "$_git_guncel"
2018-01-30 06:56:07 +01:00
else
#ryaz 32 `cat $LOGDIZIN/mps-git.log`
2018-05-17 23:37:58 +02:00
$_yaz "$_git_guncellendi"
2018-01-30 06:56:07 +01:00
fi
2017-04-04 21:32:09 +02:00
fi
2018-01-30 06:56:07 +01:00
else
2018-06-02 23:16:10 +02:00
$_yaz_uyari "${git_repo} erişim olumsuz.Uzaktan güncelleme alınamadı."
2016-03-07 00:39:49 +01:00
fi
2018-06-02 23:16:10 +02:00
if [ -d ${git_yereldepo} ];then
2018-02-01 22:07:25 +01:00
# git depodan yerel güncellemelerin yapılması
#baslangic betiklerinin guncellenmesi
2018-06-02 23:16:10 +02:00
#rsync -aviz -q --delete ${git_yereldepo}/rootfs/lib/services/* /lib/services/
[ -d /lib/services/ ] && cp --remove-destination -rf ${git_yereldepo}/rootfs/lib/services/* /lib/services/
2018-02-01 22:07:25 +01:00
# talimatname ve betiklerin güncellenmesi
_yerel=$(dirname $talimatname)
cd ${_yerel}
rm -rf $talimatname ${_yerel}/bin ${_yerel}/ayarlar
2018-06-02 23:16:10 +02:00
cp -rf ${git_yereldepo}/talimatname/ ${_yerel}/
cp -rf ${git_yereldepo}/bin ${_yerel}/
cp -rf ${git_yereldepo}/ayarlar ${_yerel}/
2018-02-01 22:07:25 +01:00
#ikili dosyaların /usr/bin altına kısayol atılması
for i in ${_yerel}/bin/*; do
j=`basename $i`
if [ ! -L /usr/bin/$j ];then
ln -sf ${_yerel}/bin/$j /usr/bin/$j
fi
done
#kırık linklerin temizlenmesi
find -L /usr/bin/* -name . -o -type d -prune -o -type l -exec rm {} +
find -L ${_yerel}/bin/* -name . -o -type d -prune -o -type l -exec rm {} +
[ -d /root/bin ] && find -L /root/bin/* -name . -o -type d -prune -o -type l -exec rm {} +
2018-05-17 23:37:58 +02:00
$_yaz "$_yerel_esitlendi"
2018-02-01 22:07:25 +01:00
else
2018-05-17 23:37:58 +02:00
$_yaz "$_yerel_esitlendi_olumsuz"
2018-02-01 22:07:25 +01:00
fi
2018-10-23 08:24:12 +02:00
# ek git depolarının güncellenmesi
[[ ! -z ${git_ekrepo} ]] && git_ek_guncelle
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
2018-06-09 00:13:08 +02:00
git_link="https://notabug.org/milisarge"
2016-10-16 03:20:36 +02:00
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
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$1 mops talimatı bulunamadı!"
2017-06-21 06:20:18 +02:00
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
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$1 mops talimatı bulunamadı!"
2017-06-21 06:20:18 +02:00
fi
}
2017-03-28 04:34:52 +02:00
servis_kur(){
2018-06-02 23:16:10 +02:00
cd ${git_yereldepo}/ayarlar/servisler
2017-03-28 04:34:52 +02:00
if make kur-$1
then
2018-05-17 23:37:58 +02:00
$_yaz "$1 servisi kuruldu"
2017-03-28 04:34:52 +02:00
else
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$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(){
2018-06-02 23:16:10 +02:00
cd ${git_yereldepo}/ayarlar/servisler
2017-03-28 04:34:52 +02:00
if make sil-$1
then
2018-05-17 23:37:58 +02:00
$_yaz "$1 servisi silindi"
2017-03-28 04:34:52 +02:00
else
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$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(){
2018-06-02 23:16:10 +02:00
servisler=`ls ${git_yereldepo}/ayarlar/servisler/mbd/init.d`
2017-07-14 14:02:25 +02:00
for ser in $(ls /etc/init.d/) ; do
2018-06-02 23:16:10 +02:00
if [ ! -f ${git_yereldepo}/ayarlar/servisler/mbd/init.d/$ser ];then
2017-07-14 14:02:25 +02:00
printf "%12s %s\n" "$ser mbd kaydı bulunamadı!"
else
2018-06-02 23:16:10 +02:00
if cmp -s "${git_yereldepo}/ayarlar/servisler/mbd/init.d/$ser" "$ser"
2017-07-14 14:02:25 +02:00
then
printf "%12s %s\n" "$ser" "mbd uyumsuz"
else
#ryaz 32 "$ser mbd +++++"
printf "%12s %s\n" "$ser" "mbd +++++"
fi
fi
done
}
2016-03-07 00:39:49 +01:00
talimat_bilgi(){
2017-09-25 17:41:26 +02:00
local _konum _apaket
_apaket=$1
2018-05-29 22:59:19 +02:00
[ "$2" ] && cikti_renk_ayarla "$2"
2017-09-25 17:41:26 +02:00
_konum=$(talimat_bul $_apaket)
2018-01-24 07:34:08 +01:00
if [ "$_konum" = "-1" ];then
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$_apaket $_paket_bulunamadi"
2017-08-08 21:39:37 +02:00
exit 1
2017-09-25 17:41:26 +02:00
else
2017-12-19 03:59:38 +01:00
grep "derle()" -B 12 $_konum/talimat |sed '$ d'
2018-05-17 23:37:58 +02:00
$_yaz "file://$_konum/talimat"
2018-06-09 00:13:08 +02:00
#$_yaz "https://raw.githubusercontent.com/milisarge/malfs-milis/master/$(echo $_konum | cut -d'/' -f3-6)/talimat"
2018-06-09 01:10:00 +02:00
$_yaz "${git_sunucu}/${hesap_repo}/raw/master/$(echo $_konum | cut -d'/' -f3-6)/talimat"
2017-08-08 21:39:37 +02:00
fi
2016-03-07 00:39:49 +01:00
}
2017-12-19 03:59:38 +01:00
talimat_yazdir(){
local _konum _apaket
_apaket=$1
_konum=$(talimat_bul $_apaket)
2018-01-24 07:34:08 +01:00
if [ "$_konum" = "-1" ];then
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$_apaket $_paket_bulunamadi"
2017-12-19 03:59:38 +01:00
exit 1
else
cat $_konum/talimat
fi
}
2016-02-24 01:27:23 +01:00
sistem_kontrol(){
paketvt_kontrol
sunucu_kontrol
}
2018-01-30 06:56:07 +01:00
sunucu_erisim(){
local _sunucu
[ $1 ] && _sunucu="$1"
wget --no-check-certificate -q --spider "${_sunucu}"
if [ $? -eq 0 ]; then
echo "aktif"
else
echo "pasif"
fi
}
2016-02-24 01:27:23 +01:00
sunucu_kontrol(){
2018-01-29 01:08:56 +01:00
local _sunucular=$(echo ${sunucular} | tr " " "\n")
for _sunucu in ${_sunucular}; do
2018-05-17 23:37:58 +02:00
[ $(sunucu_erisim ${_sunucu}/paket.vt) = "aktif" ] && $_yaz "${_sunucu} paket sunucu aktif" \
|| $_yaz_uyari "${_sunucu} sunucu erişim dışı"
2017-08-08 21:39:37 +02:00
done
2016-02-24 01:27:23 +01:00
}
2016-03-31 03:23:45 +02:00
gitayar_kontrol(){
if [ ! -f /root/.gitconfig ];then
2018-02-01 22:07:25 +01:00
[ `which git_ssl_iptal` ] && git_ssl_iptal
[ `which git_otokimlik` ] && git_otokimlik
2016-03-31 03:23:45 +02:00
fi
}
2017-04-07 06:48:03 +02:00
kirik_kontrol_sistem(){
local onek sonek
onek="'"
sonek="'"
2017-10-27 14:31:13 +02:00
for paket in `ls $VT/`
2017-04-07 06:48:03 +02:00
do
2018-05-17 23:37:58 +02:00
$_yaz_bilgi $paket "kontrol ediliyor."
2017-04-07 06:48:03 +02:00
kirik_kontrol_paket $paket
2018-05-17 23:37:58 +02:00
$_yaz_bilgi $paket "kontrol edildi."
2017-04-07 06:48:03 +02:00
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
2018-05-17 23:37:58 +02:00
$_yaz "$kuruland hasarlı kurulum tesbiti!"
2016-06-30 13:33:01 +02:00
rm -r $VT/$kuruland
2017-09-24 22:26:11 +02:00
paket_indir $kuruland
2018-02-03 13:58:31 +01:00
yerelden_kur "$paketdepo/$kuruland"*.mps.lz
2018-05-17 23:37:58 +02:00
$_yaz "$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
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$pidanayol$dosyayol hasarlı"
2017-08-10 22:56:16 +02:00
while true; do
2018-05-17 23:37:58 +02:00
$_yaz_tm $kontpaketadi" paketi yenilensin mi?";read -p "e veya h-> " eh
2017-08-10 22:56:16 +02:00
case $eh in
[Ee]* ) tekrarkur="evet";agdan_kur "$kontpaketadi";break;;
[Hh]* ) break;;
* ) echo "e veya h";;
esac
done
fi
done < $tempmpslz
else
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$2 kök dizini bulunamadı!"
2017-08-10 22:56:16 +02:00
exit 1
fi
else
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$1 paketi bulunamadı!"
2017-08-10 22:56:16 +02:00
exit 1
fi
}
2017-07-28 02:21:57 +02:00
kurulum_dogrulama_icerik_tum(){
2018-05-17 23:37:58 +02:00
$_yaz_bilgi "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
2018-05-17 23:37:58 +02:00
$_yaz "$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
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$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
2018-05-17 23:37:58 +02:00
$_yaz "temel sistem paket kurulan hatası düzeltildi!"
2017-07-23 03:20:01 +02:00
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
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$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
2018-05-17 23:37:58 +02:00
$_yaz_tm "$paketadi hasarlı dosya barındırıyor,düzeltilsin mi?";read -p "e veya h-> " eh
2017-09-09 22:56:15 +02:00
case $eh in
[Ee]* ) tekrarkur="evet";agdan_kur "$paketadi";;
2018-05-17 23:37:58 +02:00
[Hh]* ) $_yaz_uyari "$paketadi pas geçildi.";;
2017-09-09 22:56:15 +02:00
* ) echo "e veya h";;
esac
fi
2017-08-10 01:17:44 +02:00
2018-05-17 23:37:58 +02:00
$_yaz "$paketadi kurulum doğrulama tamamlandı."
2017-07-23 03:20:01 +02:00
elif [ -d "$VT/$paketadi" ]; then
2017-08-10 01:17:44 +02:00
cp -rf $VT $VT.yedek
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$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
2017-09-24 22:26:11 +02:00
paket_indir $paketadi
2018-02-03 13:58:31 +01:00
yerelden_kur "$paketdepo/$paketadi#"*.mps.lz
2018-05-17 23:37:58 +02:00
$_yaz "$paketadi hasarlı kurulum onarıldı."
2017-07-23 03:20:01 +02:00
else
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$paketadi $_paket_kurulu_degil"
2017-07-20 09:55:46 +02:00
fi
}
2017-07-23 03:20:01 +02:00
tamir_temel_kurulan(){
if [ ! -d $VT ] ; then
2018-05-17 23:37:58 +02:00
$_yaz_uyari "paket kurulum vt bulunamadı!"
2017-07-23 03:20:01 +02:00
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)
2018-05-17 23:37:58 +02:00
$_yaz_tm "$paketdepo altındaki $pktsay paket silinecek?";read -p "e veya h-> " eh
2017-08-09 19:56:35 +02:00
case $eh in
2018-05-17 23:37:58 +02:00
[Ee]* ) rm $paketdepo/*.mps.lz; $_yaz "$paketdepo paketler temizlendi."; break;;
2017-08-09 19:56:35 +02:00
[Hh]* ) break;;
* ) echo "e veya h";;
esac
done
}
2018-01-13 03:24:34 +01:00
etkilenenler_sil(){
while true; do
2018-05-17 23:37:58 +02:00
$_yaz_tm "etkilenen önbellek silinecek?";read -p "e veya h-> " eh
2018-01-13 03:24:34 +01:00
case $eh in
2018-05-17 23:37:58 +02:00
[Ee]* ) rm -rf /var/lib/pkg/etkilenen; $_yaz "etkilenen önbellek temizlendi."; break;;
2018-01-13 03:24:34 +01: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
2018-05-17 23:37:58 +02:00
$_yaz "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
2018-05-17 23:37:58 +02:00
$_yaz "paket.vt oluşturuldu."
2016-03-29 02:39:30 +02:00
}
2018-10-23 08:24:12 +02:00
git_ek_guncelle(){
#echo $git_ekrepo
local _hesap _repo_ad _repo_hash
if [[ ! -z ${git_ekrepo} ]];then
local _repolar=$(echo ${git_ekrepo} | tr " " "\n")
# ek git repolarının sırayla güncelleme işlemi
for _repo in ${_repolar}; do
#echo $_repo
_repo_hash="$(printf '%s' "${_repo}" | md5sum | cut -d' ' -f1)"
_hesap="$(basename $(dirname ${_repo}))"
_repo_ad="$(basename ${_repo})"
_repo_islem=${_hesap}-${_repo_ad}-${_repo_hash}
#git deponun sunucudan güncellenmesi
$_yaz_bilgi "$_git_guncelleniyor : $_repo"
if [ $(sunucu_erisim ${_repo}) = "aktif" ];then
if [ ! -d ${git_ekyereldepo}/${_repo_islem} ];then
git clone ${_repo} ${git_ekyereldepo}/${_repo_islem}
else
cd ${git_ekyereldepo}/${_repo_islem}
git pull >& $LOGDIZIN/${_repo_islem}-git.log
if grep -q "Already\ up-to-date" $LOGDIZIN/${_repo_islem}-git.log; then
$_yaz "$_git_guncel"
else
$_yaz "$_git_guncellendi"
fi
fi
# reponun ek-talimatname altına eşitlenmesi
[ -d ${ektalimatname}/${_repo_islem} ] && rm -rf ${ektalimatname}/${_repo_islem}
mkdir ${ektalimatname}/${_repo_islem}
# repo altındaki talimat içeren dizinlerin kopyalanması
for talimatd in $(find ${git_ekyereldepo}/${_repo_islem}/ -name talimat | xargs -I {} dirname {});do
cp -r ${talimatd} ${ektalimatname}/${_repo_islem}/
done
else
$_yaz_uyari "${_repo} erişim olumsuz.Uzaktan güncelleme alınamadı."
fi
done
else
$_yaz_uyari "${_ek_talimatname_bulunamadi}"
2018-10-23 08:50:18 +02:00
echo "git_ekrepo=\"https://gitlab.com/hesap/repo https://notabug.org/hesap/repo\""
echo "mps.conf içinde yukarıdaki biçimde ek repo(lar) tanımlı olması gerekmektedir."
2018-10-23 08:24:12 +02:00
fi
}
2017-08-08 21:39:37 +02:00
paketvt_guncelle(){
2018-01-29 01:08:56 +01:00
local _bakim _sunucular _bakim _sira
_sunucular=$(echo ${sunucular} | tr " " "\n")
2018-01-24 08:08:23 +01:00
_bakim="yok"
2018-01-29 01:08:56 +01:00
_sira=0
for pktsunucu in ${_sunucular}; do
2017-08-08 21:39:37 +02:00
pkvt=""
2018-01-29 01:08:56 +01:00
let _sira=_sira+1
if [ ${_sira} = 1 ];then
2017-08-08 21:39:37 +02:00
pktvt="paket.vt"
else
2018-01-29 01:08:56 +01:00
pktvt="paket${_sira}.vt"
2017-08-08 21:39:37 +02:00
fi
2018-01-24 08:08:23 +01:00
# sunucu bakım kontrolü
2018-01-30 07:06:50 +01:00
[ $(sunucu_erisim "$pktsunucu""paket.vt.yeni") = "aktif" ] && _bakim="var"
2018-01-24 08:08:23 +01:00
if [ $_bakim = "yok" ];then
2018-01-30 07:06:50 +01:00
if [ $(sunucu_erisim "$pktsunucu""paket.vt") = "aktif" ]; then
2018-05-17 23:37:58 +02:00
$_yaz $pktsunucu
$_yaz "$_paketvt_guncelleniyor" "$paketdepo""$pktvt"
2018-01-24 08:08:23 +01:00
if [ -f "$paketdepo""$pktvt" ];then
mv "$paketdepo""$pktvt" "$paketdepo""$pktvt.eski"
fi
2018-01-29 07:20:25 +01:00
wget --no-check-certificate -q ${wget_progress} -P "$paketdepo" "$pktsunucu""paket.vt" -O "$paketdepo""$pktvt"
2018-01-24 08:08:23 +01:00
#rm /tmp/paket.vt*
else
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$pktsunucu paket veritabanı erişim olumsuz."
2018-01-24 08:08:23 +01:00
hataloglama "paket veritabanı güncelleme olumsuz."
2017-08-08 21:39:37 +02:00
fi
2016-05-27 01:30:25 +02:00
else
2018-05-17 23:37:58 +02:00
$_yaz_bilgi "$pktsunucu paket veritabanı bakımı yapılıyor."
$_yaz_bilgi "5dk içinde tekrar deneyiniz."
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-12-15 06:51:22 +01:00
yuzdelik_filtre ()
{
local flag=false c count cr=$'\r' nl=$'\n'
while IFS='' read -d '' -rn 1 c
do
if $flag
then
printf '%c' "$c"
else
if [[ $c != $cr && $c != $nl ]]
then
count=0
else
((count++))
if ((count > 1))
then
flag=true
fi
fi
fi
done
}
2018-01-26 03:42:01 +01:00
listeleri_temizle(){
[ -f gerek.liste ] && rm -rf gerek.liste
[ -f gerek.konum.liste ] && rm -rf gerek.konum.liste
}
2017-08-08 21:39:37 +02:00
paket_indir(){
if [ -f "$paketdepo""paket.vt" ];then
2018-11-07 09:49:42 +01:00
local _ipaket pkt _indirildi pkvt_hash yerel_hash
2018-01-26 03:42:01 +01:00
[ $1 ] && _ipaket="$1" || hata_olustu "_paket_adi_gerekli"
2018-11-07 09:49:42 +01:00
local _sunucular _sira _indir_log
_indir_log="/tmp/${_ipaket}-indir.log"
rm -f ${_indir_log}
2018-01-29 01:08:56 +01:00
_sunucular=$(echo ${sunucular} | tr " " "\n")
_sira=0
2018-11-07 09:49:42 +01:00
_indirildi=0
2018-01-29 01:08:56 +01:00
for pktsunucu in ${_sunucular}; do
2017-08-08 21:39:37 +02:00
pkvt=""
2018-01-29 01:08:56 +01:00
let _sira=_sira+1
if [ ${_sira} = 1 ];then
2017-08-08 21:39:37 +02:00
pktvt="paket.vt"
else
2018-01-29 01:08:56 +01:00
pktvt="paket${_sira}.vt"
2017-08-08 21:39:37 +02:00
fi
2018-01-29 01:08:56 +01:00
if [ -f $paketdepo$pktvt ];then
2018-11-06 23:05:59 +01:00
#pkt=`cat "$paketdepo$pktvt" | grep "^${_ipaket} " | cut -d' ' -f3`
# çoklu boşluk ayrıştırma destekli
2018-11-07 09:49:42 +01:00
pkt=`cat "${paketdepo}${pktvt}" | grep "^${_ipaket} " | awk '{ print $3}'`
pkvt_hash=`cat "${paketdepo}${pktvt}" | grep "^${_ipaket} " | awk '{print $2}'`
2018-01-29 01:08:56 +01:00
#ryaz 32 "${_ipaket} paketi $pktsunucu altında aranıyor"
if [ $pkt ];then
#ryaz 32 "${_ipaket} paketi $pktsunucu altında bulundu"
cpaket="${pkt/'#'/'%23'}"
#paketin sunucuda varlık kontrolu
wget -q --spider "$pktsunucu$cpaket"
2018-11-07 09:49:42 +01:00
if [ $? -eq 0 ]; then
[ ! -f ${paketdepo}${pkt} ] && $_yaz "${_ipaket} $_indiriliyor"
# -nc ile yerelde ilgili paket varsa pas geçecek ama sonraki adımda sahsum kontrolü yapılacak.
2018-11-07 02:33:01 +01:00
if [ "${_yaz}" == "echo" ];then
2018-11-07 09:49:42 +01:00
wget --progress=dot:force -nc --no-check-certificate -P "$paketdepo" "${pktsunucu}${cpaket}" 2>&1 | tee /tmp/${_ipaket}_indirme.log | sed -u -n 's/[0-9]*%/&/p'
2018-01-29 01:08:56 +01:00
else
2018-11-07 09:49:42 +01:00
wget --no-check-certificate -nc -q ${wget_progress} -P "$paketdepo" "${pktsunucu}${cpaket}" #2>&1 | tee /tmp/${_ipaket}_indirme.log
2017-09-24 22:26:11 +02:00
fi
2018-01-29 01:08:56 +01:00
if [[ "$?" != 0 ]]; then
$_yaz_uyari "indirme hatalı"
hataloglama "indirme hatalı"
else
2018-11-07 09:49:42 +01:00
yerel_hash=$(sha1sum "${paketdepo}${pkt}" | awk '{print $1}')
if [ "${pkvt_hash}" != "${yerel_hash}" ];then
2018-01-29 01:08:56 +01:00
$_yaz_uyari "$_shasum_uyumsuzluk,paket tekrar indiriliyor."
hataloglama "sha1sum uyusmaslik tespit edildi,paket tekrar indiriliyor."
2018-11-07 09:49:42 +01:00
rm -f "${paketdepo}${pkt}"
2018-01-29 01:08:56 +01:00
paket_indir "${_ipaket}" "$cikti"
2018-11-03 20:09:56 +01:00
else
2018-11-07 09:49:42 +01:00
_indirildi=1
2018-11-03 20:09:56 +01:00
break
2018-01-29 01:08:56 +01:00
fi
fi
else
$_yaz_uyari "${_ipaket} paketi bulunamadı $pktsunucu dan silinmiş olmalı!"
2017-08-08 21:39:37 +02:00
fi
else
2018-11-07 09:49:42 +01:00
# paket sunucusunda paket bulunamazsa
echo "$pktsunucu ${_ipaket} paketi bulunmuyor!" >> ${_indir_log}
2017-08-08 21:39:37 +02:00
fi
else
2018-11-07 09:49:42 +01:00
$_yaz_uyari "$paketdepo altında $pktvt dosyanız yok veya güncelleme yapınız!"
2017-08-08 21:39:37 +02:00
fi
2018-11-07 09:49:42 +01:00
done
# sunucularda paket bulunmama durumu log gösterimi
if [ ${_indirildi} -eq 0 ];then
2018-11-08 05:50:54 +01:00
[ -f ${_indir_log} ] && $_yaz_uyari $(cat ${_indir_log})
2018-11-07 09:49:42 +01:00
# indirileyen fakat önbellekte bulunan paket kontrolü
if [ -f ${paketdepo}${pkt} ];then
yerel_hash=$(sha1sum "${paketdepo}${pkt}" | awk '{print $1}')
# önbellekte mevcut fakat shasum uyum kontrolü
if [ "${pkvt_hash}" = "${yerel_hash}" ];then
$_yaz_tm "paketdepo önbelleği kullanılacak."
else
$_yaz_uyari "paketdepoda shasum uyumsuz ${_ipaket} paketi bulunmakta!"
fi
fi
fi
2017-08-08 21:39:37 +02:00
else
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$paketdepo altında paket.vt dosyanız yok.Güncelleme yapınız!"
2017-08-08 21:39:37 +02:00
fi
}
2017-07-31 01:21:22 +02:00
yerelden_kur(){
2018-02-03 13:58:31 +01:00
local silme _ypaket
[ $1 ] && _ypaket=$1 || hata_olustu "_yerel_paket_yok"
if [ $2 ];then
if [ "$2" == "-kok" ] && [ -d "$3" ]; then
kokdizin="$3"
tekrarkur="evet"
fi
fi
pkontrol=`basename ${_ypaket} | grep -w "mps.lz"`
2017-07-31 01:21:22 +02:00
if [ ! -z "$pkontrol" -a "$pkontrol" != "" ]; then
2018-02-03 13:58:31 +01:00
paketad=`echo "${_ypaket}" | cut -d'#' -f1`
2018-01-11 02:15:20 +01:00
paketad=`basename $paketad`
kkont=`kurulu_kontrol "$paketad"`
2017-07-31 01:21:22 +02:00
if [ "$kkont" = "degil" ];then
2018-02-03 13:58:31 +01:00
icerik_ekle "${_ypaket}"
2017-07-31 01:21:22 +02:00
elif [ "$kkont" = "kurulu" ];then
if [ "$tekrarkur" = "hayir" ];then
while true; do
2018-05-17 23:37:58 +02:00
$_yaz_uyari "${_ypaket} paketi zaten kurulu silinip kurulsun mu?"
2017-07-31 01:21:22 +02:00
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
2018-05-17 23:37:58 +02:00
$_yaz_bilgi "silinecekelerin kontrolu için"
2017-07-31 01:21:22 +02:00
paket_sil "$paketad"
2018-02-03 13:58:31 +01:00
icerik_ekle "${_ypaket}"
2017-07-31 01:21:22 +02:00
fi
else
2018-02-03 13:58:31 +01:00
icerik_ekle "${_ypaket}"
2017-07-31 01:21:22 +02:00
#while true; do
2018-02-03 13:58:31 +01:00
#ryaz 31 "${_ypaket} paketi talimatname dışı.Yine de kurulsun mu? (kokdizin=$kokdizin) "
2017-07-31 01:21:22 +02:00
#read -p "e veya h -> " eh
#case $eh in
2018-02-03 13:58:31 +01:00
# [Ee]* ) icerik_ekle "${_ypaket}"; break;;
2017-07-31 01:21:22 +02:00
# [Hh]* ) break;;
# * ) echo "e veya h";;
#esac
#done
fi
else
2018-05-17 23:37:58 +02:00
$_yaz_uyari "yerelde mps paketi bulunamadı."
2017-07-31 01:21:22 +02:00
fi
}
agdan_kur(){
2018-01-24 07:34:08 +01:00
kkont=$(kurulu_kontrol "$1")
2017-07-31 01:21:22 +02:00
if [ "$kkont" = "degil" ] || [ "$tekrarkur" = "evet" ];then
2017-12-16 07:41:23 +01:00
paket_indir "$1" "$2"
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
2018-11-07 03:48:32 +01:00
paket_sil "$1" "--onayla"
2017-08-12 16:00:49 +02:00
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
2017-12-14 06:40:19 +01:00
icerik_ekle $(ls "$paketdepo$1#"*) $cikti
2017-10-11 04:34:25 +02:00
elif [ $surumler -gt 1 ];then
2017-12-14 06:40:19 +01:00
$_yaz_uyari "$1 paketinin birden fazla sürümü var!"
2017-08-12 16:00:49 +02:00
kurulacak_guncel_paket=$(ls -1t "$paketdepo$1#"* | head -1)
2017-12-14 06:40:19 +01:00
$_yaz "$kurulacak_guncel_paket sürümü kuruluyor"
icerik_ekle $kurulacak_guncel_paket $cikti
2017-08-12 16:00:49 +02:00
fi
2017-07-31 01:21:22 +02:00
fi
2017-08-12 16:00:49 +02:00
else
2017-12-14 06:40:19 +01:00
$_yaz_uyari "$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
2018-01-24 07:34:08 +01:00
$_yaz_uyari "$1 tanımsız paket veya tekrar kurulum iptali var!"
2017-07-31 01:21:22 +02:00
fi
}
2018-11-07 02:33:01 +01:00
_arg_sil(){
args=`echo "${args}" | sed -e "s/${_arg}//"`
}
2016-02-24 01:27:23 +01:00
ayarlar() {
2018-11-07 02:33:01 +01:00
# renkli yazma öntanımlı atamaları
cikti_renk_ayarla ${renkdurum}
# global değişkenlerin işlenmesi
2018-06-02 11:51:36 +02:00
args="${@:2}"
2018-11-07 02:33:01 +01:00
### Milis_Paket_Sistemi_Yardim
### --------------------------
### mps ... --debug|--htbl = mps için hata ayıklama modunu aktifleştirir.
2018-11-06 23:32:54 +01:00
if [[ "${args}" =~ "--htbl" ]] || [[ "${args}" =~ "--debug" ]];then
2018-11-07 02:33:01 +01:00
# args ın global değişkenlerden temizlenmesi
_arg="--htbl";_arg_sil
_arg="--debug";_arg_sil
2018-11-06 23:32:54 +01:00
set -x
fi
2018-11-07 02:33:01 +01:00
### mps ... --renksiz|--no-color = mps çıktıklarının renksiz yazdırılması.
if [[ "${args}" =~ "--renksiz" ]] || [[ "${args}" =~ "--no-color" ]];then
_arg="--renksiz";_arg_sil
cikti_renk_ayarla "--renksiz"
fi
2016-02-24 01:27:23 +01:00
while [ "$1" ]; do
case $1 in
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"
2018-06-02 11:51:36 +02:00
paket_indir $args
2017-09-24 22:26:11 +02:00
exit 0 ;;
2018-01-14 20:28:08 +01:00
### mps -ik paketismi = ilgili paketi indirir ve 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"
2018-02-11 11:58:15 +01:00
agdan_kur "$2"
exit 0 ;;
2017-08-22 06:44:51 +02:00
### mps -k paketismi..mps.lz = yerel dizindeki paketi kurar.
-k)
2018-06-02 11:51:36 +02:00
yerelden_kur $args
2018-02-03 13:58:31 +01:00
exit 0 ;;
2017-08-22 06:44:51 +02:00
### mps sil|-s paketismi = ilgili paketi onaylı kaldırır.
2018-11-07 03:48:32 +01:00
### mps sil|-s paketismi = --onayla -> onaysız kaldırır. (zorla silme)
2016-09-30 01:16:04 +02:00
-s|sil)
2018-06-02 11:51:36 +02:00
paket_sil $args
2017-09-08 06:49:53 +02:00
exit 0 ;;
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)
2018-11-07 03:48:32 +01:00
paket_sil "$2" "--tersbag"
2017-09-25 17:41:26 +02:00
exit 0 ;;
### mps -S paketismi = ilgili paketi altbağımlılıklarını da sorarak kaldırır.
2018-06-08 23:55:11 +02:00
### mps -S paketismi = ve oto eklenirse ilgili paketi altbağımlılıklarını da sormadan sırayla kaldırır.
-S)
2018-06-08 23:55:11 +02:00
paket_sil_gereklerle $args
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-09-25 17:41:26 +02:00
if [ -d "$talimatname/temel/$2" ] ; then
2018-05-17 23:37:58 +02:00
$_yaz_uyari "temel paket için odkp kullanılamaz!"
2017-07-23 03:53:27 +02:00
exit 1
fi
2017-09-08 14:32:31 +02:00
oto_derle_kur_paketle "$2"
exit 0 ;;
2018-01-22 02:45:12 +01:00
### mps god paketismi = mps guncelle && mps odkp paketismi.
god)
git_guncelle
oto_derle_kur_paketle "$2"
exit 0 ;;
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)
2018-01-01 21:16:50 +01:00
paket_derle_liste "$2"
exit 0;;
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)
2017-09-25 17:41:26 +02:00
paket_derle_kur "$2"
exit 0 ;;
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" ;;
2018-06-21 11:19:35 +02:00
### mps -kh . = mevcut dizindeki mps.lz uzantılı paketleri onaysız kurar.
2016-10-08 20:42:19 +02:00
-kh)
local templist
templist=`mktemp`
ls *.mps.lz > $templist
2018-06-23 21:14:16 +02:00
paket_kur_oto_zorla $templist
exit 0 ;;
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)
2018-11-08 20:19:04 +01:00
git_guncelle;
paketvt_guncelle;
paket_inkur_oto "$2"
2018-02-04 14:52:41 +01:00
exit 0 ;;
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-09-28 22:42:15 +02:00
if [[ "$2" == *"mps.lz"* ]]; then
if [ "$3" == "-kok" ] && [ -d "$4" ]; then
kokdizin="$4"
tekrarkur="evet"
fi
2017-12-14 06:40:19 +01:00
yerelden_kur "$2" "$3"
2016-09-28 22:42:15 +02:00
else
2017-12-14 06:40:19 +01:00
paket_inkur_oto "$2" "$3"
2017-09-08 06:49:53 +02:00
fi
exit 0 ;;
2017-11-14 04:24:55 +01:00
### mps kaynak paketismi = ilgili paketin kaynak kodunu indirir.
kaynak)
if [ ! "$2" ]; then
2018-05-17 23:37:58 +02:00
$_yaz_uyari "paket ismi eksik"
2017-11-14 04:24:55 +01:00
exit 1
fi
kaynak_kod_indir "$2"
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)
2017-09-25 17:41:26 +02:00
servis_kur "$2"
exit 0 ;;
2017-08-30 03:24:29 +02:00
### mps sersil paketismi = ilgili paketin servisini siler
2017-03-28 04:34:52 +02:00
sersil)
2017-09-25 17:41:26 +02:00
servis_sil "$2"
exit 0 ;;
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)
2017-09-25 17:41:26 +02:00
servisler_kontrol
exit 0 ;;
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
2017-09-25 17:41:26 +02:00
pkt=$(talimat_bul $2)
2016-10-24 21:54:58 +02:00
if [ -f $pkt/$2.kur-kos ];then
bash $pkt/$2.kur-kos
2017-12-29 22:07:04 +01:00
exit 0
2016-10-24 21:54:58 +02:00
else
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$2 kur-kos yok!"
2017-04-01 01:44:55 +02:00
hataloglama "$2 kur-kos yok!"
2017-09-25 17:41:26 +02:00
exit 1
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
2017-09-25 17:41:26 +02:00
pkt=$(talimat_bul $2)
2016-10-24 21:54:58 +02:00
if [ -f $pkt/$2.kos-kur ];then
bash $pkt/$2.kos-kur
2017-12-29 22:07:04 +01:00
exit 0
2016-10-24 21:54:58 +02:00
else
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$2 kos-kur yok!"
2017-04-01 01:44:55 +02:00
hataloglama "$2 kos-kur yok!"
2017-09-25 17:41:26 +02:00
exit 1
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
2017-09-25 17:41:26 +02:00
pkt=$(talimat_bul $2)
2016-10-24 21:54:58 +02:00
if [ -f $pkt/$2.sil-kos ];then
bash $pkt/$2.sil-kos
2017-12-29 22:07:04 +01:00
exit 0
2016-10-24 21:54:58 +02:00
else
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$2 sil-kos yok!"
2017-04-01 01:44:55 +02:00
hataloglama "$2 sil-kos yok!"
2017-09-25 17:41:26 +02:00
exit 1
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
2017-09-25 17:41:26 +02:00
pkt=$(talimat_bul $2)
2016-10-24 21:54:58 +02:00
if [ -f $pkt/$2.kos-sil ];then
bash $pkt/$2.kos-sil
2017-12-29 22:07:04 +01:00
exit 0
2016-10-24 21:54:58 +02:00
else
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$2 kos-sil yok!"
2017-04-01 01:44:55 +02:00
hataloglama "$2 kos-sil yok!"
2017-09-25 17:41:26 +02:00
exit 1
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
2018-05-17 23:37:58 +02:00
$_yaz_uyari "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-12-17 05:17:23 +01:00
kurulu_kontrol_test "$2" "$3"
kurulum_dosya_listele "$2" "$3"
2017-09-08 07:13:43 +02:00
exit 0 ;;
2017-09-25 17:41:26 +02:00
### mps -kkp paketismi = ilgili paketin çalışması için eksik olan dosyaları tespit eder.
2017-04-07 06:48:03 +02:00
-kkp)
if [ ! "$2" ]; then
2018-05-17 23:37:58 +02:00
$_yaz_uyari "paket ismi eksik"
2017-04-07 06:48:03 +02:00
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
2018-05-17 23:37:58 +02:00
$_yaz_uyari "paket ismi eksik"
2017-08-30 21:36:24 +02:00
hataloglama "(kirma) paket ismi eksik"
exit 1
fi
2017-09-08 07:31:27 +02:00
kirik_ters_bagimli_bilgi "$2"
exit 0 ;;
2017-12-27 23:31:19 +01:00
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)
2018-01-28 15:26:17 +01:00
revdep-rebuild
#kirik_kontrol_sistem
2017-09-08 07:31:27 +02:00
exit 0 ;;
2018-01-24 07:53:03 +01:00
### mps -sdk paketismi = bir paketin güncel sürüm numarasını denetler.
2017-12-27 23:31:19 +01:00
-sdk)
if [ ! "$2" ]; then
2018-05-17 23:37:58 +02:00
$_yaz_uyari "paket ismi eksik"
2017-12-27 23:31:19 +01:00
exit 1
fi
surum_devir_kontrol "$2" "$3"
exit 0 ;;
2018-10-25 15:17:33 +02:00
### mps -devk paketismi = bir paketin güncel devir numarasını denetler.
2017-12-27 23:31:19 +01:00
-devk)
if [ ! "$2" ]; then
2018-05-17 23:37:58 +02:00
$_yaz_uyari "paket ismi eksik"
2017-12-27 23:31:19 +01:00
exit 1
fi
2018-10-25 15:25:37 +02:00
_devir_kontrol_durum "$2"
2017-12-27 23:31:19 +01:00
exit 0 ;;
2016-03-19 00:16:01 +01:00
-pak|--paketle)
2016-03-19 02:20:46 +01:00
if [ ! "$2" ]; then
2018-05-17 23:37:58 +02:00
$_yaz_uyari "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
2018-05-17 23:37:58 +02:00
$_yaz_uyari "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
2018-05-17 23:37:58 +02:00
$_yaz_uyari "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 ;;
2018-01-22 06:18:17 +01:00
## mps -po . = mps paketlerinin olduğu dizinde paket.vt oluşturur.
2016-03-29 02:39:30 +02:00
-po)
2018-01-22 06:18:17 +01:00
pvt_olustur
exit 0 ;;
2018-09-02 23:24:54 +02:00
## mps sildos dosya = ilgili dosyadaki altalta sıralı paketleri onaysız siler.
sildos)
2016-03-10 01:28:42 +01:00
if [ ! "$2" ]; then
2018-05-17 23:37:58 +02:00
$_yaz_uyari "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
2018-01-22 06:18:17 +01:00
paket_sil_oto "$2"
exit 0 ;;
2018-09-12 23:16:25 +02:00
### mps gitsurum . = milis git deposunun güncel git numarasını verir.
gitsurum)
2018-11-04 05:14:43 +01:00
# hesap-repo parçalanacak- notabug api araştırılıyor.
local _udgs=$(curl -s ${git_sunucu}/${hesap_repo} | grep -r 'milislinux\/milis\/commit\/' \
| head -n1 | awk -F'(>|</a>)' '{print $2}')
local _ydgs=$(cat ${git_yereldepo}/.git/refs/heads/master)
printf "uzak_depo: ${_udgs}\n"
printf "yerel_depo: ${_ydgs:0:10}\n"
2018-09-12 23:16:25 +02:00
exit 0 ;;
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)
2018-01-03 09:03:44 +01:00
ls ${kokdizin}${VT}
exit 0 ;;
2018-01-13 14:27:05 +01:00
### mps dliste . = sistemde kurulu olan ama talimatnamede yer almayan paket listesini verir.
-dkl|dliste)
ls ${kokdizin}${VT} | sort > /tmp/mps_krl_pkt.txt
paket_liste | sort > /tmp/mps_tum_pkt.txt
comm -23 "/tmp/mps_krl_pkt.txt" "/tmp/mps_tum_pkt.txt"
rm -rf /tmp/mps_krl_pkt.txt
rm -rf /tmp/mps_tum_pkt.txt
exit 0 ;;
2017-12-14 02:33:21 +01:00
### mps paketler grup_ismi = paket deposundaki paket listesini verir.(grup_ismi verilmezse tüm paketler)
2017-12-13 04:56:41 +01:00
-ptl|paketler)
2017-12-14 02:33:21 +01:00
paket_liste "$2" "$3"
2017-12-13 04:56:41 +01:00
exit 0 ;;
2017-12-13 21:02:05 +01:00
### mps gruplar . = paket deposundaki paket grup listesini verir.
-pgl|gruplar)
paket_grup_liste "$2"
exit 0 ;;
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.
2017-11-22 09:12:31 +01:00
-dly|dliste)
2018-06-02 11:51:36 +02:00
derleme_listyap $args
2018-01-25 18:05:56 +01:00
exit 0 ;;
2017-11-22 09:12:31 +01:00
### mps -ykp paketismi = ilgili paketin kurulmak istenirse,kurulacak yeni paketleri listeler.
-ykp)
2018-01-26 03:42:01 +01:00
#yeni_kurulacak_paketler "$2"
derleme_listyap "$2" "--kurulu_atla"
listeleri_temizle
2017-11-22 09:12:31 +01:00
exit 0 ;;
2016-05-01 03:26:55 +02:00
#sunucu bilgisi alma
2017-08-08 21:39:37 +02:00
-sun2|sunucu)
2018-05-17 23:37:58 +02:00
$_yaz $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)
2018-01-29 01:08:56 +01:00
#ryaz 32 ${sunucular} ;;
echo ${sunucular} | tr " " "\n"
exit 0 ;;
2017-03-12 21:45:04 +01:00
sun)
if [ ! "$2" ]; then
2018-05-17 23:37:58 +02:00
$_yaz_uyari "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" ;;
2018-01-22 06:18:17 +01:00
### mps -bb paketismi = ilgili paketin gereklerinin durumunu listeler.
2017-08-10 01:17:44 +02:00
-bb|bagbil)
2018-01-22 06:18:17 +01:00
bagimli_bilgi "$2" | column -t
exit 0;;
2017-08-10 01:17:44 +02:00
-bbdog|bdogrula)
bagimli_bilgi "$2" "dogrula";;
2017-01-29 19:47:24 +01:00
-bbd)
2018-06-08 23:55:11 +02:00
bagimli_bilgi_dosyala $args
exit 0 ;;
2017-11-06 04:05:17 +01:00
### mps -tb talimatismi = ilgili talimata gerek duyan(ters-gerekler) talimatları listeler.
2017-08-08 21:39:37 +02:00
-tb|tersbag)
2017-11-06 20:11:07 +01:00
ters_bagimli_bilgi "$2"
2017-11-06 04:05:17 +01:00
exit 0;;
2018-08-20 13:32:23 +02:00
-tbb)
ters_bagimli_bilgi "$2" "bilgi" | column -t
exit 0;;
2017-09-25 17:41:26 +02:00
-tbk)
2016-03-12 01:06:20 +01:00
ters_bagimli_kontrol "$2" ;;
2017-09-27 13:49:36 +02:00
### mps pka paketismi = ilgili paketin depo-gitdepo uyumluluğunu kontrol eder.
2017-09-27 13:42:10 +02:00
pka)
paket_analiz "$2"
exit 0;;
2017-09-27 13:49:36 +02:00
### mps pda paketdepo = paketlerin olduğu dizindeki paketlerin depo-gitdepo uyumluluğunu kontrol eder.
2017-09-27 04:42:23 +02:00
pda)
paketdepo_analiz "$2"
exit 0 ;;
2017-09-25 17:41:26 +02:00
### mps tbilgi paketismi = ilgili paketin talimat bilgilerini verir.
tbilgi)
2018-06-02 11:51:36 +02:00
talimat_bilgi $args
2017-09-25 17:41:26 +02:00
exit 0 ;;
2017-12-19 03:59:38 +01:00
### mps talimat paketismi = ilgili paketin talimatını yazdırır.
talimat)
talimat_yazdir "$2"
exit 0 ;;
2017-09-25 17:41:26 +02:00
### mps -b paketismi = ilgili paketin kurulum bilgilerini verir.
-b)
2017-12-13 04:56:41 +01:00
if [ $2 ];then
touch "/tmp/mps_paket_bilgi_$2"
paket_bilgi "$2" "$3" | tee "/tmp/mps_paket_bilgi_$2"
2017-12-18 20:53:44 +01:00
if [ $3 ];then
2018-01-11 16:32:39 +01:00
[ $3 == "--html" ] && paket_bilgi_html "/tmp/mps_paket_bilgi_$2"
2017-12-18 20:53:44 +01:00
fi
2017-12-13 04:56:41 +01:00
else
2018-05-17 23:37:58 +02:00
$_yaz_uyari "paket ismi eksik"
2017-12-13 04:56:41 +01:00
exit 1
fi
2017-09-25 17:41:26 +02:00
exit 0 ;;
2018-01-11 16:32:39 +01:00
bil)
if [ $2 ];then
if [ $3 ];then
2018-11-07 02:33:01 +01:00
[ $2 == "surum" ] && paket_bilgi "$3" "--renksiz" | sed -n 6p | cut -d':' -f2 | sed 's/^ *//;s/ *$//'
[ $2 == "devir" ] && paket_bilgi "$3" "--renksiz" | sed -n 7p | cut -d':' -f2 | sed 's/^ *//;s/ *$//'
2018-01-11 16:32:39 +01:00
else
2018-05-17 23:37:58 +02:00
$_yaz_uyari "paket ismi eksik"
2018-01-11 16:32:39 +01:00
exit 1
fi
else
2018-05-17 23:37:58 +02:00
$_yaz_uyari "islev ismi eksik"
2018-01-11 16:32:39 +01:00
exit 1
fi
exit 0 ;;
2017-12-18 14:00:48 +01:00
phtml)
paketler_depo_html
exit 0 ;;
2017-09-07 04:16:05 +02:00
### mps bilgi paketismi = ilgili paketin talimat ve kurulum bilgilerini verir.
2017-09-25 17:41:26 +02:00
bilgi)
paket_bilgi "$2"
2017-08-08 21:39:37 +02:00
talimat_bilgi "$2"
2017-09-25 17:41:26 +02:00
exit 0 ;;
2018-01-22 06:18:17 +01:00
### mps -to talimat_ismi = ilgili talimat ismine göre talimat şablonu oluşturur.
2016-06-21 20:42:06 +02:00
-to)
if [ ! "$2" ]; then
2018-05-17 23:37:58 +02:00
$_yaz_uyari "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
2017-09-25 17:41:26 +02:00
talimat_olustur "$2"
exit 0 ;;
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
2018-05-17 23:37:58 +02:00
$_yaz_uyari "zaman parametresi eksik"
2017-04-01 01:44:55 +02:00
hataloglama "zaman parametresi eksik"
2018-05-17 23:37:58 +02:00
$_yaz $logyardim
2017-02-13 16:45:41 +01:00
exit 1
fi
if [ ! "$3" ]; then
2018-05-17 23:37:58 +02:00
$_yaz_uyari "durum parametresi eksik"
2017-04-01 01:44:55 +02:00
hataloglama "durum parametresi eksik"
2018-05-17 23:37:58 +02:00
$_yaz $logyardim
2017-02-13 16:45:41 +01:00
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)
2018-11-04 23:41:01 +01:00
git_guncelle;
paketvt_guncelle;
kurulum_dogrulama;
#guncelleme_tespit;
2017-09-09 08:55:43 +02:00
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
2018-05-17 23:37:58 +02:00
kurulum_dogrulama
2017-09-09 08:55:43 +02:00
exit 0 ;;
2018-11-07 03:48:32 +01:00
### mps -GG . = git güncellemelerini ve talimatname bilgilerini günceller.
-Ggit|-GG)
git_guncelle
exit 0 ;;
2018-10-23 08:50:18 +02:00
### mps -GGG . = ek git repo bilgilerini günceller.
2018-10-23 08:24:12 +02:00
-GGG)
git_ek_guncelle
exit 0 ;;
2017-09-22 22:17:19 +02:00
### mps tespit . = tüm sistemin güncellemesi için güncellenecek paket listesini gösterir.
2017-09-09 08:55:43 +02:00
tespit)
guncelleme_tespit
exit 0 ;;
2018-11-04 23:41:01 +01:00
tespit2)
guncelleme_tespit_hizli
exit 0 ;;
2017-12-17 06:44:38 +01:00
### mps gun . = güncellenmesi gereken ve depoya yeni eklenen paketleri gösterir.
gun)
guncellemeler
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)
2018-06-02 11:51:36 +02:00
sistem_guncelle $args
2017-09-09 08:55:43 +02:00
exit 0 ;;
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)
2018-11-08 20:19:04 +01:00
git_guncelle;paketvt_guncelle
2016-02-24 01:27:23 +01:00
if [ ! "$2" ]; then
2018-05-17 23:37:58 +02:00
$_yaz_uyari "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
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$2 $_paket_kurulu_degil"
2017-09-25 17:41:26 +02:00
hataloglama "$2 $_paket_kurulu_degil"
2017-05-03 00:13:51 +02:00
else
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$2 $_paket_tanimsiz"
2017-09-25 17:41:26 +02:00
hataloglama "$_paket_tanimsiz"
fi
exit 0 ;;
2016-05-03 01:31:38 +02:00
#bagimliliklariyla beraber paket guncelleme-package updating with depencies
-go|--pkgo)
if [ ! "$2" ]; then
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$_paket_adi_gerekli"
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.
2018-01-24 07:34:08 +01:00
-kk)
2018-06-02 11:51:36 +02:00
kurulu_kontrol $args
2017-09-25 17:41:26 +02:00
exit 0 ;;
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
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$_paket_adi_gerekli"
2017-07-20 09:55:46 +02:00
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
2018-05-17 23:37:58 +02:00
$_yaz_uyari "$_paket_adi_gerekli"
2017-08-10 22:56:16 +02:00
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 ;;
2018-06-30 07:20:49 +02:00
### mps -set paketismi = ilgili paket silindiğinde etkilenen paketleri ve konumları tespit eder.
2018-06-30 05:51:57 +02:00
-set)
2018-11-07 03:48:32 +01:00
[ -z $2 ] && hata_olustu "_paket_adi_gerekli"
if [ `kurulu_kontrol $1` == "kurulu" ];then
silme_etkilenme_tespit $args
else
$_yaz "$2 $_paket_kurulu_degil"
fi
2018-06-30 05:51:57 +02:00
exit 0 ;;
2018-01-22 06:18:17 +01:00
### mps -suko . = sunucuların erişim kontrolünü yapar.
2016-02-24 01:27:23 +01:00
-suko)
2018-01-29 01:08:56 +01:00
sunucu_kontrol
exit 0 ;;
2017-09-14 02:04:37 +02:00
### mps -pot . = talimatı olup ta paketi henüz depoda yer almayan talimatları listeler.
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 ;;
2018-01-10 12:48:47 +01:00
### mps depsil . = depo/paketler altındaki paket önbelleğini temizler.
2017-08-09 19:56:35 +02:00
-dps|depsil)
2017-09-08 14:28:18 +02:00
depo_paketler_sil
exit 0 ;;
2018-01-13 03:24:34 +01:00
### mps etksil . = /var/lib/pkg/etkilenen altındaki kurtarılmış paket önbelleğini temizler.
-etks|etksil)
etkilenenler_sil
exit 0 ;;
2018-01-10 12:48:47 +01:00
### mps link url_adres = verilen url adresindeki talimatı ektalimatname/topluluk altına indirir.
2017-09-27 18:45:42 +02:00
link)
mkdir -p $ektalimatname/topluluk
indir_talimat_paketle $2 "-4" "$ektalimatname/topluluk"
exit 0 ;;
2018-01-10 12:48:47 +01:00
### mps ti url_adres = verilen url adresindeki talimatı talimatname/genel altına indirir.
2017-09-27 18:45:42 +02:00
ti)
indir_talimat_paketle $2 "-4" "$talimatname/genel"
2017-09-08 14:28:18 +02:00
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-09-16 14:29:07 +02:00
### mps -hp aranan = ilgili aranan ifadenin hangi paketlerde olabileceğini listeler.
2017-04-14 20:17:54 +02:00
-hp)
if [ ! "$2" ]; then
2018-05-17 23:37:58 +02:00
$_yaz_uyari "paket ismi eksik"
2017-04-14 20:17:54 +02:00
exit 1
fi
2017-09-08 14:28:18 +02:00
kurulan_dosya_bul "$2"
exit 0 ;;
2017-11-01 23:41:49 +01:00
### mps tgs talimat = ilgili talimatın kaynak kodunun yeni sürümü olup olmadığını kontrol eder.
tgs)
2017-11-01 23:37:36 +01:00
if [ ! "$2" ]; then
2018-05-17 23:37:58 +02:00
$_yaz_uyari "talimat ismi eksik"
2017-11-01 23:37:36 +01:00
exit 1
fi
talimat_surum_takip "$2"
exit 0 ;;
2018-01-22 06:18:17 +01:00
### mps -tro . = tarihçe noktası oluşturur.
2016-03-09 01:57:13 +01:00
-tro)
2017-09-08 14:28:18 +02:00
tarihce_yap
exit 0 ;;
2018-01-22 06:18:17 +01:00
### mps -trot . = temel tarihçe noktası oluşturur.
2016-03-10 01:28:42 +01:00
-trot)
temel_tarihce="evet"
2017-09-08 14:28:18 +02:00
tarihce_yap
exit 0 ;;
2018-01-22 06:18:17 +01:00
### mps -try tarihce_nokta = tarihçe noktasına göre paketleri yükler-siler.
2016-03-09 01:57:13 +01:00
-try)
if [ ! "$2" ]; then
2018-05-17 23:37:58 +02:00
$_yaz_uyari "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
2018-06-02 11:51:36 +02:00
tarihce_yukle "$2"
exit 1 ;;
2018-01-10 12:48:47 +01:00
### mps -trl . = tarihçe noktalarını listeler.
2016-03-09 01:57:13 +01:00
-trl)
tarihce_liste ;;
2018-01-10 12:48:47 +01:00
### mps tdc talimat_dosyası = ilgili talimat dosyasının Türkçe değişken çevrimini yapar.
2017-10-28 17:41:19 +02:00
tdc)
talimat_degisken_cevrim $2
exit 0 ;;
2017-07-23 03:20:01 +02:00
-tamir-tk)
tamir_temel_kurulan ;;
2018-01-10 12:48:47 +01:00
### mps dos . = derleme ortamını sıfırlar.temel tarihçeye geri döner.
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
2018-05-17 23:37:58 +02:00
$_yaz_uyari "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
2018-06-02 11:51:36 +02:00
tarihce_sil "$2"
exit 1 ;;
2018-01-10 12:48:47 +01:00
### mps itest islev_ismi = mps içindeki işlevlerin testi için kullanılmaktadır.
itest)
if [ $2 ];then
_islev="$2"
if [ "`type -t $_islev`" == "function" ];then
shift;shift
$_islev $@
else
echo "$_islev işlevi bulunamadı"
fi
else
echo "test edilecek işlev parametresi eksik"
fi
exit 0 ;;
### mps -v . = mps sürüm bilgisini gösterir.
2016-02-24 01:27:23 +01:00
-v)
2018-05-17 23:37:58 +02:00
$_yaz_bilgi "$betikad $versiyon $iletisim $shelltip"
2018-11-07 02:33:01 +01:00
#echo "$betikad $versiyon $iletisim $shelltip kullanıcı: $SUDO_USER" | bilgi_kutusu
_exit ;;
2017-09-07 04:16:05 +02:00
-y|-h|yardim)
2017-09-25 22:55:09 +02:00
yardim_icerik
2016-02-24 01:27:23 +01:00
exit 0 ;;
2017-09-08 06:45:48 +02:00
*)
2018-05-17 23:37:58 +02:00
$_yaz_uyari "Geçersiz Parametre! --> mps yardim "
2017-09-08 06:45:48 +02:00
exit 0 ;;
2016-02-24 01:27:23 +01:00
esac
done
}
2017-08-22 06:44:51 +02:00
yardim_icerik(){
2018-01-22 06:18:17 +01:00
cat $betikyol | 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
2018-01-22 07:47:43 +01:00
bilgi_kutusu() {
: ${title='Bilgi'}
: ${icon=dialog-information}
yad --title="$title" --window-icon="$icon" \
--geometry='600x220+0-24' --fore='#ffffff' --back='#000033' \
--text-info --fontname=monospace --wrap $opts \
2018-10-24 22:57:53 +02:00
--button='KAPAT!gtk-quit:1'
2018-01-22 07:47:43 +01:00
}
2018-11-07 02:33:01 +01:00
_exit(){
echo "exit"
exit 0
}
2016-02-24 01:27:23 +01:00
ana(){
2016-10-30 14:54:07 +01:00
if [ `id -u` = 0 ] ; then
ayarlar "$@"
else
2018-10-25 09:41:22 +02:00
# sudo yetkisi ile yapılması ve SUDO_USER değişkeninden çalıştıran kullanıcı alınabilir.
2018-10-25 15:17:33 +02:00
export SUDO_USER=$USER
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