mps 36 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625
  1. #!/bin/bash
  2. . /etc/mpsd.conf
  3. if [ -f /etc/mps.conf ];then
  4. . /etc/mps.conf
  5. fi
  6. . /root/bin/fonks.sh
  7. versiyon="0.9.7"
  8. iletisim="milisarge@gmail.com"
  9. paketdepo="/depo/paketler/"
  10. if [ -z ${sunucu+:} ]; then
  11. sunucu="127.0.0.1:8000/"
  12. fi
  13. #sunucu="http://milis.gungre.ch/packages/"
  14. git_sunucu="https://github.com/milisarge/malfs-milis"
  15. ikaynak=""
  16. betikad=${0##*/}
  17. kurulum_onay="evet"
  18. talimatname_dizin="/root/talimatname"
  19. kokdizin="/"
  20. VT="/var/lib/pkg/DB"
  21. TARIHCE_DIZIN="/var/lib/pkg/tarihce"
  22. LOGDIZIN="/var/log/mps"
  23. tekrarkur="hayir"
  24. logdosya=/var/log/mps/mps.log
  25. #temel paket koruma
  26. tpk="evet"
  27. if [ -z ${lokal+:} ]; then
  28. lokal="tr"
  29. fi
  30. if [ -z ${docsil+:} ]; then
  31. docsil="evet"
  32. fi
  33. if [ -z ${yerelsil+:} ]; then
  34. yerelsil="silme"
  35. fi
  36. icerik_ekle(){
  37. paketad=`echo "$1" | cut -d'#' -f1`
  38. paketad=`basename $paketad`
  39. ryaz 34 $paketad" paketi kuruluyor-> $kokdizin"
  40. tar -C /tmp --extract --file=$1 .PRE 1 2> /tmp/$paketad_pre.log
  41. #kos-kur kontrolu
  42. if [ -f /tmp/.PRE ];then
  43. if [ "$kokdizin" == "/" ];then
  44. bash /tmp/.PRE
  45. else
  46. cp /tmp/.PRE $kokdizin/tmp/$paketad.PRE
  47. fi
  48. rm /tmp/.PRE
  49. fi
  50. mkdir -p kur.$paketad &&
  51. tar xf $1 -C kur.$paketad &&
  52. #istenmeyen yerellerin silinmesi
  53. if [ -d kur.$paketad/usr/share/locale ] && [ "$yerelsil" == "evet" ];then
  54. for lkl in `ls kur.$paketad/usr/share/locale/`;do
  55. if [ "$lkl" != "$lokal" ];then rm -r kur.$paketad/usr/share/locale/$lkl; fi
  56. done
  57. fi
  58. #doc dizini silinmesi
  59. if [ -d kur.$paketad/usr/share/doc ] && [ "$docsil" == "evet" ];then
  60. rm -r kur.$paketad/usr/share/doc
  61. fi
  62. mkdir -p $kokdizin/var/lib/pkg/DB/"$paketad" &&
  63. cp -v -afr kur.$paketad/* $kokdizin > kur.$paketad/kurulan
  64. cp kur.$paketad/kurulan /tmp/ &&cat kur.$paketad/kurulan | cut -d '>' -f2 > $kokdizin/var/lib/pkg/DB/"$paketad"/kurulan &&
  65. #mv kur.$paketad/.MTREE /var/lib/pkg/DB/"$paketad"/files &&
  66. mv kur.$paketad/.META $kokdizin/var/lib/pkg/DB/"$paketad"/META &&
  67. #kur-kos calistirilmasi
  68. if [ -f kur.$paketad/.POST ];then
  69. if [ "$kokdizin" == "/" ];then
  70. bash kur.$paketad/.POST
  71. else
  72. cp kur.$paketad/.POST $kokdizin/tmp/$paketad.POST
  73. fi
  74. rm kur.$paketad/.POST
  75. fi
  76. rm -r kur.$paketad
  77. if [ -f $kokdizin/etc/ld.so.conf ];then
  78. ldconfig -r $kokdizin
  79. fi
  80. ryaz 34 $paketad" paketi kuruldu."
  81. loglama "$paketad paketi kuruldu."
  82. }
  83. paket_sil(){
  84. local paket kkont sil_onay oto_silme
  85. paket="$1"
  86. if [ "$2" ]; then
  87. oto_silme="$2"
  88. fi
  89. if [ "$tpk" = "evet" ] && [ -d "$talimatname_dizin/temel/$1" ];then
  90. ryaz 31 "$1 temel sistem paketidir.Silinemez!!!"
  91. hataloglama "$1 temel sistem paketidir.Silinemez!!!"
  92. else
  93. kkont=`kurulu_kontrol "$1"`
  94. if [ "$kkont" = "kurulu" ];then
  95. if [ -f "/var/lib/pkg/DB/$paket/kurulan" ];then
  96. #dizin koruma
  97. kurban_kurtar $1
  98. cat /var/lib/pkg/DB/$paket/kurulan | cut -d '>' -f2 > /tmp/$paket.sil
  99. ryaz 31 "ters bagimliliklar"
  100. ryaz 31 "------------------"
  101. ters_bagimli_kontrol "$paket"
  102. ryaz 31 "------------------"
  103. ryaz 31 "kurban dosyalar"
  104. ryaz 31 "------------------"
  105. silme_kurban_kontrol /tmp/$paket.sil
  106. ryaz 31 "------------------"
  107. if [ "$oto_silme" = "evet" ];then
  108. sil_onay="e"
  109. else
  110. while true; do
  111. ryaz 34 $paket" paketi kaldırılsın mı?";read -p "e veya h-> " eh
  112. case $eh in
  113. [Ee]* ) sil_onay="e"; break;;
  114. [Hh]* ) break;;
  115. * ) echo "e veya h";;
  116. esac
  117. done
  118. fi
  119. if [ "$sil_onay" = "e" ];then
  120. xargs rm -r -f < /tmp/$paket.sil &&
  121. rm -r -f /var/lib/pkg/DB/"$paket" &&
  122. ryaz 34 $paket" paketi silindi."
  123. loglama "$paket paketi silindi."
  124. rm -f /tmp/$paket.sil
  125. else
  126. rm -f /tmp/$paket.sil
  127. fi
  128. else
  129. ryaz 31 "kritik mesaj:kurulanlar dosyası yok."
  130. hataloglama "kritik mesaj:kurulanlar dosyası yok."
  131. fi
  132. elif [ "$kkont" = "degil" ];then
  133. ryaz 32 "paket zaten kurulu değil!"
  134. hataloglama "paket zaten kurulu değil!"
  135. else
  136. ryaz 32 "paket tanımsız!"
  137. hataloglama "paket tanımsız!"
  138. fi
  139. fi
  140. }
  141. paket_ara(){
  142. paket="$1"
  143. for pkt in `cat /depo/paketler/paket.vt | grep $paket | awk '{print $1}'`; do
  144. pakdesc=$(find /root/talimatname -name "$pkt" | xargs -I % sed -n '1{p;q}' %/talimat | sed s'/# Description: //g');
  145. ryaz 34 "$pkt - $pakdesc";
  146. done
  147. }
  148. kelime_bul(){
  149. grep --color -H -ri "$1" /root/talimatname/
  150. }
  151. paket_bilgi2(){
  152. local paket kkont
  153. kkont=`kurulu_kontrol "$1"`
  154. if [ "$kkont" = "kurulu" ];then
  155. paket="$1"
  156. cat /var/lib/pkg/DB/"$paket"/META
  157. elif [ "$kkont" = "degil" ];then
  158. echo "paket kurulu değil!"
  159. else
  160. echo "paket tanımsız!"
  161. fi
  162. }
  163. paket_bilgi(){
  164. local paket kkont
  165. kkont=`kurulu_kontrol "$1"`
  166. if [ "$kkont" = "kurulu" ];then
  167. paket="$1"
  168. satir=`sed -n '1p' < /var/lib/pkg/DB/"$paket"/META`
  169. ryaz 32 "AD:" ${satir:1:${#satir}-1}
  170. satir=`sed -n '2p' < /var/lib/pkg/DB/"$paket"/META`
  171. ryaz 32 "TN:" ${satir:1:${#satir}-1}
  172. satir=`sed -n '3p' < /var/lib/pkg/DB/"$paket"/META`
  173. ryaz 32 "UR:" ${satir:1:${#satir}-1}
  174. satir=`sed -n '4p' < /var/lib/pkg/DB/"$paket"/META`
  175. ryaz 32 "YP:" ${satir:1:${#satir}-1}
  176. satir=`sed -n '5p' < /var/lib/pkg/DB/"$paket"/META`
  177. ryaz 32 "PK:" ${satir:1:${#satir}-1}
  178. satir=`sed -n '6p' < /var/lib/pkg/DB/"$paket"/META`
  179. ryaz 32 "--:" ${satir:1:${#satir}-1}
  180. satir=`sed -n '7p' < /var/lib/pkg/DB/"$paket"/META`
  181. ryaz 32 "VS:" ${satir:1:${#satir}-1}
  182. satir=`sed -n '8p' < /var/lib/pkg/DB/"$paket"/META`
  183. ryaz 32 "RL:" ${satir:1:${#satir}-1}
  184. satir=`sed -n '9p' < /var/lib/pkg/DB/"$paket"/META`
  185. ryaz 32 "DZ:" `date -d @${satir:1:${#satir}-1}`
  186. elif [ "$kkont" = "degil" ];then
  187. echo "paket kurulu değil!"
  188. else
  189. echo "paket tanımsız!"
  190. fi
  191. }
  192. yeniden_paketle(){
  193. cd $1
  194. bsdtar -r -f ../"$1".mps .META
  195. bsdtar -r -f ../"$1".mps *
  196. cd ..
  197. lzip -9 "$1".mps
  198. }
  199. derleme_listyap(){
  200. bagimlist=`bagimlilar "$1"`
  201. if [ "$bagimlist" != "talimatyok" ];then
  202. for bagim in $bagimlist;do
  203. if [ "`cat tumbag.liste | grep $bagim`" != "$bagim" ];then
  204. derleme_listyap "$bagim"
  205. fi
  206. done
  207. if ! grep -Fxq "$1" tumbag.liste
  208. then
  209. ana="`find $talimatname_dizin -name $1`"
  210. echo ${ana#"$talimatname_dizin"}
  211. #sadece genel bagimliliklar derlenecek
  212. echo "$1" >> tumbag.liste
  213. if [ -d "$talimatname_dizin/genel/$1" ];then
  214. echo "$1" >> bag.liste
  215. fi
  216. fi
  217. else
  218. ryaz 31 "$1 talimatı bulunamadı."
  219. hataloglama "$1 talimatı bulunamadı."
  220. exit 1
  221. fi
  222. }
  223. derleme_listbilgi(){
  224. ryaz 34 "yapim asamasında"
  225. }
  226. paket_derle_liste(){
  227. for dpkt in `cat $1`;do
  228. echo $dpkt "derleniyor...."
  229. zorla_derle="yok"
  230. paket_derle $dpkt
  231. done
  232. }
  233. #otomatik derle kontrollu kur
  234. paket_derle_kur(){
  235. tekrarkur="hayir"
  236. mps -dly "$1" && mps -derlist bag.liste
  237. }
  238. oto_derle_kur_paketle(){
  239. mps -G
  240. mps -kur $1 &&
  241. if [ -f "$talimatname_dizin/genel/$1/$1.sira" ];then
  242. ryaz 32 "sıralı derleme yapılacak."
  243. mps -derlist "$talimatname_dizin/genel/$1/$1.sira"
  244. else
  245. mps -derle $1
  246. fi
  247. }
  248. paket_kur_oto(){
  249. local kpkt pkt pak kliste
  250. if [ "$1" = "-H" ];then
  251. ls *.mps.lz > "otokur.list"
  252. kliste="otokur.list"
  253. else
  254. kliste="$1"
  255. fi
  256. for kpkt in `cat $kliste`;do
  257. for pkt in `ls $kpkt* | cut -d'#' -f1`;do
  258. pak=`ls "$pkt#"*`
  259. mps -k "$pak" && mps -kur "$pkt"
  260. done
  261. done
  262. rm -rf otokur.list
  263. }
  264. paket_kur_oto_zorla(){
  265. local kpkt pkt pak kliste
  266. if [ "$1" = "-H" ];then
  267. ls *.mps.lz > "otokur.list"
  268. kliste="otokur.list"
  269. else
  270. kliste="$1"
  271. fi
  272. for kpkt in `cat $kliste`;do
  273. for pkt in `ls $kpkt* | cut -d'#' -f1`;do
  274. pak=`ls "$pkt#"*`
  275. paket_sil "$pkt" "evet"
  276. mps -k "$pak" && mps -kur "$pkt"
  277. done
  278. done
  279. rm -rf otokur.list
  280. }
  281. paket_kur_liste(){
  282. local kpkt pkt pak
  283. for kpkt in `cat $1`;do
  284. for pkt in `ls $kpkt* | cut -d'#' -f1`;do
  285. pak=`ls "$pkt#"*`
  286. mps -k "$pak"
  287. done
  288. done
  289. }
  290. paket_kur_liste_zorla(){
  291. local kpkt pkt pak
  292. for kpkt in `cat $1`;do
  293. for pkt in `ls $kpkt* | cut -d'#' -f1`;do
  294. pak=`ls "$pkt#"*`
  295. paket_sil "$kpkt" "evet"
  296. mps -k "$pak"
  297. done
  298. done
  299. }
  300. #otomatik kontrollu kur
  301. paket_kur_oto2(){
  302. mps -dly "$1" > /dev/null && mps -ok bag.liste
  303. }
  304. paket_inkur_liste_direk(){
  305. local kpkt
  306. for kpkt in `cat $1`;do
  307. mps -ik "$kpkt"
  308. done
  309. }
  310. paket_inkur_liste(){
  311. local kpkt
  312. for kpkt in `cat $1`;do
  313. mps -kur "$kpkt"
  314. done
  315. }
  316. #otomatik kontrollu kur
  317. paket_inkur_oto(){
  318. mps -dly "$1" | grep "bulunamadı"
  319. #derleme_listyap "$1" > mps.log &&
  320. local kpkt
  321. for kpkt in `cat bag.liste`;do
  322. mps -ik "$kpkt"
  323. done
  324. rm -rf *.liste *.eski
  325. }
  326. paket_sil_oto(){
  327. local spkt
  328. for spkt in `cat $1`;do
  329. oto_silme="evet"
  330. paket_sil "$spkt" "$oto_silme"
  331. done
  332. }
  333. paket_sil_oto_onayli(){
  334. local spkt
  335. cat $1
  336. for spkt in `cat $1`;do
  337. paket_sil "$spkt"
  338. done
  339. }
  340. paketsiz_talimatlar(){
  341. for talimat in `ls $talimatname_dizin/genel`;do
  342. if [[ ! $(cat $paketdepo/paket.vt | grep $talimat#) ]] ;then
  343. ack=`grep -e '# Description:' $talimatname_dizin/genel/$talimat/talimat | cut -d':' -f2`
  344. printf '%s = %s \n' "$talimat" "$ack"
  345. fi
  346. done
  347. }
  348. paket_guncelle(){
  349. surum_kontrol $1
  350. devir_kontrol $1
  351. }
  352. paket_guncelle_oto(){
  353. mps -dly "$1" > /dev/null &&
  354. local kpkt
  355. for kpkt in `cat bag.liste`;do
  356. mps -g "$kpkt"
  357. done
  358. rm bag.liste tumbag.liste
  359. }
  360. sistem_guncelle(){
  361. # güncellemede atlanacak paketler.
  362. esgec=(xorg xorg-font xorg-proto kernel-lts vlc)
  363. local kpkt
  364. local pk_guncelle
  365. mps -GG
  366. mps -G
  367. for kpkt in `mps -kl`;do
  368. pk_guncelle="e"
  369. case "${esgec[@]}" in *"$kpkt"*) pk_guncelle="h" ;; esac
  370. if [ "$pk_guncelle" = "e" ];then
  371. paket_guncelle "$kpkt"
  372. else
  373. ryaz 31 $kpkt "güncellemesi atlandı"
  374. fi
  375. done
  376. }
  377. surum_kontrol(){
  378. local ksurum version pkt dusuk yuksek durum
  379. durum="belirsiz"
  380. satir=`sed -n '7p' < /var/lib/pkg/DB/"$1"/META`
  381. ksurum=${satir:1:${#satir}-1}
  382. pkt="`find $talimatname_dizin -name $1`"
  383. source $pkt/talimat
  384. dusuk=`echo -e "$ksurum\n$version" | sort -V | head -n1`
  385. if [ "$ksurum" = "$version" ];then
  386. durum="guncel"
  387. ryaz 33 "$1 sürümü güncel"
  388. else
  389. if [ "$ksurum" = "$dusuk" ];then
  390. durum="yukselt"
  391. else
  392. durum="dusur"
  393. fi
  394. gun_onay="h"
  395. if [ "$durum" <> "guncel" ];then
  396. while true; do
  397. ryaz 34 "$1 sürüm $durum""me işlemi uygulanacak. $ksurum <> $version ";read -p "e veya h-> " eh
  398. case $eh in
  399. [Ee]* ) gun_onay="e"; break;;
  400. [Hh]* ) break;;
  401. * ) echo "e veya h";;
  402. esac
  403. done
  404. if [ "$gun_onay" = "e" ];then
  405. paket_sil "$1" "evet"
  406. paket_inkur_oto $1
  407. ryaz 33 "$1 sürüm güncellemesi yapıldı"
  408. else
  409. ryaz 31 "$1 sürüm güncellemesi yapılmadı"
  410. hataloglama "$1 sürüm güncellemesi yapılmadı"
  411. fi
  412. fi
  413. fi
  414. }
  415. devir_kontrol(){
  416. local kdevir release pkt dusuk yuksek durum gun_onay
  417. durum="belirsiz"
  418. satir=`sed -n '8p' < /var/lib/pkg/DB/"$1"/META`
  419. kdevir=${satir:1:${#satir}-1}
  420. pkt="`find $talimatname_dizin -name $1`"
  421. source $pkt/talimat
  422. dusuk=`echo -e "$kdevir\n$release" | sort -V | head -n1`
  423. if [ "$kdevir" = "$release" ];then
  424. durum="guncel"
  425. ryaz 33 "$1 deviri güncel"
  426. else
  427. if [ "$kdevir" = "$dusuk" ];then
  428. durum="yukselt"
  429. else
  430. durum="dusur"
  431. fi
  432. gun_onay="h"
  433. if [ "$durum" <> "guncel" ];then
  434. while true; do
  435. ryaz 34 "$1 devir $durum""me işlemi uygulanacak. $kdevir <> $release ";read -p "e veya h-> " eh
  436. case $eh in
  437. [Ee]* ) gun_onay="e"; break;;
  438. [Hh]* ) break;;
  439. * ) echo "e veya h";;
  440. esac
  441. done
  442. if [ "$gun_onay" = "e" ];then
  443. paket_sil "$1" "evet"
  444. paket_inkur_oto $1
  445. ryaz 33 "$1 devir güncellemesi yapıldı"
  446. else
  447. ryaz 31 "$1 devir güncellemesi yapılmadı"
  448. hataloglama "$1 devir güncellemesi yapılmadı"
  449. fi
  450. fi
  451. fi
  452. }
  453. paket_derle(){
  454. #eski derleme kalıntılarını temizle
  455. if [ -d tmp.* ];then
  456. rm -r tmp.*
  457. fi
  458. kaynakdizin_kontrol
  459. local konum derleme_onay eh bagimd
  460. derleme_onay="h"
  461. konum="`find "$talimatname_dizin" -name $1`"
  462. if [ -d "$konum" ];then
  463. mkdir -p tmp."$1"
  464. cp -a $konum/* tmp."$1"/
  465. cd tmp."$1"
  466. if [ "`kurulu_kontrol "$1"`" = "kurulu" ] && [ "$zorla_derle" = "yok" ];then
  467. derleme_onay="h"
  468. else
  469. echo "-----"
  470. derleme_onay="e"
  471. fi
  472. if [ "$derleme_onay" = "e" ];then
  473. ryaz 33 "$1" "derleniyor...."
  474. #mpsd -d > /dev/null
  475. #mpsd -d
  476. echo "------------------------"
  477. mpsd -d 2>&1|tee /tmp/"$1".log
  478. if ( grep "^=======>" /tmp/"$1".log| tail -1 |grep "ERROR" > /dev/null);then
  479. echo "derleme sisteminde hata oluştu -----> " /tmp/"$1".log
  480. exit 1
  481. fi
  482. if [ "$kurulum_onay" = "evet" ];then
  483. for kpkt in `ls $1* | cut -d'#' -f1`;do
  484. mps -k "$kpkt#"*
  485. done
  486. fi
  487. mv *.mps.lz ../
  488. else
  489. ryaz 32 "paket zaten kurulu,yine de derlemek için:
  490. mps -zd $1"
  491. fi
  492. cd ..
  493. rm -r tmp."$1"
  494. else
  495. ryaz 31 "talimat dosyası bulunamadı."
  496. hataloglama "talimat dosyası bulunamadı."
  497. fi
  498. }
  499. bagimlilar(){
  500. local bagimd konum
  501. konum="`find "$talimatname_dizin" -name $1`"
  502. if [ -f "$konum/talimat" ];then
  503. bagimd=`cat $konum/talimat | grep "Depends on" | cut -d':' -f2`
  504. if [ -n "$bagimd" ]; then
  505. bagimd=`echo "$bagimd" | sed 's/,/ /g'`
  506. #sıralı gösterme
  507. echo `echo "$bagimd" | sed 's/,/ /g'`
  508. fi
  509. else
  510. echo "talimatyok"
  511. exit 1
  512. fi
  513. }
  514. bagimli_bilgi(){
  515. local bagimd konum bag
  516. konum="`find "$talimatname_dizin" -name $1`"
  517. bagimd=`cat $konum/talimat | grep "Depends" | cut -d':' -f2`
  518. if [ -n "$bagimd" ]; then
  519. bagimd=`echo "$bagimd" | sed 's/,/ /g'`
  520. #sıralı gösterme
  521. #echo `echo "$bagimd" | sed 's/,/ /g'`
  522. #kurulu kontrollu gosterim
  523. for bag in $bagimd;do
  524. echo $bag "`kurulu_kontrol $bag`"
  525. done
  526. fi
  527. echo "$1" "`kurulu_kontrol $1`"
  528. }
  529. bagimli_bilgi_dosyala(){
  530. rm -f "$1.gerekler.liste"
  531. local bagimd konum bag
  532. konum="`find "$talimatname_dizin" -name $1`"
  533. bagimd=`cat $konum/talimat | grep "Depends" | cut -d':' -f2`
  534. if [ -n "$bagimd" ]; then
  535. bagimd=`echo "$bagimd" | sed 's/,/ /g'`
  536. #sıralı gösterme
  537. #echo `echo "$bagimd" | sed 's/,/ /g'`
  538. #kurulu kontrollu gosterim
  539. for bag in $bagimd;do
  540. echo $bag >> "$1.gerekler.liste"
  541. done
  542. fi
  543. echo "$1" >> "$1.gerekler.liste"
  544. }
  545. ters_bagimli(){
  546. local ara
  547. ara=" $1 "
  548. sy=`grep -o "/" <<<"$talimatname_dizin" | wc -l`
  549. grep -rli "$ara" "$talimatname_dizin" | cut -d'/' -f`expr $sy + 3`
  550. }
  551. silme_kurban_kontrol(){
  552. local dizin
  553. for f in $(cat $1) ; do
  554. dizin="${f%\'}"
  555. dizin="${dizin#\'}"
  556. if [ -d "$dizin" ];then
  557. for g in `ls "$dizin"` ; do
  558. if ! grep -Fxq " '$dizin/$g'" "$1"
  559. then
  560. echo "$dizin/$g"
  561. fi
  562. done
  563. fi
  564. done
  565. }
  566. log_analiz(){
  567. local zaman durum
  568. zaman=$1
  569. durum=$2
  570. if [ -f "/var/log/mps/mps.log" ];then
  571. cat $logdosya | grep "$zaman" | grep "$durum" | cut -d' ' -f3
  572. else
  573. ryaz 31 "mps.log bulunamadı!"
  574. hataloglama "mps.log bulunamadı!"
  575. fi
  576. }
  577. kurban_kurtar(){
  578. local dizin paket
  579. paket=$1
  580. if [ -f /var/lib/pkg/DB/$paket/kurulan ];then
  581. cat /var/lib/pkg/DB/$paket/kurulan | cut -d '>' -f2 > /tmp/$paket.sil
  582. for f in $(cat /tmp/$paket.sil) ; do
  583. dizin="${f%\'}"
  584. dizin="${dizin#\'}"
  585. if [ -d "$dizin" ];then
  586. for g in `ls "$dizin"` ; do
  587. if ! grep -Fxq " '$dizin/$g'" "/tmp/$paket.sil"
  588. then
  589. if [ -f /tmp/$paket.kurtar ];then
  590. rm /tmp/$paket.kurtar
  591. fi
  592. echo " '$dizin'" >> "/tmp/$paket.kurtar"
  593. fi
  594. done
  595. fi
  596. done
  597. if [ -f /tmp/$paket.kurtar ];then
  598. mv /var/lib/pkg/DB/$paket/kurulan /var/lib/pkg/DB/$paket/ilk.kurulan
  599. grep -v -F -x -f "/tmp/$paket.kurtar" "/tmp/$paket.sil" > /var/lib/pkg/DB/$paket/kurulan
  600. ryaz 32 "$paket kurban dosyaları kurtarıldı."
  601. else
  602. ryaz 32 "$paket kurban dosyası yok."
  603. fi
  604. rm -f /tmp/$paket.sil
  605. else
  606. ryaz 31 "kurulan paket yok!"
  607. hataloglama "kurulan paket yok!"
  608. fi
  609. }
  610. ters_bagimli_kontrol(){
  611. ters_bagimli "$1" | sort > tersb.liste
  612. ls /var/lib/pkg/DB/ | sed "/$1/d" | sort > simdiki.liste
  613. comm -12 tersb.liste simdiki.liste
  614. rm tersb.liste simdiki.liste
  615. }
  616. kurulu_kontrol(){
  617. if [ -d "$kokdizin/var/lib/pkg/DB/$1" ];then
  618. echo "kurulu"
  619. exit 1
  620. fi
  621. if [[ $(find $talimatname_dizin -name $1) ]];then
  622. echo "degil"
  623. else
  624. echo "tanimsiz"
  625. fi
  626. exit 1
  627. }
  628. sistem_kur(){
  629. local spaket
  630. for spaket in `cat $1`;do
  631. ./$betikad -ik "$spaket" -kok $2;
  632. done
  633. }
  634. kaynakdizin_kontrol(){
  635. if [ ! -d $DERLEME_KAYNAKDIZIN ];then
  636. mkdir $DERLEME_KAYNAKDIZIN
  637. fi
  638. }
  639. logdizin_kontrol(){
  640. if [ ! -d $kokdizin$LOGDIZIN ];then
  641. mkdir $kokdizin$LOGDIZIN
  642. fi
  643. if [ ! -d $kokdizin$LOGDIZIN/derleme ];then
  644. mkdir $kokdizin$LOGDIZIN/derleme
  645. fi
  646. if [ ! -f $kokdizin$LOGDIZIN/mps.log ];then
  647. touch $kokdizin$LOGDIZIN/mps.log
  648. fi
  649. if [ ! -f $kokdizin$LOGDIZIN/mps-hata.log ];then
  650. touch $kokdizin$LOGDIZIN/mps-hata.log
  651. fi
  652. if [ ! -f $kokdizin$LOGDIZIN/mps-git.log ];then
  653. touch $kokdizin$LOGDIZIN/mps-git.log
  654. fi
  655. }
  656. tarihce_dkontrol(){
  657. if [ ! -d $TARIHCE_DIZIN ];then
  658. mkdir $TARIHCE_DIZIN
  659. fi
  660. }
  661. temel_tarihce_kontrol(){
  662. if [ ! -f $TARIHCE_DIZIN/temel-pkvt.tar.lz ];then
  663. tarihce_olustur "temel"
  664. fi
  665. }
  666. tarihce_liste(){
  667. tarihce_dkontrol
  668. ls $TARIHCE_DIZIN/
  669. }
  670. tarihce_yap(){
  671. tarihce_dkontrol
  672. local t_isim
  673. if [ "$temel_tarihce" = "evet" ];then
  674. t_isim="temel"
  675. else
  676. t_isim=`date +%m-%d-%y.%H%M%S`
  677. fi
  678. tarihce_olustur "$t_isim"
  679. }
  680. tarihce_olustur(){
  681. bsdtar -P -r -f $TARIHCE_DIZIN/"$1"-pkvt.tar $VT
  682. lzip -9 $TARIHCE_DIZIN/"$1"-pkvt.tar
  683. }
  684. tarihce_yukle(){
  685. tarihce_dkontrol
  686. local islem_onay cikis
  687. sil_onay="h"
  688. if [ -f $TARIHCE_DIZIN/"$1-pkvt.tar.lz" ];then
  689. bsdtar -p -o -C /tmp -xf $TARIHCE_DIZIN/"$1-pkvt.tar.lz" 2>/dev/null
  690. ls /tmp/var/lib/pkg/DB/ > hedef.pkvt
  691. ls /var/lib/pkg/DB/ > simdiki.pkvt
  692. grep -v -F -x -f hedef.pkvt simdiki.pkvt > sil.liste
  693. grep -v -F -x -f simdiki.pkvt hedef.pkvt > kur.liste
  694. #rm hedef.pkvt simdiki.pkvt
  695. rm -r /tmp/var
  696. cikis=""
  697. if [ -s sil.liste ];then
  698. ryaz 32 "silinecekler"
  699. ryaz 32 "------------"
  700. cat sil.liste
  701. fi
  702. if [ -s kur.liste ];then
  703. ryaz 32 "kurulacaklar"
  704. ryaz 32 "------------"
  705. cat kur.liste
  706. fi
  707. if [ ! -s sil.liste ] && [ ! -s kur.liste ];then
  708. ryaz 32 "sistem zaten hedef durumda!"
  709. exit 1
  710. fi
  711. while true; do
  712. ryaz 34 "otomatik geri dönüşüm başlasın mı?";read -p "e veya h-> " eh
  713. case $eh in
  714. [Ee]* ) islem_onay="e"; break;;
  715. [Hh]* ) break;;
  716. * ) echo "e veya h";;
  717. esac
  718. done
  719. if [ "$islem_onay" = "e" ];then
  720. mps -os sil.liste
  721. mps -kurul kur.liste
  722. mv sil.liste silinenler.liste
  723. mv kur.liste kurulanlar.liste
  724. exit 1
  725. fi
  726. mv sil.liste sil_iptal.liste
  727. mv kur.liste kur_iptal.liste
  728. else
  729. ryaz 31 "ilgili tarihce dosyası bulunamadı!"
  730. hataloglama "ilgili tarihce dosyası bulunamadı!"
  731. fi
  732. }
  733. tarihce_sil(){
  734. tarihce_dkontrol
  735. if [ -f $TARIHCE_DIZIN/"$1-pkvt.tar.lz" ];then
  736. rm -f $TARIHCE_DIZIN/"$1-pkvt.tar.lz"
  737. else
  738. ryaz 31 "ilgili tarihce dosyası bulunamadı!"
  739. hataloglama "ilgili tarihce dosyası bulunamadı!"
  740. fi
  741. }
  742. sunucu_ayarla(){
  743. wget -q --spider "$1/paket.vt"
  744. yenisun="$1"
  745. if [ $? -eq 0 ]; then
  746. sed -i.bak 's/^\(sunucu=\).*/\1"xverix\/"/' /etc/mps.conf
  747. sed -i "s|xverix|$1|" /etc/mps.conf
  748. mps -sun
  749. else
  750. ryaz 31 "Tanımsız paket sunucusu!"
  751. hataloglama "Tanımsız paket sunucusu!"
  752. fi
  753. }
  754. loglama(){
  755. logdizin_kontrol
  756. echo "$(date +'%F %T') $1" >> "$kokdizin/$LOGDIZIN/mps.log"
  757. }
  758. hataloglama(){
  759. logdizin_kontrol
  760. echo "$(date +'%F %T') $1" >> "$kokdizin/$LOGDIZIN/mps-hata.log"
  761. }
  762. dosyadan_talimat_islem(){
  763. local dosya
  764. dosya=$1
  765. urlkont='(https?|ftp|file)://[-A-Za-z0-9\+&@#/%?=~_|!:,.;]*[-A-Za-z0-9\+&@#/%=~_|]'
  766. if [[ $dosya =~ $urlkont ]]
  767. then
  768. ryaz 32 "talimat linkten cekilecek"
  769. gdosya=`mktemp`
  770. wget $2 $dosya -O $gdosya
  771. dosya=$gdosya
  772. fi
  773. if [[ $2 =~ "-6" ]]; then
  774. ryaz 32 "talimat linkten cekilecek"
  775. gdosya=`mktemp`
  776. wget $2 $dosya -O $gdosya
  777. dosya=$gdosya
  778. fi
  779. if [ ! -f $dosya ];then
  780. ryaz 31 "$dosya talimat dosyasi yok!"
  781. hataloglama "$dosya talimat dosyasi yok!"
  782. exit 1
  783. fi
  784. local paketisim
  785. paketisim=`grep -ri 'name=' $dosya | cut -d'=' -f 2`
  786. if [ ! -n "$paketisim" ]; then
  787. ryaz 31 "paket ismi degiskeni bulunamadı!"
  788. hataloglama "paket ismi degiskeni bulunamadı!"
  789. exit 1
  790. fi
  791. if [ ! -f /root/talimatname/genel/$paketisim ];then
  792. mkdir /root/talimatname/genel/$paketisim
  793. cp -f $dosya /root/talimatname/genel/$paketisim/talimat
  794. ryaz 32 "$paketisim talimatı hazırlandı."
  795. else
  796. ryaz 31 "$paketisim talimatı zaten talimatnamede var!"
  797. hataloglama "$paketisim talimatı zaten talimatnamede var!"
  798. fi
  799. }
  800. talimat_olustur(){
  801. if [ "$1" = '?' ];then
  802. ryaz 34 "kullanım : mps -to paket_ismi"
  803. else
  804. local name
  805. name=$1
  806. mkdir -p $name
  807. tee "$name/talimat" > /dev/null <<EOF
  808. # description:x
  809. # url:x
  810. # packager:milisarge
  811. # Depends on:
  812. name=$name
  813. version=1
  814. release=1
  815. source=()
  816. build () {
  817. cd name-version
  818. ./autogen.sh
  819. ./configure --prefix=/usr
  820. make
  821. make DESTDIR=$PKG install
  822. }
  823. EOF
  824. ryaz 34 $name "talimatı oluşturuldu."
  825. fi
  826. }
  827. git_guncelle() {
  828. kaynakdizin_kontrol
  829. gitayar_kontrol
  830. cd $DERLEME_KAYNAKDIZIN
  831. #git sunucudan guncelleme
  832. ryaz 33 "git sunucudan güncelleme çekiliyor."
  833. if [ ! -d milis.git ];then
  834. git clone $git_sunucu milis.git
  835. rsync -av /sources/milis.git/rootfs/* /
  836. else
  837. cd milis.git
  838. git pull >& $LOGDIZIN/mps-git.log
  839. if grep -q "Already\ up-to-date" $LOGDIZIN/mps-git.log; then
  840. ryaz 32 "git deposu güncel."
  841. else
  842. #ryaz 32 `cat $LOGDIZIN/mps-git.log`
  843. ryaz 32 "git deposu güncellendi."
  844. fi
  845. #baslangic betiklerinin guncellenmesi
  846. rsync -aviz -q --delete /sources/milis.git/rootfs/lib/services/* /lib/services/
  847. fi
  848. cd `dirname $talimatname_dizin`
  849. ryaz 33 "yerele eşitleniyor."
  850. rm -r $talimatname_dizin
  851. mkdir -p $talimatname_dizin
  852. rsync -aviz -q --delete $DERLEME_KAYNAKDIZIN/milis.git/talimatname/ $talimatname_dizin
  853. rm -r `dirname $talimatname_dizin`/bin/*
  854. rsync -aviz -q --delete $DERLEME_KAYNAKDIZIN/milis.git/bin/ `dirname $talimatname_dizin`/bin
  855. rm -r `dirname $talimatname_dizin`/ayarlar/*
  856. rsync -aviz -q --delete $DERLEME_KAYNAKDIZIN/milis.git/ayarlar/ `dirname $talimatname_dizin`/ayarlar
  857. #ikili dosyaların /usr/bin altına kısayol atılması
  858. for i in /root/bin/*; do
  859. j=`basename $i`
  860. if [ ! -f /usr/bin/$j ];then
  861. ln -s /root/bin/$j /usr/bin/$j
  862. fi
  863. done
  864. ryaz 32 "yerele eşitleme tamam."
  865. }
  866. git_proje_kur(){
  867. local proje proj_dizin git_link
  868. git_link="https://github.com/milisarge"
  869. proje="$1"
  870. proj_dizin="/opt"
  871. mkdir -p $proj_dizin
  872. if [ -d "$proj_dizin/$proje" ];then
  873. cd $proj_dizin/$proje
  874. git pull
  875. if [ -f mops ];then
  876. . mops
  877. mops_gun
  878. fi
  879. else
  880. git clone "$git_link/$proje" "$proj_dizin/$proje"
  881. cd $proj_dizin/$proje
  882. if [ -f mops ];then
  883. . mops
  884. mops_kur
  885. mops_sil
  886. mops_gun
  887. fi
  888. fi
  889. }
  890. servis_kur(){
  891. cd /sources/milis.git/ayarlar/servisler
  892. if make kur-$1
  893. then
  894. ryaz 32 "$1 servisi kuruldu"
  895. else
  896. ryaz 31 "$1 servisi kurulum olumsuz!!!"
  897. hataloglama "$1 servisi kurulum olumsuz!!!"
  898. fi
  899. cd -
  900. }
  901. servis_sil(){
  902. cd /sources/milis.git/ayarlar/servisler
  903. if make sil-$1
  904. then
  905. ryaz 32 "$1 servisi silindi"
  906. else
  907. ryaz 31 "$1 servisi silme olumsuz!!!"
  908. hataloglama "$1 servisi silme olumsuz!!!"
  909. fi
  910. cd -
  911. }
  912. paketvt_guncelle(){
  913. temel_tarihce_kontrol
  914. wget -q --spider "$sunucu""paket.vt"
  915. #if wget -P /tmp -q "$sunucu""paket.vt" > /dev/null; then
  916. if [ $? -eq 0 ]; then
  917. ryaz 32 $sunucu
  918. ryaz 32 "paket veritabanı güncelleniyor." "$paketdepo""paket.vt"
  919. if [ -f "$paketdepo""paket.vt" ];then
  920. mv "$paketdepo""paket.vt" "$paketdepo""paket.vt.eski"
  921. fi
  922. wget -q --show-progress -P "$paketdepo" "$sunucu""paket.vt"
  923. #rm /tmp/paket.vt*
  924. mps -kudo
  925. exit 1
  926. fi
  927. ryaz 31 "paket veritabanı güncelleme olumsuz."
  928. hataloglama "paket veritabanı güncelleme olumsuz."
  929. }
  930. talimat_bilgi(){
  931. local konum HEAD
  932. konum="`find "$talimatname_dizin" -name $1`"
  933. HEAD=`grep -B 12 "build()" $konum/talimat`
  934. echo $HEAD
  935. }
  936. sistem_kontrol(){
  937. paketvt_kontrol
  938. sunucu_kontrol
  939. }
  940. sunucu_kontrol(){
  941. wget -q --spider $sunucu
  942. if [ $? -eq 0 ]; then
  943. ryaz 32 "paket sunucu aktif"
  944. else
  945. ryaz 31 "sunucu erişim dışı"
  946. hataloglama "sunucu erişim dışı"
  947. exit 1
  948. fi
  949. }
  950. gitayar_kontrol(){
  951. if [ ! -f /root/.gitconfig ];then
  952. git_ssl_iptal
  953. git_otokimlik
  954. fi
  955. }
  956. kirik_kontrol_sistem(){
  957. local onek sonek
  958. onek="'"
  959. sonek="'"
  960. for paket in `ls /var/lib/pkg/DB/`
  961. do
  962. ryaz 33 $paket "kontrol ediliyor."
  963. kirik_kontrol_paket $paket
  964. ryaz 33 $paket "kontrol edildi."
  965. done
  966. }
  967. kirik_kontrol_paket(){
  968. local onek sonek
  969. onek="'"
  970. sonek="'"
  971. for kdosya in `kurulum_dosya_listele $1`
  972. do
  973. dosya=${kdosya#$onek}
  974. dosya=${dosya%$sonek}
  975. #echo "${dosya}"
  976. if [ -f $dosya ];then
  977. if [[ $(milis-ldd -d $dosya | grep not\ found) ]] ;then
  978. echo $kdosya
  979. fi
  980. fi
  981. done
  982. }
  983. kurulum_dogrulama(){
  984. for kuruland in `ls $VT`
  985. do
  986. if [ ! -f "$VT/$kuruland/kurulan" ]; then
  987. ryaz 32 "$kuruland hasarlı kurulum tesbiti!"
  988. rm -r $VT/$kuruland
  989. mps -i $kuruland
  990. mps -k "$paketdepo/$kuruland"*.mps.lz
  991. ryaz 32 "$kuruland hasarlı kurulum onarıldı."
  992. fi
  993. done
  994. }
  995. kurulum_dosya_listele(){
  996. cat "$VT/$1/kurulan"
  997. }
  998. # bir dosyanın kurulmuş hangi pakette olduğunu bulur.
  999. kurulan_dosya_bul(){
  1000. grep -rli "$1" "$VT/" | cut -d "/" -f6
  1001. }
  1002. paketvt_kontrol(){
  1003. mkdir -p /depo/paketler
  1004. if [ ! -f /depo/paketler/paket.vt ];then
  1005. touch /depo/paketler/paket.vt
  1006. fi
  1007. }
  1008. pvt_olustur(){
  1009. if [ ! -f paket.vt ];then
  1010. touch paket.vt
  1011. fi
  1012. if [ -f "paket.vt" ];then
  1013. mv "paket.vt" "paket.vt.eski"
  1014. fi
  1015. ryaz 32 "paket.vt oluşturuluyor...."
  1016. for paket in `ls *.mps.lz`
  1017. do
  1018. paketad="`echo $paket|cut -d "#" -f1`"
  1019. shaek=`sha1sum $paket`
  1020. echo $paketad $shaek >> paket.vt
  1021. done
  1022. ryaz 32 "paket.vt oluşturuldu."
  1023. }
  1024. paket_indir(){
  1025. local pkt
  1026. if [ -f "$paketdepo""paket.vt" ];then
  1027. pkt=`cat "$paketdepo""paket.vt" | grep "^$1 " | cut -d' ' -f3`
  1028. ekontdeg=`cat "$paketdepo""paket.vt" | grep "^$1 " | cut -d' ' -f2`
  1029. cpaket="${pkt/'#'/'%23'}"
  1030. wget -nc -q --show-progress -P "$paketdepo" "$sunucu$cpaket"
  1031. if [[ "$?" != 0 ]]; then
  1032. ryaz 31 "indirme hatalı"
  1033. hataloglama "indirme hatalı"
  1034. else
  1035. ryaz 34 "$1 indirildi"
  1036. fi
  1037. mkontdeg=`sha1sum "$paketdepo$pkt" | cut -d' ' -f1`
  1038. if [ "$ekontdeg" != "$mkontdeg" ];then
  1039. ryaz 31 "sha1sum uyusmaslik tesbit edildi,paket tekrar indiriliyor."
  1040. hataloglama "sha1sum uyusmaslik tesbit edildi,paket tekrar indiriliyor."
  1041. rm -f "$paketdepo$pkt"
  1042. paket_indir "$1"
  1043. fi
  1044. fi
  1045. }
  1046. yardim(){
  1047. echo "yardim"
  1048. }
  1049. ayarlar() {
  1050. while [ "$1" ]; do
  1051. case $1 in
  1052. -i|--indir)
  1053. ikaynak="ag"
  1054. kurulum_onay="olumsuz";;
  1055. -ik|--inku)
  1056. if [ "$3" == "-kok" ] && [ -d "$4" ]; then
  1057. kokdizin="$4"
  1058. fi
  1059. ikaynak="ag" ;;
  1060. -ikz|--inkuzo)
  1061. ikaynak="ag"
  1062. tekrarkur="evet" ;;
  1063. -k|--yrku)
  1064. if [ "$3" == "-kok" ] && [ -d "$4" ]; then
  1065. kokdizin="$4"
  1066. tekrarkur="evet"
  1067. fi
  1068. ikaynak="yerel" ;;
  1069. -s|sil)
  1070. if [[ "$2" == "py-"* ]]; then
  1071. pypaket=`echo "$2" | cut -d'-' -f 2`
  1072. echo $pypaket "pip2 ile silinecek"
  1073. pip uninstall $pypaket
  1074. exit 1
  1075. fi
  1076. if [[ "$2" == "py3-"* ]]; then
  1077. pypaket=`echo "$2" | cut -d'-' -f 2`
  1078. echo $pypaket "pip3 ile silinecek"
  1079. pip3 uninstall $pypaket
  1080. exit 1
  1081. fi
  1082. paket_sil "$2" ;;
  1083. -sz|zorsil)
  1084. paket_sil "$2" "evet";;
  1085. -S|silgrub)
  1086. mps -bbd "$2"
  1087. paket_sil_oto_onayli "$2.gerekler.liste" ;;
  1088. -pa|ara)
  1089. paket_ara "$2" ;;
  1090. bul)
  1091. kelime_bul "$2" ;;
  1092. -d|--pkde)
  1093. zorla_derle="yok"
  1094. kurulum_onay="olumsuz"
  1095. paket_derle "$2" ;;
  1096. -zd|--pkzde)
  1097. zorla_derle="evet"
  1098. kurulum_onay="olumsuz"
  1099. paket_derle "$2" ;;
  1100. odkp)
  1101. oto_derle_kur_paketle "$2" ;;
  1102. -dk|--pkdk)
  1103. paket_derle "$2" ;;
  1104. -derlist)
  1105. paket_derle_liste "$2" ;;
  1106. -derle)
  1107. paket_derle_kur "$2" ;;
  1108. -ok|--pkok)
  1109. paket_kur_oto "$2" ;;
  1110. -okz)
  1111. paket_kur_oto_zorla "$2" ;;
  1112. -okl|--pkokl)
  1113. paket_kur_liste "$2" ;;
  1114. -oklz)
  1115. paket_kur_liste_zorla "$2" ;;
  1116. -kh)
  1117. local templist
  1118. templist=`mktemp`
  1119. ls *.mps.lz > $templist
  1120. mps -okz -H $templist ;;
  1121. -ko|--pkko)
  1122. paket_kur_oto2 "$2" ;;
  1123. -kuruld)
  1124. paket_inkur_liste_direk "$2" ;;
  1125. -kurul)
  1126. paket_inkur_liste "$2" ;;
  1127. -kur)
  1128. paket_inkur_oto "$2" ;;
  1129. kur)
  1130. if [[ "$2" == "py-"* ]]; then
  1131. pypaket=`echo "$2" | cut -d'-' -f 2`
  1132. echo $pypaket "pip2 ile kurulacak"
  1133. pip install $pypaket
  1134. exit 1
  1135. fi
  1136. if [[ "$2" == "py3-"* ]]; then
  1137. pypaket=`echo "$2" | cut -d'-' -f 2`
  1138. echo $pypaket "pip3 ile kurulacak"
  1139. pip3 install $pypaket
  1140. exit 1
  1141. fi
  1142. if [[ "$2" == *"mps.lz"* ]]; then
  1143. if [ "$3" == "-kok" ] && [ -d "$4" ]; then
  1144. kokdizin="$4"
  1145. tekrarkur="evet"
  1146. fi
  1147. ikaynak="yerel"
  1148. else
  1149. paket_inkur_oto "$2"
  1150. fi ;;
  1151. #özel git projesi kurmak için
  1152. gitkur)
  1153. git_proje_kur "$2" ;;
  1154. #ilgili paketin servisini kurar
  1155. serkur)
  1156. servis_kur "$2" ;;
  1157. #ilgili paketin servisini siler
  1158. sersil)
  1159. servis_sil "$2" ;;
  1160. kurkos)
  1161. local pkt
  1162. pkt="`find $talimatname_dizin -name $2`"
  1163. if [ -f $pkt/$2.kur-kos ];then
  1164. bash $pkt/$2.kur-kos
  1165. else
  1166. ryaz 31 "$2 kur-kos yok!"
  1167. hataloglama "$2 kur-kos yok!"
  1168. fi ;;
  1169. koskur)
  1170. local pkt
  1171. pkt="`find $talimatname_dizin -name $2`"
  1172. if [ -f $pkt/$2.kos-kur ];then
  1173. bash $pkt/$2.kos-kur
  1174. else
  1175. ryaz 31 "$2 kos-kur yok!"
  1176. hataloglama "$2 kos-kur yok!"
  1177. fi ;;
  1178. silkos)
  1179. local pkt
  1180. pkt="`find $talimatname_dizin -name $2`"
  1181. if [ -f $pkt/$2.sil-kos ];then
  1182. bash $pkt/$2.sil-kos
  1183. else
  1184. ryaz 31 "$2 sil-kos yok!"
  1185. hataloglama "$2 sil-kos yok!"
  1186. fi ;;
  1187. kossil)
  1188. local pkt
  1189. pkt="`find $talimatname_dizin -name $2`"
  1190. if [ -f $pkt/$2.kos-sil ];then
  1191. bash $pkt/$2.kos-sil
  1192. else
  1193. ryaz 31 "$2 kos-sil yok!"
  1194. hataloglama "$2 kos-sil yok!"
  1195. fi ;;
  1196. -kdl)
  1197. if [ ! "$2" ]; then
  1198. ryaz 31 "paket ismi eksik"
  1199. hataloglama "(-kdl) paket ismi eksik"
  1200. exit 1
  1201. fi
  1202. kurulum_dosya_listele "$2" ;;
  1203. #kırık kontrol paket: bir paketin sistemde kırık kontrolü
  1204. -kkp)
  1205. if [ ! "$2" ]; then
  1206. ryaz 31 "paket ismi eksik"
  1207. hataloglama "(-kkp) paket ismi eksik"
  1208. exit 1
  1209. fi
  1210. kirik_kontrol_paket "$2" ;;
  1211. #kırık kontrol sistemi: sistemin bütün paketlerinin kırık kontrolü
  1212. -kks)
  1213. kirik_kontrol_sistem ;;
  1214. -pak|--paketle)
  1215. if [ ! "$2" ]; then
  1216. ryaz 31 "paketlenecek dizin ismi eksik"
  1217. hataloglama "paketlenecek dizin ismi eksik"
  1218. exit 1
  1219. fi
  1220. yeniden_paketle "$2" ;;
  1221. -psk|--paksiskur)
  1222. if [ ! "$2" ]; then
  1223. ryaz 31 "paket liste yok"
  1224. hataloglama "paket liste yok"
  1225. exit 1
  1226. fi
  1227. if [ ! "$3" ]; then
  1228. ryaz 31 "hedef dizin yok"
  1229. hataloglama "hedef dizin yok"
  1230. exit 1
  1231. fi
  1232. sistem_kur "$2" "$3" ;;
  1233. -po)
  1234. pvt_olustur ;;
  1235. -os|--pkos)
  1236. if [ ! "$2" ]; then
  1237. ryaz 31 "silme listesi yok"
  1238. hataloglama "silme listesi yok"
  1239. exit 1
  1240. fi
  1241. paket_sil_oto "$2" ;;
  1242. -kl|--kurulu-liste)
  1243. ls $VT ;;
  1244. -dly|--drly)
  1245. if [ -f tumbag.liste ];then
  1246. mv tumbag.liste tumbag.liste.eski
  1247. fi
  1248. if [ -f bag.liste ];then
  1249. mv bag.liste bag.liste.eski
  1250. fi
  1251. touch tumbag.liste
  1252. touch bag.liste
  1253. derleme_listyap "$2" ;;
  1254. -dlb|--drlb)
  1255. derleme_listbilgi "$2";;
  1256. -b|--pkbl)
  1257. paket_bilgi "$2" ;;
  1258. #sunucu bilgisi alma
  1259. -sun|sunucu)
  1260. ryaz 32 $sunucu ;;
  1261. sun)
  1262. if [ ! "$2" ]; then
  1263. ryaz 31 "sunucu bilgi eksik"
  1264. hataloglama "sunucu bilgi eksik"
  1265. exit 1
  1266. fi
  1267. sunucu_ayarla "$2" ;;
  1268. -bb|--pkbb)
  1269. bagimli_bilgi "$2" | column -t;;
  1270. -bbd)
  1271. bagimli_bilgi_dosyala "$2" ;;
  1272. -tb|--pktb)
  1273. ters_bagimli "$2" ;;
  1274. -tbk|--pktbk)
  1275. ters_bagimli_kontrol "$2" ;;
  1276. -talb|--talb)
  1277. talimat_bilgi "$2" | column -t;;
  1278. -to)
  1279. if [ ! "$2" ]; then
  1280. ryaz 31 "talimat ismi eksik"
  1281. hataloglama "talimat ismi eksik"
  1282. exit 1
  1283. fi
  1284. talimat_olustur "$2" ;;
  1285. log)
  1286. local logyardim
  1287. logyardim="mps log zaman durum (ör: mps log 2017-01-01 silindi)"
  1288. if [ ! "$2" ]; then
  1289. ryaz 31 "zaman parametresi eksik"
  1290. hataloglama "zaman parametresi eksik"
  1291. ryaz 32 $logyardim
  1292. exit 1
  1293. fi
  1294. if [ ! "$3" ]; then
  1295. ryaz 31 "durum parametresi eksik"
  1296. hataloglama "durum parametresi eksik"
  1297. ryaz 32 $logyardim
  1298. exit 1
  1299. fi
  1300. log_analiz "$2" "$3" ;;
  1301. guncelle)
  1302. mps -GG && mps -G ;;
  1303. -Ggit|-GG)
  1304. git_guncelle ;;
  1305. -G|--pvtg)
  1306. paketvt_guncelle
  1307. mps -kudo ;;
  1308. #komple kurulu sistemin guncellenmesi
  1309. -GS)
  1310. sistem_guncelle ;;
  1311. #tekil paket guncelleme-single package updating
  1312. -g|--pkgu)
  1313. if [ ! "$2" ]; then
  1314. ryaz 31 "paket ismi eksik"
  1315. hataloglama "paket ismi eksik"
  1316. exit 1
  1317. fi
  1318. local durum
  1319. durum=`kurulu_kontrol "$2"`
  1320. if [ "$durum" = "kurulu" ]; then
  1321. paket_guncelle "$2"
  1322. elif [ "$durum" = "degil" ]; then
  1323. ryaz 31 "$2 paketi kurulu degil!"
  1324. hataloglama "paketi kurulu degil!"
  1325. else
  1326. ryaz 31 "$2 paketi tanımsız!"
  1327. hataloglama "paketi tanımsız!"
  1328. fi;;
  1329. #bagimliliklariyla beraber paket guncelleme-package updating with depencies
  1330. -go|--pkgo)
  1331. if [ ! "$2" ]; then
  1332. ryaz 31 "paket ismi eksik"
  1333. hataloglama "paket ismi eksik"
  1334. exit 1
  1335. fi
  1336. paket_guncelle_oto "$2";;
  1337. -kk|--kurulu-kontrol)
  1338. if [ ! "$2" ]; then
  1339. ryaz 31 "paket ismi eksik"
  1340. hataloglama "paket ismi eksik"
  1341. exit 1
  1342. fi
  1343. ryaz 31 `kurulu_kontrol "$2"`;;
  1344. -kudo)
  1345. kurulum_dogrulama ;;
  1346. -kdk)
  1347. kurban_kurtar $2 ;;
  1348. -suko)
  1349. sunucu_kontrol ;;
  1350. -pot)
  1351. paketsiz_talimatlar ;;
  1352. -dota)
  1353. dosyadan_talimat_islem $2 $3 ;;
  1354. -cf|--config-file)
  1355. if [ ! "$2" ]; then
  1356. echo "ayardosyası gerek $1"
  1357. exit 1
  1358. fi
  1359. ayar_dosyasi="$2"
  1360. shift ;;
  1361. # bir dosyanın kurulmuş hangi pakette olduğunu bulur
  1362. -hp)
  1363. if [ ! "$2" ]; then
  1364. ryaz 31 "paket ismi eksik"
  1365. exit 1
  1366. fi
  1367. kurulan_dosya_bul "$2";;
  1368. -tro)
  1369. tarihce_yap ;;
  1370. -trot)
  1371. temel_tarihce="evet"
  1372. tarihce_yap ;;
  1373. -try)
  1374. if [ ! "$2" ]; then
  1375. ryaz 31 "tarihce dosyasi eksik $1"
  1376. hataloglama "tarihce dosyasi eksik $1"
  1377. exit 1
  1378. fi
  1379. tarihce_yukle "$2"
  1380. shift ;;
  1381. -trl)
  1382. tarihce_liste ;;
  1383. dos)
  1384. tarihce_yukle "temel" ;;
  1385. -trs)
  1386. if [ ! "$2" ]; then
  1387. ryaz 31 "parametre eksik $1"
  1388. hataloglama "parametre eksik $1"
  1389. exit 1
  1390. fi
  1391. tarihce_sil "$2"
  1392. shift ;;
  1393. -v)
  1394. ryaz 33 "$betikad $versiyon $iletisim"
  1395. exit 0 ;;
  1396. -h|--help)
  1397. yardim
  1398. exit 0 ;;
  1399. esac
  1400. shift
  1401. done
  1402. }
  1403. yardim() {
  1404. cat <<_EOF
  1405. $betikad $versiyon Milis Paket Sistemi
  1406. Secenekler:
  1407. -G ikili paket veritabanını günceller
  1408. -Ggit git sunucusundan talimatname ve sistem gunceller
  1409. -kur paket_ismi ilgili paketi bagimliliklariyla agdan cekip kurar
  1410. -s paket_ismi ilgili paketi kaldirir
  1411. -k paket_ismi yereldeki paketi bagimliliksiz kurar
  1412. -kl kurulu paket listesini verir
  1413. -kk paket_ismi ilgili paketin kurulu olma durumunu verir
  1414. -d paket_ismi ilgili paketin talimat dosyasına göre
  1415. sadece derler,paketler
  1416. -derle paket_ismi ilgili paketin talimat dosyasına göre bagimliliklariyla
  1417. beraber derler,paketler ve kurar.
  1418. _EOF
  1419. exit 1
  1420. }
  1421. ana(){
  1422. if [ `id -u` = 0 ] ; then
  1423. ayarlar "$@"
  1424. if [ "$ikaynak" = "ag" ]; then
  1425. local kontroldeg
  1426. kkont=`kurulu_kontrol "$2"`
  1427. if [ "$kkont" = "degil" ] || [ "$tekrarkur" = "evet" ];then
  1428. pkt=`cat "$paketdepo""paket.vt" | grep "^$2 " | cut -d' ' -f3`
  1429. if [ ! -z "$pkt" -a "$pkt" != "" ]; then
  1430. cpaket="${pkt/'#'/'%23'}"
  1431. ryaz 33 "agdan cekiliyor:" "$2"
  1432. #paket sunucuda varsa
  1433. wget -q --spider "$sunucu$cpaket"
  1434. #if wget -P /tmp -q "$sunucu$cpaket" > /dev/null; then
  1435. if [ $? -eq 0 ]; then
  1436. #wget -P "$paketdepo" "$sunucu$cpaket"
  1437. paket_indir "$2"
  1438. if [ "$kurulum_onay" = "evet" ];then
  1439. if [ "$tekrarkur" = "evet" ];then
  1440. paket_sil "$2" "evet"
  1441. fi
  1442. icerik_ekle "$paketdepo$pkt"
  1443. exit 1
  1444. fi
  1445. else
  1446. ryaz 31 "paket sunucuda yok!"
  1447. hataloglama "paket sunucuda yok!"
  1448. fi
  1449. else
  1450. ryaz 31 "$2 paket sunucuda yok!( mps -G komutuyla güncelleme yapınız. )"
  1451. hataloglama "$2 paket sunucuda yok!( mps -G komutuyla güncelleme yapınız. )"
  1452. fi
  1453. else
  1454. ryaz 32 "$2 paketi zaten kurulu!"
  1455. hataloglama "$2 paketi zaten kurulu!"
  1456. fi
  1457. exit 1
  1458. fi
  1459. if [ "$ikaynak" = "yerel" ]; then
  1460. local silme
  1461. pkontrol=`basename $2 | grep -w "mps.lz"`
  1462. if [ ! -z "$pkontrol" -a "$pkontrol" != "" ]; then
  1463. paketad=`echo "$2" | cut -d'#' -f1`
  1464. kkont=`kurulu_kontrol "$paketad"`
  1465. if [ "$kkont" = "degil" ];then
  1466. icerik_ekle "$2"
  1467. elif [ "$kkont" = "kurulu" ];then
  1468. if [ "$tekrarkur" = "hayir" ];then
  1469. while true; do
  1470. ryaz 31 "$2 paketi zaten kurulu silinip kurulsun mu?"
  1471. read -p "e veya h -> " eh
  1472. case $eh in
  1473. [Ee]* ) silme="e"; break;;
  1474. [Hh]* ) break;;
  1475. * ) echo "e veya h";;
  1476. esac
  1477. done
  1478. fi
  1479. if [ "$silme" = "e" ];then
  1480. ryaz 33 "silinecekelerin kontrolu için"
  1481. paket_sil "$paketad"
  1482. icerik_ekle "$2"
  1483. fi
  1484. else
  1485. if [ "$tekrarkur" = "evet" ];then
  1486. while true; do
  1487. ryaz 31 "$2 paketi talimatname dışı.Yine de kurulsun mu? (kokdizin=$kokdizin) "
  1488. read -p "e veya h -> " eh
  1489. case $eh in
  1490. [Ee]* ) icerik_ekle "$2"; break;;
  1491. [Hh]* ) break;;
  1492. * ) echo "e veya h";;
  1493. esac
  1494. done
  1495. fi
  1496. fi
  1497. else
  1498. ryaz 31 "yerelde mps paketi bulunamadı."
  1499. fi
  1500. fi
  1501. else
  1502. sudo mps "$@"
  1503. fi
  1504. }
  1505. ana "$@"
  1506. #31 kirmizi
  1507. #32 yesil
  1508. #33 sari
  1509. #34 mavi
  1510. #34 mor