mps-bootstrap 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797
  1. #!/bin/bash
  2. #. ./mpsd.conf
  3. . ./bin/fonks.sh
  4. versiyon="0.4"
  5. iletisim="milisarge@gmail.com"
  6. paketdepo="/tmp/paketler/"
  7. sunucu="192.168.1.23:8000/"
  8. #sunucu="http://milis.gungre.ch/packages/"
  9. git_sunucu="https://github.com/milisarge/malfs-milis"
  10. ikaynak=""
  11. betikad=${0##*/}
  12. kurulum_onay="evet"
  13. talimatname_dizin="/opt/malfs-milis/talimatname"
  14. kokdizin="/"
  15. VT="/var/lib/pkg/DB"
  16. TARIHCE_DIZIN="/var/lib/pkg/tarihce"
  17. LOGDIZIN="/var/log/mps"
  18. tekrarkur="hayir"
  19. lokal="tr"
  20. docsil="evet"
  21. yerelsil="evet"
  22. icerik_ekle(){
  23. paketad=`echo "$1" | cut -d'#' -f1`
  24. paketad=`basename $paketad`
  25. ryaz 34 $paketad" paketi kuruluyor-> $kokdizin"
  26. tar -C /tmp --extract --file=$1 .PRE 1 2> /tmp/$paketad_pre.log
  27. #kos-kur kontrolu
  28. if [ -f /tmp/.PRE ];then
  29. if [ "$kokdizin" == "/" ];then
  30. bash /tmp/.PRE
  31. else
  32. cp /tmp/.PRE $kokdizin/tmp/$paketad.PRE
  33. fi
  34. rm /tmp/.PRE
  35. fi
  36. mkdir -p kur.$paketad &&
  37. tar xf $1 -C kur.$paketad &&
  38. #istenmeyen yerellerin silinmesi
  39. if [ -d kur.$paketad/usr/share/locale ] && [ "$yerelsil" == "evet" ];then
  40. for lkl in `ls kur.$paketad/usr/share/locale/`;do
  41. if [ "$lkl" != "$lokal" ];then rm -r kur.$paketad/usr/share/locale/$lkl; fi
  42. done
  43. fi
  44. #doc dizini silinmesi
  45. if [ -d kur.$paketad/usr/share/doc ] && [ "$docsil" == "evet" ];then
  46. rm -r kur.$paketad/usr/share/doc
  47. fi
  48. mkdir -p $kokdizin/var/lib/pkg/DB/"$paketad" &&
  49. cp -v -afr kur.$paketad/* $kokdizin > kur.$paketad/kurulan &&
  50. cp kur.$paketad/kurulan /tmp/ &&cat kur.$paketad/kurulan | cut -d '>' -f2 > $kokdizin/var/lib/pkg/DB/"$paketad"/kurulan &&
  51. #mv kur.$paketad/.MTREE /var/lib/pkg/DB/"$paketad"/files &&
  52. mv kur.$paketad/.META $kokdizin/var/lib/pkg/DB/"$paketad"/META &&
  53. #kur-kos calistirilmasi
  54. if [ -f kur.$paketad/.POST ];then
  55. if [ "$kokdizin" == "/" ];then
  56. bash kur.$paketad/.POST
  57. else
  58. cp kur.$paketad/.POST $kokdizin/tmp/$paketad.POST
  59. fi
  60. rm kur.$paketad/.POST
  61. fi
  62. rm -r kur.$paketad
  63. if [ -f $kokdizin/etc/ld.so.conf ];then
  64. ldconfig -r $kokdizin
  65. fi
  66. ryaz 34 $paketad" paketi kuruldu."
  67. loglama "$paketad paketi kuruldu."
  68. }
  69. paket_sil(){
  70. local paket kkont sil_onay oto_silme
  71. paket="$1"
  72. if [ "$2" ]; then
  73. oto_silme="$2"
  74. fi
  75. kkont=`kurulu_kontrol "$1"`
  76. if [ "$kkont" = "kurulu" ];then
  77. if [ -f "/var/lib/pkg/DB/$paket/kurulan" ];then
  78. cat /var/lib/pkg/DB/$paket/kurulan | cut -d '>' -f2 > /tmp/$paket.sil
  79. ryaz 31 "ters bagimliliklar"
  80. ryaz 31 "------------------"
  81. ters_bagimli_kontrol "$paket"
  82. ryaz 31 "------------------"
  83. ryaz 31 "kurban dosyalar"
  84. ryaz 31 "------------------"
  85. silme_kurban_kontrol /tmp/$paket.sil
  86. ryaz 31 "------------------"
  87. if [ "$oto_silme" = "evet" ];then
  88. sil_onay="e"
  89. else
  90. while true; do
  91. ryaz 34 $paket" paketi kaldırılsın mı?";read -p "e veya h-> " eh
  92. case $eh in
  93. [Ee]* ) sil_onay="e"; break;;
  94. [Hh]* ) break;;
  95. * ) echo "e veya h";;
  96. esac
  97. done
  98. fi
  99. if [ "$sil_onay" = "e" ];then
  100. xargs rm -r -f < /tmp/$paket.sil &&
  101. rm -r -f /var/lib/pkg/DB/"$paket" &&
  102. ryaz 34 $paket" paketi silindi."
  103. loglama "$paket paketi silindi."
  104. fi
  105. rm -f /tmp/$paket.sil
  106. else
  107. ryaz 31 "kritik mesaj:kurulanlar dosyası yok."
  108. fi
  109. else
  110. ryaz 32 "paket zaten kurulu değil!"
  111. fi
  112. }
  113. paket_bilgi(){
  114. local paket kkont
  115. kkont=`kurulu_kontrol "$1"`
  116. if [ "$kkont" = "kurulu" ];then
  117. paket="$1"
  118. cat /var/lib/pkg/DB/"$paket"/META
  119. else
  120. echo "paket kurulu değil!"
  121. fi
  122. }
  123. yeniden_paketle(){
  124. cd $1
  125. bsdtar -r -f ../"$1".mps .META
  126. bsdtar -r -f ../"$1".mps *
  127. cd ..
  128. lzip -9 "$1".mps
  129. }
  130. derleme_listyap(){
  131. bagimlist=`bagimlilar "$1"`
  132. for bagim in $bagimlist;do
  133. if [ "`cat tumbag.liste | grep $bagim`" != "$bagim" ];then
  134. derleme_listyap "$bagim"
  135. fi
  136. done
  137. #if [ "`cat tumbag.liste | grep $1`" != "$1" ];then
  138. # echo "tumbag.liste yazılıyor:" "$1"
  139. # echo "$1" >> tumbag.liste
  140. #fi
  141. if ! grep -Fxq "$1" tumbag.liste
  142. then
  143. # echo "pas"
  144. #else
  145. ana="`find $talimatname_dizin -name $1`"
  146. echo ${ana#"$talimatname_dizin"}
  147. #sadece genel bagimliliklar derlenecek
  148. echo "$1" >> tumbag.liste
  149. if [ -d "$talimatname_dizin/genel/$1" ];then
  150. echo "$1" >> bag.liste
  151. fi
  152. fi
  153. }
  154. derleme_listbilgi(){
  155. ryaz 34 "yapim asamasında"
  156. }
  157. paket_derle_oto(){
  158. for dpkt in `cat $1`;do
  159. echo $dpkt "derleniyor...."
  160. zorla_derle="yok"
  161. paket_derle $dpkt
  162. done
  163. }
  164. #otomatik derle kontrollu kur
  165. paket_derle_oto2(){
  166. tekrarkur="hayir"
  167. mps -dly "$1" > /dev/null && mps -odk bag.liste
  168. }
  169. paket_kur_oto(){
  170. local kpkt pkt pak
  171. for kpkt in `cat $1`;do
  172. for pkt in `ls $kpkt* | cut -d'#' -f1`;do
  173. pak=`ls "$pkt#"*`
  174. mps -k "$pak"
  175. done
  176. done
  177. }
  178. paket_kur_liste(){
  179. local kpkt pkt pak
  180. for kpkt in `cat $1`;do
  181. for pkt in `ls $kpkt* | cut -d'#' -f1`;do
  182. pak=`ls "$pkt#"*`
  183. mps -k2 "$pak"
  184. done
  185. done
  186. }
  187. #otomatik kontrollu kur
  188. paket_kur_oto2(){
  189. mps -dly "$1" > /dev/null && mps -ok bag.liste
  190. }
  191. paket_inkur_liste_direk(){
  192. local kpkt
  193. for kpkt in `cat $1`;do
  194. mps -ik "$kpkt"
  195. done
  196. }
  197. paket_inkur_liste(){
  198. local kpkt
  199. for kpkt in `cat $1`;do
  200. mps -kur "$kpkt"
  201. done
  202. }
  203. #otomatik kontrollu kur
  204. paket_inkur_oto(){
  205. mps -dly "$1" > /dev/null &&
  206. local kpkt
  207. for kpkt in `cat bag.liste`;do
  208. mps -ik "$kpkt"
  209. done
  210. rm bag.liste tumbag.liste
  211. }
  212. paket_sil_oto(){
  213. local spkt
  214. for spkt in `cat $1`;do
  215. oto_silme="evet"
  216. paket_sil "$spkt" "$oto_silme"
  217. done
  218. }
  219. paket_derle(){
  220. #eski derleme kalıntılarını temizle
  221. if [ -d tmp.* ];then
  222. rm -r tmp.*
  223. fi
  224. kaynakdizin_kontrol
  225. local konum derleme_onay eh bagimd
  226. derleme_onay="h"
  227. konum="`find "$talimatname_dizin" -name $1`"
  228. if [ -d "$konum" ];then
  229. mkdir -p tmp."$1"
  230. cp -a $konum/* tmp."$1"/
  231. cd tmp."$1"
  232. if [ "`kurulu_kontrol "$1"`" = "kurulu" ] && [ "$zorla_derle" = "yok" ];then
  233. derleme_onay="h"
  234. else
  235. echo "-----"
  236. derleme_onay="e"
  237. fi
  238. if [ "$derleme_onay" = "e" ];then
  239. ryaz 33 "$1" "derleniyor...."
  240. #mpsd -d > /dev/null
  241. #mpsd -d
  242. echo "------------------------"
  243. mpsd -d 2>&1|tee /tmp/"$1".log
  244. if ( grep "^=======>" /tmp/"$1".log| tail -1 |grep "ERROR" > /dev/null);then
  245. echo "derleme sisteminde hata oluştu -----> " /tmp/"$1".log
  246. exit 1
  247. fi
  248. if [ "$kurulum_onay" = "evet" ];then
  249. for kpkt in `ls $1* | cut -d'#' -f1`;do
  250. mps -k "$kpkt#"*
  251. done
  252. fi
  253. mv *.mps.lz ../
  254. else
  255. ryaz 32 "paket zaten kurulu,yine de derlemek için:
  256. mps -zd $1"
  257. fi
  258. cd ..
  259. rm -r tmp."$1"
  260. else
  261. ryaz 31 "talimat dosyası bulunamadı."
  262. fi
  263. }
  264. bagimlilar(){
  265. local bagimd konum
  266. konum="`find "$talimatname_dizin" -name $1`"
  267. bagimd=`cat $konum/talimat | grep "Depends on" | cut -d':' -f2`
  268. if [ -n "$bagimd" ]; then
  269. bagimd=`echo "$bagimd" | sed 's/,/ /g'`
  270. #sıralı gösterme
  271. echo `echo "$bagimd" | sed 's/,/ /g'`
  272. fi
  273. }
  274. bagimli_bilgi(){
  275. local bagimd konum bag
  276. konum="`find "$talimatname_dizin" -name $1`"
  277. bagimd=`cat $konum/talimat | grep "Depends" | cut -d':' -f2`
  278. if [ -n "$bagimd" ]; then
  279. bagimd=`echo "$bagimd" | sed 's/,/ /g'`
  280. #sıralı gösterme
  281. #echo `echo "$bagimd" | sed 's/,/ /g'`
  282. #kurulu kontrollu gosterim
  283. for bag in $bagimd;do
  284. echo $bag "`kurulu_kontrol $bag`"
  285. done
  286. fi
  287. echo "$1" "`kurulu_kontrol $1`"
  288. }
  289. ters_bagimli(){
  290. local ara
  291. ara=" $1 "
  292. sy=`grep -o "/" <<<"$talimatname_dizin" | wc -l`
  293. grep -rli "$ara" "$talimatname_dizin" | cut -d'/' -f`expr $sy + 3`
  294. }
  295. silme_kurban_kontrol(){
  296. local dizin
  297. for f in $(cat $1) ; do
  298. dizin="${f%\'}"
  299. dizin="${dizin#\'}"
  300. if [ -d "$dizin" ];then
  301. for g in `ls "$dizin"` ; do
  302. if ! grep -Fxq " '$dizin/$g'" "$1"
  303. then
  304. echo "$dizin/$g"
  305. fi
  306. done
  307. fi
  308. done
  309. }
  310. ters_bagimli_kontrol(){
  311. ters_bagimli "$1" | sort > tersb.liste
  312. ls /var/lib/pkg/DB/ | sed "/$1/d" | sort > simdiki.liste
  313. comm -12 tersb.liste simdiki.liste
  314. rm tersb.liste simdiki.liste
  315. }
  316. kurulu_kontrol(){
  317. if [ -d "$kokdizin/var/lib/pkg/DB/$1" ];then
  318. echo "kurulu"
  319. exit 1
  320. fi
  321. echo "degil"
  322. }
  323. sistem_kur(){
  324. local spaket
  325. for spaket in `cat $1`;do
  326. ./$betikad -ik "$spaket" -kok $2;
  327. done
  328. }
  329. kaynakdizin_kontrol(){
  330. if [ ! -d $DERLEME_KAYNAKDIZIN ];then
  331. mkdir $DERLEME_KAYNAKDIZIN
  332. fi
  333. }
  334. logdizin_kontrol(){
  335. if [ ! -d $kokdizin$LOGDIZIN ];then
  336. mkdir $kokdizin$LOGDIZIN
  337. fi
  338. if [ ! -d $kokdizin$LOGDIZIN/derleme ];then
  339. mkdir $kokdizin$LOGDIZIN/derleme
  340. fi
  341. if [ ! -f $kokdizin$LOGDIZIN/mps.log ];then
  342. touch $kokdizin$LOGDIZIN/mps.log
  343. fi
  344. }
  345. tarihce_dkontrol(){
  346. if [ ! -d $TARIHCE_DIZIN ];then
  347. mkdir $TARIHCE_DIZIN
  348. fi
  349. }
  350. tarihce_liste(){
  351. tarihce_dkontrol
  352. ls $TARIHCE_DIZIN/
  353. }
  354. tarihce_yap(){
  355. tarihce_dkontrol
  356. local t_isim
  357. if [ "$temel_tarihce" = "evet" ];then
  358. t_isim="temel"
  359. else
  360. t_isim=`date +%m-%d-%y.%H%M%S`
  361. fi
  362. bsdtar -P -r -f $TARIHCE_DIZIN/"$t_isim"-pkvt.tar $VT
  363. lzip -9 $TARIHCE_DIZIN/"$t_isim"-pkvt.tar
  364. }
  365. tarihce_yukle(){
  366. tarihce_dkontrol
  367. local islem_onay cikis
  368. sil_onay="h"
  369. if [ -f $TARIHCE_DIZIN/"$1-pkvt.tar.lz" ];then
  370. bsdtar -p -o -C /tmp -xf $TARIHCE_DIZIN/"$1-pkvt.tar.lz" 2>/dev/null
  371. ls /tmp/var/lib/pkg/DB/ > hedef.pkvt
  372. ls /var/lib/pkg/DB/ > simdiki.pkvt
  373. grep -vf hedef.pkvt simdiki.pkvt > sil.liste
  374. grep -vf simdiki.pkvt hedef.pkvt > kur.liste
  375. rm hedef.pkvt simdiki.pkvt
  376. rm -r /tmp/var
  377. cikis=""
  378. if [ -s sil.liste ];then
  379. ryaz 32 "silinecekler"
  380. ryaz 32 "------------"
  381. cat sil.liste
  382. fi
  383. if [ -s kur.liste ];then
  384. ryaz 32 "kurulacaklar"
  385. ryaz 32 "------------"
  386. cat kur.liste
  387. fi
  388. if [ ! -s sil.liste ] && [ ! -s kur.liste ];then
  389. ryaz 32 "sistem zaten hedef durumda!"
  390. exit 1
  391. fi
  392. while true; do
  393. ryaz 34 "otomatik geri dönüşüm başlasın mı?";read -p "e veya h-> " eh
  394. case $eh in
  395. [Ee]* ) islem_onay="e"; break;;
  396. [Hh]* ) break;;
  397. * ) echo "e veya h";;
  398. esac
  399. done
  400. if [ "$islem_onay" = "e" ];then
  401. mps -os sil.liste
  402. mps -ok kur.liste
  403. mv sil.liste silinenler.liste
  404. mv kur.liste kurulanlar.liste
  405. exit 1
  406. fi
  407. mv sil.liste sil_iptal.liste
  408. mv kur.liste kur_iptal.liste
  409. else
  410. ryaz 31 "ilgili tarihce dosyası bulunamadı!"
  411. fi
  412. }
  413. tarihce_sil(){
  414. tarihce_dkontrol
  415. if [ -f $TARIHCE_DIZIN/"$1-pkvt.tar.lz" ];then
  416. rm -f $TARIHCE_DIZIN/"$1-pkvt.tar.lz"
  417. else
  418. ryaz 31 "ilgili tarihce dosyası bulunamadı!"
  419. fi
  420. }
  421. loglama(){
  422. logdizin_kontrol
  423. echo "$(date +'%F %T') $1" >> "$kokdizin/$LOGDIZIN/mps.log"
  424. }
  425. git_guncelle() {
  426. kaynakdizin_kontrol
  427. gitayar_kontrol
  428. cd $DERLEME_KAYNAKDIZIN
  429. #git sunucudan guncelleme
  430. ryaz 33 "git sunucudan güncelleme çekiliyor."
  431. if [ ! -d milis.git ];then
  432. git clone $git_sunucu milis.git
  433. else
  434. cd milis.git
  435. git pull
  436. fi
  437. ryaz 33 "yerele eşitleniyor."
  438. rm -r $talimatname_dizin/*
  439. rsync -a $DERLEME_KAYNAKDIZIN/milis.git/talimatname/ $talimatname_dizin
  440. rm -r `dirname $talimatname_dizin`/bin/*
  441. rsync -a $DERLEME_KAYNAKDIZIN/milis.git/bin/ `dirname $talimatname_dizin`/bin
  442. }
  443. paketvt_guncelle(){
  444. wget -q --spider "$sunucu""paket.vt"
  445. #if wget -P /tmp -q "$sunucu""paket.vt" > /dev/null; then
  446. if [ $? -eq 0 ]; then
  447. ryaz 32 "paket veritabanı guncellenıyor." "$paketdepo""paket.vt"
  448. if [ -f "$paketdepo""paket.vt" ];then
  449. mv "$paketdepo""paket.vt" "$paketdepo""paket.vt.eski"
  450. fi
  451. wget -P "$paketdepo" "$sunucu""paket.vt"
  452. #rm /tmp/paket.vt*
  453. exit 1
  454. fi
  455. ryaz 31 "paket veritabanı guncelleme olumsuz."
  456. }
  457. talimat_bilgi(){
  458. local konum HEAD
  459. konum="`find "$talimatname_dizin" -name $1`"
  460. HEAD=`grep -B 12 "build()" $konum/talimat`
  461. echo $HEAD
  462. }
  463. sistem_kontrol(){
  464. paketvt_kontrol
  465. sunucu_kontrol
  466. }
  467. sunucu_kontrol(){
  468. wget -q --spider $sunucu
  469. if [ $? -eq 0 ]; then
  470. ryaz 32 "paket sunucu aktif"
  471. else
  472. ryaz 31 "sunucu erişim dışı"
  473. exit 1
  474. fi
  475. }
  476. gitayar_kontrol(){
  477. if [ ! -f /root/.gitconfig ];then
  478. git_ssl_iptal
  479. git_otokimlik
  480. fi
  481. }
  482. paketvt_kontrol(){
  483. mkdir -p /depo/paketler
  484. if [ ! -f /depo/paketler/paket.vt ];then
  485. touch /depo/paketler/paket.vt
  486. fi
  487. }
  488. pvt_olustur(){
  489. if [ ! -f paket.vt ];then
  490. touch paket.vt
  491. fi
  492. if [ -f "paket.vt" ];then
  493. mv "paket.vt" "paket.vt.eski"
  494. fi
  495. ryaz 32 "paket.vt oluşturuluyor...."
  496. for paket in `ls *.mps.lz`
  497. do
  498. paketad="`echo $paket|cut -d "#" -f1`"
  499. shaek=`sha1sum $paket`
  500. echo $paketad $shaek >> paket.vt
  501. done
  502. ryaz 32 "paket.vt oluşturuldu."
  503. }
  504. yardim(){
  505. echo "yardim"
  506. }
  507. ayarlar() {
  508. while [ "$1" ]; do
  509. case $1 in
  510. -i|--indir)
  511. ikaynak="ag"
  512. kurulum_onay="olumsuz";;
  513. -ik|--inku)
  514. if [ "$3" == "-kok" ] && [ -d "$4" ]; then
  515. kokdizin="$4"
  516. fi
  517. ikaynak="ag" ;;
  518. -ikz|--inkuzo)
  519. ikaynak="ag"
  520. tekrarkur="evet" ;;
  521. -k|--yrku)
  522. if [ "$3" == "-kok" ] && [ -d "$4" ]; then
  523. kokdizin="$4"
  524. tekrarkur="evet"
  525. fi
  526. ikaynak="yerel" ;;
  527. -s|--pksil)
  528. paket_sil "$2" ;;
  529. -d|--pkde)
  530. zorla_derle="yok"
  531. kurulum_onay="olumsuz"
  532. paket_derle "$2" ;;
  533. -zd|--pkzde)
  534. zorla_derle="evet"
  535. kurulum_onay="olumsuz"
  536. paket_derle "$2" ;;
  537. -dk|--pkdk)
  538. paket_derle "$2" ;;
  539. -odk|--pkodk)
  540. paket_derle_oto "$2" ;;
  541. -odkk|--pkodk2)
  542. paket_derle_oto2 "$2" ;;
  543. -ok|--pkok)
  544. paket_kur_oto "$2" ;;
  545. -okl|--pkokl)
  546. paket_kur_liste "$2" ;;
  547. -ko|--pkko)
  548. paket_kur_oto2 "$2" ;;
  549. -kuruld)
  550. paket_inkur_liste_direk "$2" ;;
  551. -kurul)
  552. paket_inkur_liste "$2" ;;
  553. -kur)
  554. paket_inkur_oto "$2" ;;
  555. -pak|--paketle)
  556. if [ ! "$2" ]; then
  557. ryaz 31 "paketlenecek dizin ismi eksik"
  558. exit 1
  559. fi
  560. yeniden_paketle "$2" ;;
  561. -psk|--paksiskur)
  562. if [ ! "$2" ]; then
  563. ryaz 31 "paket liste yok"
  564. exit 1
  565. fi
  566. if [ ! "$3" ]; then
  567. ryaz 31 "hedef dizin yok"
  568. exit 1
  569. fi
  570. sistem_kur "$2" "$3" ;;
  571. -po)
  572. pvt_olustur ;;
  573. -os|--pkos)
  574. if [ ! "$2" ]; then
  575. ryaz 31 "silme listesi yok"
  576. exit 1
  577. fi
  578. paket_sil_oto "$2" ;;
  579. -kl|--kurulu-liste)
  580. ls $VT ;;
  581. -dly|--drly)
  582. if [ -f tumbag.liste ];then
  583. mv tumbag.liste tumbag.liste.eski
  584. fi
  585. if [ -f bag.liste ];then
  586. mv bag.liste bag.liste.eski
  587. fi
  588. touch tumbag.liste
  589. touch bag.liste
  590. derleme_listyap "$2" ;;
  591. -dlb|--drlb)
  592. derleme_listbilgi "$2";;
  593. -b|--pkbl)
  594. paket_bilgi "$2" ;;
  595. -bb|--pkbb)
  596. bagimli_bilgi "$2" | column -t;;
  597. -tb|--pktb)
  598. ters_bagimli "$2" ;;
  599. -tbk|--pktbk)
  600. ters_bagimli_kontrol "$2" ;;
  601. -talb|--talb)
  602. talimat_bilgi "$2" | column -t;;
  603. -Ggit|--gitgun)
  604. git_guncelle ;;
  605. -G|--pvtg)
  606. paketvt_guncelle ;;
  607. -g|--pkgu)
  608. if [ ! "$2" ]; then
  609. ryaz 31 "paket ismi eksik"
  610. exit 1
  611. fi
  612. paket_guncelle "$2";;
  613. -kk|--kurulu-kontrol)
  614. if [ ! "$2" ]; then
  615. ryaz 31 "paket ismi eksik"
  616. exit 1
  617. fi
  618. ryaz 31 `kurulu_kontrol "$2"`;;
  619. -suko)
  620. sunucu_kontrol ;;
  621. -cf|--config-file)
  622. if [ ! "$2" ]; then
  623. echo "ayardosyası gerek $1"
  624. exit 1
  625. fi
  626. ayar_dosyasi="$2"
  627. shift ;;
  628. -tro)
  629. tarihce_yap ;;
  630. -trot)
  631. temel_tarihce="evet"
  632. tarihce_yap ;;
  633. -try)
  634. if [ ! "$2" ]; then
  635. ryaz 31 "tarihce dosyasi eksik $1"
  636. exit 1
  637. fi
  638. tarihce_yukle "$2"
  639. shift ;;
  640. -trl)
  641. tarihce_liste ;;
  642. -trs)
  643. if [ ! "$2" ]; then
  644. ryaz 31 "parametre eksik $1"
  645. exit 1
  646. fi
  647. tarihce_sil "$2"
  648. shift ;;
  649. -v)
  650. ryaz 33 "$betikad $versiyon $iletisim"
  651. exit 0 ;;
  652. -h|--help)
  653. yardim
  654. exit 0 ;;
  655. esac
  656. shift
  657. done
  658. }
  659. ana(){
  660. ayarlar "$@"
  661. if [ "$ikaynak" = "ag" ]; then
  662. local kontroldeg
  663. kkont=`kurulu_kontrol "$2"`
  664. if [ "$kkont" = "degil" ] || [ "$tekrarkur" = "evet" ];then
  665. echo "agdan cekiliyor:" "$2"
  666. pkt=`cat "$paketdepo""paket.vt" | grep "^$2 " | cut -d' ' -f3`
  667. echo $pkt
  668. if [ ! -z "$pkt" -a "$pkt" != "" ]; then
  669. cpaket="${pkt/'#'/'%23'}"
  670. #paket sunucuda varsa
  671. wget -q --spider "$sunucu$cpaket"
  672. #if wget -P /tmp -q "$sunucu$cpaket" > /dev/null; then
  673. if [ $? -eq 0 ]; then
  674. wget -nc -P "$paketdepo" "$sunucu$cpaket"
  675. if [ -f "$paketde""popaket.vt" ];then
  676. ekontdeg=`cat "$paketdepo""paket.vt" | grep "^$2 " | cut -d' ' -f2`
  677. mkontdeg=`md5sum $pkt | cut -d' ' -f1`
  678. fi
  679. if [ "$ekontdeg" != "$mkontdeg" ];then
  680. rm -f $pkt
  681. wget -nc -P "$paketdepo" "$sunucu$cpaket"
  682. fi
  683. if [ "$kurulum_onay" = "evet" ];then
  684. if [ "$tekrarkur" = "evet" ];then
  685. paket_sil "$2" "evet"
  686. fi
  687. icerik_ekle "$paketdepo$pkt"
  688. exit 1
  689. fi
  690. fi
  691. else
  692. ryaz 31 "paket sunucuda yok!( mps -G komutuyla güncelleme yapınız. )"
  693. fi
  694. else
  695. ryaz 31 "$2 paketi zaten kurulu!"
  696. fi
  697. exit 1
  698. fi
  699. if [ "$ikaynak" = "yerel" ]; then
  700. local silme
  701. pkontrol=`basename $2 | grep -w "mps.lz"`
  702. if [ ! -z "$pkontrol" -a "$pkontrol" != "" ]; then
  703. paketad=`echo "$2" | cut -d'#' -f1`
  704. kkont=`kurulu_kontrol "$paketad"`
  705. if [ "$kkont" = "degil" ];then
  706. icerik_ekle "$2"
  707. else
  708. if [ "$tekrarkur" = "hayir" ];then
  709. while true; do
  710. ryaz 31 "$2 paketi zaten kurulu silinip kurulsun mu?"
  711. read -p "e veya h -> " eh
  712. case $eh in
  713. [Ee]* ) silme="e"; break;;
  714. [Hh]* ) break;;
  715. * ) echo "e veya h";;
  716. esac
  717. done
  718. fi
  719. if [ "$silme" = "e" ];then
  720. ryaz 33 "silinecekelerin kontrolu için"
  721. paket_sil "$paketad"
  722. icerik_ekle "$2"
  723. fi
  724. fi
  725. else
  726. ryaz 31 "yerelde mps paketi bulunamadı."
  727. fi
  728. fi
  729. }
  730. ana "$@"
  731. #31 kirmizi
  732. #32 yesil
  733. #33 sari
  734. #34 mavi
  735. #34 mor