mps_yedek 72 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842
  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="1.1.7 Milis Paket Sistemi"
  8. iletisim="milisarge@gmail.com"
  9. paketdepo="/depo/paketler/"
  10. if [ -z ${sunucu+:} ]; then
  11. sunucu="127.0.0.1:8000/"
  12. fi
  13. if [ -z ${git_sunucu+:} ]; then
  14. git_sunucu="https://github.com/milisarge/malfs-milis"
  15. fi
  16. ikaynak=""
  17. betikad=${0##*/}
  18. kurulum_onay="evet"
  19. talimatname="/root/talimatname"
  20. anatalimatname="/sources/milis.git/talimatname"
  21. kokdizin="/"
  22. VT="/var/lib/pkg/DB"
  23. TARIHCE_DIZIN="/var/lib/pkg/tarihce"
  24. LOGDIZIN="/var/log/mps"
  25. tekrarkur="hayir"
  26. logdosya=/var/log/mps/mps.log
  27. #temel paket koruma
  28. if [ -z ${tpk+:} ]; then
  29. lokal="evet"
  30. fi
  31. if [ -z ${lokal+:} ]; then
  32. lokal="tr"
  33. fi
  34. if [ -z ${docsil+:} ]; then
  35. docsil="evet"
  36. fi
  37. if [ -z ${yerelsil+:} ]; then
  38. yerelsil="silme"
  39. fi
  40. if [ -z ${ektalimatname+:} ]; then
  41. ektalimatname="/root/talimatlar"
  42. [ ! -d /root/talimatlar ] && mkdir -p /root/talimatlar
  43. fi
  44. if [ -z ${sunucular+:} ]; then
  45. declare -a sunucular=("paketler.milislinux.org")
  46. awk ' {print;} NR == 1 { print "sunucular=(paketler.milislinux.org/)"; }' /etc/mps.conf > /etc/mps2.conf
  47. mv /etc/mps2.conf /etc/mps.conf
  48. fi
  49. if [ -z ${silme_esgec+:} ]; then
  50. declare -a silme_esgec=()
  51. fi
  52. # Türkçe Mesajlar
  53. _paket_adi_gerekli="paket ismi eksik!"
  54. _dizin_bulunamadi="dizin bulunamadı!"
  55. _talimat_sayisi_fazla="talimatnameler altında birden fazla talimat mevcut!"
  56. _talimat_bulunamadi="ilgili talimat bulunamadı!"
  57. _dosya_yolu_bulunamadi="dosya yolu bulunamadı!"
  58. _shasum_uyumsuzluk="shasum uyumsuzluğu tespit edildi!"
  59. _gerekler_belirleniyor="bağımlılıkları belirleniyor."
  60. _paket_kuruldu="paketi kuruldu."
  61. _paket_kurulu_degil="paketi kurulu değil!"
  62. _paket_silindi="paketi silindi."
  63. _paket_silinsinmi="paketi kaldırılsın mı?"
  64. _paket_tanimsiz="paketi tanımsız!"
  65. _paket_bulunamadi="ilgili paket bulunamadı!"
  66. _paketvt_guncelleniyor="paket veritabanı güncelleniyor."
  67. _paket_onbellek_depoda_var="paketi önbellek depoda bulunmakta."
  68. _paket_depoda_yok="paket depoda bulunmuyor ve gereksiz,"
  69. _siliniyor="siliniyor"
  70. _git_guncelleniyor="git sunucudan güncelleme çekiliyor."
  71. _git_guncel="git deposu güncel"
  72. _git_guncellendi="git deposu güncellendi."
  73. _yerel_esitlendi="yerele eşitleme tamam."
  74. _yerel_esitleniyor="yerele eşitleniyor."
  75. _devir_kontrol_iptal="devir kontrolü iptal edildi!"
  76. _surum_kontrol_iptal="sürüm kontrolü iptal edildi!"
  77. _zaten="zaten"
  78. icerik_ekle(){
  79. if [ -f "$1" ];then
  80. paketad=`echo "$1" | cut -d'#' -f1`
  81. paketad=`basename $paketad`
  82. ryaz 34 $paketad" paketi kuruluyor-> $kokdizin"
  83. if [ -f /usr/bin/bsdtar ];then
  84. bsdtar -C /tmp --extract --file=$1 .PRE 1 2> /tmp/$paketad_pre.log
  85. else
  86. tar -C /tmp --extract --file=$1 .PRE 1 2> /tmp/$paketad_pre.log
  87. fi
  88. #kos-kur kontrolu
  89. if [ -f /tmp/.PRE ];then
  90. if [ "$kokdizin" == "/" ];then
  91. bash /tmp/.PRE
  92. else
  93. cp /tmp/.PRE $kokdizin/tmp/$paketad.PRE
  94. fi
  95. rm /tmp/.PRE
  96. fi
  97. mkdir -p kur.$paketad &&
  98. if [ -f /usr/bin/bsdtar ];then
  99. bsdtar xf $1 -C kur.$paketad
  100. else
  101. tar xf $1 -C kur.$paketad
  102. fi
  103. #istenmeyen yerellerin silinmesi
  104. if [ -d kur.$paketad/usr/share/locale ] && [ "$yerelsil" == "evet" ];then
  105. for lkl in `ls kur.$paketad/usr/share/locale/`;do
  106. if [ "$lkl" != "$lokal" ];then rm -r kur.$paketad/usr/share/locale/$lkl; fi
  107. done
  108. fi
  109. #doc dizini silinmesi
  110. if [ -d kur.$paketad/usr/share/doc ] && [ "$docsil" == "evet" ];then
  111. rm -r kur.$paketad/usr/share/doc
  112. fi
  113. mkdir -p $kokdizin$VT/"$paketad" &&
  114. cp -v -afr kur.$paketad/* $kokdizin > kur.$paketad/kurulan
  115. cp kur.$paketad/kurulan /tmp/ &&cat kur.$paketad/kurulan | cut -d '>' -f2 > $kokdizin$VT/"$paketad"/kurulan &&
  116. #mv kur.$paketad/.MTREE $VT/"$paketad"/files &&
  117. mv kur.$paketad/.META $kokdizin$VT/"$paketad"/META &&
  118. #kur-kos calistirilmasi
  119. if [ -f kur.$paketad/.POST ];then
  120. if [ "$kokdizin" == "/" ];then
  121. bash kur.$paketad/.POST
  122. else
  123. cp kur.$paketad/.POST $kokdizin/tmp/$paketad.POST
  124. fi
  125. rm kur.$paketad/.POST
  126. fi
  127. rm -r kur.$paketad
  128. if [ -f $kokdizin/etc/ld.so.conf ];then
  129. ldconfig -r $kokdizin
  130. fi
  131. ryaz 34 $paketad" $_paket_kuruldu"
  132. loglama "$paketad $_paket_kuruldu"
  133. else
  134. ryaz 31 "icerik_ekle:paket konum parametresi boş!!!"
  135. exit 1
  136. fi
  137. }
  138. paket_sil(){
  139. local paket kkont sil_onay oto_silme
  140. local _etkilenen=()
  141. paket="$1"
  142. tersbag_goster="hayir"
  143. if [ "$2" ]; then
  144. oto_silme="$2"
  145. fi
  146. if [ "$3" ]; then
  147. tersbag_goster="evet"
  148. fi
  149. if [ "$tpk" = "evet" ] && [ -d "$talimatname/temel/$1" ];then
  150. ryaz 31 "$1 temel sistem paketidir.Silinemez!!!"
  151. hataloglama "$1 temel sistem paketidir.Silinemez!!!"
  152. else
  153. kkont=`kurulu_kontrol "$1"`
  154. if [ "$kkont" = "kurulu" ];then
  155. if [ -f "$VT/$paket/kurulan" ];then
  156. #dizin koruma
  157. etkilenen_kurtar $1
  158. cat $VT/$paket/kurulan | cut -d '>' -f2 > /tmp/$paket.sil
  159. if [ "$tersbag_goster" = "evet" ];then
  160. ryaz 31 "ters bagimliliklar"
  161. ryaz 31 "------------------"
  162. ters_bagimli_bilgi "$paket"
  163. ryaz 31 "------------------"
  164. fi
  165. #_etkilenen=$(silme_etkilenen_kontrol /tmp/$paket.sil $paket)
  166. #if [ -f "${_etkilenen[0]}" ];then
  167. ryaz 31 "etkilenen dosyalar"
  168. ryaz 31 "------------------"
  169. silme_etkilenen_kontrol /tmp/$paket.sil $paket
  170. ryaz 31 "------------------"
  171. #fi
  172. if [ "$oto_silme" = "evet" ];then
  173. sil_onay="e"
  174. else
  175. while true; do
  176. ryaz 34 $paket" $_paket_silinsinmi";read -p "e veya h-> " eh
  177. case $eh in
  178. [Ee]* ) sil_onay="e"; break;;
  179. [Hh]* ) break;;
  180. * ) echo "e veya h";;
  181. esac
  182. done
  183. fi
  184. if [ "$sil_onay" = "e" ];then
  185. _konum=$(talimat_bul $paket)
  186. [ -f "$_konum/$paket.kos-sil" ] && bash "$_konum/$paket.kos-sil"
  187. xargs rm -r -f < /tmp/$paket.sil &&
  188. rm -r -f "$VT/$paket" &&
  189. [ -f "$_konum/$paket.sil-kos" ] && bash "$_konum/$paket.sil-kos"
  190. ryaz 34 $paket" $_paket_silindi"
  191. loglama "$paket $_paket_silindi"
  192. rm -f /tmp/$paket.sil
  193. else
  194. rm -f /tmp/$paket.sil
  195. fi
  196. else
  197. ryaz 31 "kritik mesaj:kurulanlar dosyası yok."
  198. hataloglama "kritik mesaj:kurulanlar dosyası yok."
  199. fi
  200. elif [ "$kkont" = "degil" ];then
  201. ryaz 32 "$_zaten $_paket_kurulu_degil"
  202. hataloglama "$_zaten $_paket_kurulu_degil"
  203. else
  204. ryaz 32 "$_paket_tanimsiz"
  205. hataloglama "$_paket_tanimsiz"
  206. fi
  207. fi
  208. }
  209. paket_ara(){
  210. paket="$1"
  211. for pkt in `cat /depo/paketler/paket*.vt | grep $paket | awk '{print $1}'`; do
  212. pakdesc=$(find $talimatname -name "$pkt" | xargs -I % sed -n '1{p;q}' %/talimat | sed s'/# Tanım: //g');
  213. ryaz 34 "$pkt - $pakdesc";
  214. done
  215. }
  216. paket_liste(){
  217. mps_paketler_listesi="/tmp/mps_paketler_listesi"
  218. local cikti _grup
  219. _grup="yok"
  220. cikti="--normal"
  221. if [ "$1" ]; then
  222. if [ "$1" == "--json" ];then
  223. cikti="--json"
  224. else
  225. _grup="$1"
  226. fi
  227. fi
  228. if [ "$2" ]; then
  229. cikti="$2"
  230. fi
  231. #echo "cikti:$cikti"
  232. #echo "grup:$_grup"
  233. #exit 1
  234. if [ $_grup == "yok" ];then
  235. if [ $cikti == "--json" ];then
  236. [ -f $mps_paketler_listesi ] && rm -rf $mps_paketler_listesi
  237. for pkt in $(cat /depo/paketler/paket*.vt | awk '{print $1}'); do
  238. printf "$pkt," >> $mps_paketler_listesi
  239. done
  240. sed -i s'/.$//' $mps_paketler_listesi
  241. else
  242. cat /depo/paketler/paket*.vt | awk '{print $1}'
  243. fi
  244. else
  245. if [ $cikti == "--json" ];then
  246. grup_paketler_liste $_grup $cikti
  247. else
  248. grup_paketler_liste $_grup
  249. fi
  250. fi
  251. }
  252. paket_grup_liste(){
  253. mps_paket_grup_listesi="/tmp/mps_paket_grup_listesi"
  254. local cikti
  255. cikti="normal"
  256. if [ "$1" ]; then
  257. cikti="$1"
  258. fi
  259. _gruplar=`grep -ri "Grup:" $talimatname/* $ektalimatname/* | cut -d':' -f3 | sed 's/^ *//;s/ *$//' | sort -u`
  260. if [ $cikti == "--json" ];then
  261. [ -f $mps_paket_grup_listesi ] && rm -rf $mps_paket_grup_listesi
  262. #printf "[" >> $mps_paket_grup_listesi
  263. for grp in $(grep -ri "Grup:" $talimatname/* $ektalimatname/* | cut -d':' -f3 | sed 's/^ *//;s/ *$//' | sort -u); do
  264. printf "$grp," >> $mps_paket_grup_listesi
  265. done
  266. sed -i s'/.$//' $mps_paket_grup_listesi
  267. #printf "]" >> $mps_paket_grup_listesi
  268. else
  269. echo $_gruplar
  270. fi
  271. }
  272. grup_paketler_liste(){
  273. mps_grup_paketler_listesi="/tmp/mps_grup_paketler_listesi"
  274. local cikti _grup _paketler
  275. _grup="$1"
  276. cikti="normal"
  277. if [ "$2" ]; then
  278. cikti="$2"
  279. fi
  280. _paketler=`grep -rli "Grup: $_grup" $talimatname/* $ektalimatname/* | cut -d':' -f3 | sed 's/^ *//;s/ *$//' | xargs -I {} dirname {} | xargs -I {} basename {} | sort -u`
  281. if [ $cikti == "--json" ];then
  282. [ -f $mps_grup_paketler_listesi ] && rm -rf $mps_grup_paketler_listesi
  283. #printf "[" >> $mps_paket_grup_listesi
  284. for pkt in $(grep -rli "Grup: $_grup" $talimatname/* $ektalimatname/* | cut -d':' -f3 | sed 's/^ *//;s/ *$//' | xargs -I {} dirname {} | xargs -I {} basename {} | sort -u); do
  285. printf "$pkt," >> $mps_grup_paketler_listesi
  286. done
  287. sed -i s'/.$//' $mps_grup_paketler_listesi
  288. #printf "]" >> $mps_paket_grup_listesi
  289. else
  290. echo $_paketler
  291. fi
  292. }
  293. kelime_bul(){
  294. grep --color -H -ri "$1" $talimatname
  295. grep --color -H -ri "$1" $ektalimatname
  296. }
  297. paket_bilgi2(){
  298. local paket kkont
  299. kkont=`kurulu_kontrol "$1"`
  300. if [ "$kkont" = "kurulu" ];then
  301. paket="$1"
  302. cat "$VT/$paket"/META
  303. elif [ "$kkont" = "degil" ];then
  304. echo "$_paket_kurulu_degil"
  305. else
  306. echo "$_paket_tanimsiz"
  307. fi
  308. }
  309. paket_bilgi(){
  310. local paket kkont cikti _yaz _yaz_uyari _yaz_son
  311. cikti="--renkli"
  312. _yaz_son=""
  313. if [ "$2" ]; then
  314. cikti="$2"
  315. fi
  316. if [ $cikti == "--html" ];then
  317. _yaz="echo"
  318. _yaz_uyari="echo"
  319. _yaz_son="<br>"
  320. elif [ $cikti == "--renkli" ];then
  321. _yaz="ryaz 32"
  322. _yaz_uyari="ryaz 31"
  323. else
  324. cikti="normal"
  325. fi
  326. kkont=`kurulu_kontrol "$1"`
  327. if [ "$kkont" = "kurulu" ];then
  328. paket="$1"
  329. satir=`sed -n '1p' < $VT/"$paket"/META`
  330. $_yaz "ADI :" ${satir:1:${#satir}-1} #$_yaz_son
  331. satir=`sed -n '2p' < $VT/"$paket"/META`
  332. $_yaz "TANIM :" ${satir:1:${#satir}-1} #$_yaz_son
  333. satir=`sed -n '3p' < $VT/"$paket"/META`
  334. $_yaz "URL :" ${satir:1:${#satir}-1} #$_yaz_son
  335. satir=`sed -n '5p' < $VT/"$paket"/META`
  336. $_yaz "PAKETÇİ :" ${satir:1:${#satir}-1} #$_yaz_son
  337. satir=`sed -n '6p' < $VT/"$paket"/META`
  338. satir=${satir:1:${#satir}-1}
  339. printf -v boyut '%d\n' "$satir" 2>/dev/null
  340. if [ $boyut -lt 1048576 ];then
  341. boyut=$(($boyut/1024))
  342. _ek="kb"
  343. else
  344. boyut=$(($boyut/1024/1024))
  345. _ek="mb"
  346. fi
  347. $_yaz "KUR BOYUT :" "$boyut $_ek (tahmini)" #$_yaz_son
  348. satir=`sed -n '7p' < $VT/"$paket"/META`
  349. $_yaz "SÜRÜM :" ${satir:1:${#satir}-1} #$_yaz_son
  350. satir=`sed -n '8p' < $VT/"$paket"/META`
  351. $_yaz "DEVİR :" ${satir:1:${#satir}-1} #$_yaz_son
  352. satir=`sed -n '9p' < $VT/"$paket"/META`
  353. $_yaz "PAKETLENME :" `date -d @${satir:1:${#satir}-1}` #$_yaz_son
  354. satir=`sed -n '10p' < $VT/"$paket"/META`
  355. $_yaz "MİMARİ :" ${satir:1:${#satir}-1} #$_yaz_son
  356. satir=`sed -n '11p' < $VT/"$paket"/META`
  357. $_yaz "GRUP :" ${satir:1:${#satir}-1} #$_yaz_son
  358. elif [ "$kkont" = "degil" ];then
  359. _konum=$(talimat_bul $1)
  360. _ad=$(grep -ri "isim=" $_konum/talimat | head -1 | cut -d '=' -f2)
  361. _tanim=$(grep -ri "# Tanım:" $_konum/talimat | cut -d ':' -f2-)
  362. _url=$(grep -ri "# Url:" $_konum/talimat | cut -d ':' -f2-)
  363. _paketci=$(grep -ri "# Paketçi:" $_konum/talimat | cut -d ':' -f2-)
  364. _surum=$(grep -ri "surum=" $_konum/talimat | head -1 | cut -d '=' -f2)
  365. _devir=$(grep -ri "devir=" $_konum/talimat | head -1 | cut -d '=' -f2)
  366. _grup=$(grep -ri "# Grup:" $_konum/talimat | head -1 | cut -d ':' -f2)
  367. $_yaz "ADI :" ${_ad} #$_yaz_son
  368. $_yaz "TANIM :" ${_tanim} #$_yaz_son
  369. $_yaz "URL :" ${_url} #$_yaz_son
  370. $_yaz "PAKETÇİ :" ${_paketci} #$_yaz_son
  371. $_yaz "SÜRÜM :" ${_surum} #$_yaz_son
  372. $_yaz "DEVİR :" ${_devir} #$_yaz_son
  373. $_yaz "GRUP :" ${_grup} #$_yaz_son
  374. $_yaz_uyari "$1 $_paket_kurulu_degil"
  375. else
  376. $_yaz_uyari "$1 $_paket_tanimsiz"
  377. fi
  378. }
  379. paket_bilgi_html(){
  380. _dosya=$1
  381. icerik="<table border=1>"
  382. while IFS='' read -r satir || [[ -n "$line" ]]; do
  383. icerik+="<tr>"
  384. _sutun_baslik="$(echo $satir | cut -d':' -f1)"
  385. _sutun_deger="$(echo $satir | cut -d':' -f2-)"
  386. #icerik+="<td>$_sutun_deger</td>"
  387. if [ "${_sutun_baslik}" != "${_sutun_deger}" ];then
  388. icerik+="<td>$_sutun_baslik</td>"
  389. icerik+="<td>$_sutun_deger</td>"
  390. fi
  391. icerik+="</tr>"
  392. done < "$_dosya"
  393. if [[ "${_sutun_baslik}" == *"${_paket_kurulu_degil}"* ]] || [[ "${_sutun_baslik}" == *"${_paket_tanimsiz}"* ]];then
  394. icerik+="<tr bgcolor='red'><td>DURUM</td><td>${_sutun_baslik}</td></tr>"
  395. else
  396. icerik+="<tr bgcolor='green'><td>DURUM</td><td>kurulu</td></tr>"
  397. fi
  398. icerik+="</table>"
  399. echo "$icerik" > $_dosya.html
  400. }
  401. yeniden_paketle(){
  402. cd $1
  403. bsdtar -r -f ../"$1".mps .META
  404. bsdtar -r -f ../"$1".mps *
  405. cd ..
  406. lzip -9 "$1".mps
  407. }
  408. talimat_bul(){
  409. if [ -z "$1" ];then echo "$_paket_adi_gerekli";exit 1;fi
  410. local _apaket="$1"
  411. _bulunan=()
  412. #_bulunan=$(find $talimatname $ektalimatname -name $_apaket)
  413. _bulunan=()
  414. while IFS= read -r -d $'\0'; do
  415. _bulunan+=("$REPLY")
  416. done < <(find $talimatname $ektalimatname -name ${_apaket} -print0)
  417. if [ ${#_bulunan[@]} -gt 1 ];then echo "$(date +'%F %T') ${_apaket} $_talimat_sayisi_fazla" >> $LOGDIZIN/mps-hata.log;fi
  418. if [ ${_bulunan[0]} ] ; then
  419. if [ -f "${_bulunan[0]}/talimat" ];then
  420. echo "${_bulunan[0]}"
  421. else
  422. echo "0"
  423. fi
  424. else
  425. echo "-1"
  426. fi
  427. }
  428. paket_analiz(){
  429. _gcc_uyumsuz_paketler="/tmp/gcc_uyumsuz_paketler"
  430. _pkvt="paket.vt"
  431. if [ -z "$1" ];then echo "$_paket_adi_gerekli";exit 1;fi
  432. local pkt _apaket _konum
  433. pkt=$1
  434. if [ -f $pkt ];then
  435. _apaket=$(basename $pkt |cut -d'#' -f 1)
  436. _konum=$(anatalimat_bul $_apaket)
  437. _depo_sha=$(cat "$paketdepo$_pkvt" | grep " $_apaket#" | cut -d' ' -f2)
  438. _paket_sha=$(sha1sum $pkt | cut -d ' ' -f1)
  439. if [[ $_konum != "-1" && $_konum != "0" ]];then
  440. source $_konum/talimat
  441. if [ -f $pkt ];then
  442. bsdtar xf $pkt .META
  443. if [ -f $PWD/.META ];then
  444. mv .META /tmp/$_apaket.META
  445. satir=$(sed -n '7p' < /tmp/$_apaket.META)
  446. psurum=${satir:1:${#satir}-1}
  447. satir2=$(sed -n '8p' < /tmp/$_apaket.META)
  448. pdevir=${satir2:1:${#satir2}-1}
  449. deposurum=`echo -e "$surum" | sort -V | head -n1`
  450. depodevir=`echo -e "$devir" | sort -V | head -n1`
  451. _surumbilgi="gereken_sürüm:$deposurum ! paket_sürüm:$psurum"
  452. _devirbilgi="gereken_devir:$depodevir ! paket_devir:$pdevir"
  453. ryaz 33 "$pkt"
  454. if [ "$deposurum" != "$psurum" ];then
  455. ryaz 31 "$_surumbilgi"
  456. echo "$pkt" >> $_gcc_uyumsuz_paketler
  457. fi
  458. if [ "$depodevir" != "$pdevir" ];then
  459. ryaz 31 "$_devirbilgi"
  460. echo "$pkt" >> $_gcc_uyumsuz_paketler
  461. fi
  462. if [ "$_paket_sha" != "$_depo_sha" ];then
  463. ryaz 31 "$_shasum_uyumsuzluk"
  464. echo "$pkt" >> $_gcc_uyumsuz_paketler
  465. fi
  466. else
  467. ryaz 31 "$_apaket depoda yok. mps -i $_apaket"
  468. fi
  469. else
  470. ryaz 31 "$_apaket depoda yok. mps -i $_apaket"
  471. fi
  472. else
  473. ryaz 31 "$1 $_talimat_bulunamadi"
  474. fi
  475. rm -f /tmp/$_apaket.META
  476. else
  477. ryaz 31 "$pkt $_dosya_yolu_bulunamadi"
  478. exit 0
  479. fi
  480. }
  481. paketdepo_analiz(){
  482. paketvt_guncelle
  483. _aranandepo=$1
  484. _uyumsuz_paketler="/tmp/uyumsuz_paketler"
  485. if [[ -d $_aranandepo && ! -f $_aranandepo ]];then
  486. rm -f $_uyumsuz_paketler
  487. _gcc_uyumsuz_paketler="/tmp/gcc_uyumsuz_paketler"
  488. for pkt in $(ls $_aranandepo*mps.lz);do
  489. paket_analiz $pkt
  490. echo "-"
  491. done
  492. echo "tarama bitti"
  493. sort -u $_gcc_uyumsuz_paketler > $_uyumsuz_paketler
  494. echo "file://$_uyumsuz_paketler"
  495. exit 0
  496. else
  497. ryaz 31 "$1 $_dizin_bulunamadi"
  498. exit 1
  499. fi
  500. }
  501. anatalimat_bul(){
  502. if [ -z "$1" ];then echo "$_paket_adi_gerekli";exit 1;fi
  503. local _apaket="$1"
  504. _bulunan=()
  505. _bulunan=()
  506. while IFS= read -r -d $'\0'; do
  507. _bulunan+=("$REPLY")
  508. done < <(find $anatalimatname -name ${_apaket} -print0)
  509. if [ ${#_bulunan[@]} -gt 1 ];then echo "$(date +'%F %T') ${_apaket} $_talimat_sayisi_fazla" >> $LOGDIZIN/mps-hata.log;fi
  510. if [ ${_bulunan[0]} ] ; then
  511. if [ -f "${_bulunan[0]}/talimat" ];then
  512. echo "${_bulunan[0]}"
  513. else
  514. echo "0"
  515. fi
  516. else
  517. echo "-1"
  518. fi
  519. }
  520. derleme_listyap_kontrol(){
  521. if [ -f tumgerekler.liste ];then
  522. mv tumgerekler.liste tumgerekler.eski.liste
  523. fi
  524. if [ -f gerek.liste ];then
  525. mv gerek.liste gerek.eski.liste
  526. fi
  527. touch tumgerekler.liste
  528. touch gerek.liste
  529. }
  530. gerekleri_dosyala(){
  531. local _altgerek _konum
  532. _altgerek="$1"
  533. _konum=$(talimat_bul $_altgerek)
  534. if [[ $konum != "-1" && $konum != "0" ]];then
  535. printf "."
  536. echo "$_altgerek" >> tumgerekler.liste
  537. if [ ! -d "$talimatname/temel/$_altgerek" ];then
  538. echo "$_konum" >> gerek.liste
  539. fi
  540. else
  541. ryaz 31 "$1 $_talimat_bulunamadi"
  542. fi
  543. }
  544. dly_yeni(){
  545. dlymap["$1"]=1
  546. altgerekler=($(bagimlilar $1))
  547. if [[ "$altgerekler" != "0" && "$altgerekler" != "-1" ]];then
  548. for altgerek in ${altgerekler[@]};do
  549. if [[ ! ${dlymap["$altgerek"]} ]] ; then
  550. dly_yeni $altgerek
  551. fi
  552. done
  553. dlyD+=("$1")
  554. gerekleri_dosyala "$1"
  555. else
  556. ryaz 31 "$1 talimatı bulunamadı."
  557. exit 1
  558. fi
  559. }
  560. kly_yeni(){
  561. #[ ! ${klyD[0]} ] && klyD+=("$1")
  562. [ ! -d "$VT/$1" ] && klymap["$1"]=1
  563. altgerekler=($(bagimlilar $1))
  564. if [[ "$altgerekler" != "0" && "$altgerekler" != "-1" ]];then
  565. for altgerek in ${altgerekler[@]};do
  566. if [ ! -d "$VT/$altgerek" ] ;then
  567. if [[ ! ${klymap["$altgerek"]} ]] ; then
  568. #klyD+=("$altgerek")
  569. #echo ${klyD[-1]}
  570. kly_yeni $altgerek
  571. fi
  572. fi
  573. done
  574. klyD+=("$1")
  575. gerekleri_dosyala ${klyD[-1]}
  576. else
  577. ryaz 31 "$1 talimatı bulunamadı."
  578. exit 1
  579. fi
  580. }
  581. derleme_listyap(){
  582. ryaz 32 "$1 $_gerekler_belirleniyor"
  583. local pkt dlyp
  584. dlyD=()
  585. declare -A dlymap
  586. derleme_listyap_kontrol
  587. dly_yeni $1
  588. echo "${dlyD[@]}"
  589. }
  590. kurulum_listyap(){
  591. klyD=()
  592. declare -A klymap
  593. kly_yeni "$1"
  594. }
  595. derleme_listbilgi(){
  596. ryaz 34 "yapim asamasında"
  597. }
  598. # -derlist
  599. paket_derle_liste(){
  600. for dpktyer in `cat $1`;do
  601. dpkt=`basename $dpktyer`
  602. echo $dpkt "derleniyor...."
  603. zorla_derle="yok"
  604. paket_derle $dpktyer
  605. done
  606. }
  607. #otomatik derle kontrollu kur
  608. # -derle
  609. paket_derle_kur(){
  610. tekrarkur="hayir"
  611. derleme_listyap_kontrol
  612. derleme_listyap "$1" && paket_derle_liste gerek.liste
  613. }
  614. # odkp
  615. oto_derle_kur_paketle(){
  616. paketvt_guncelle
  617. # mps -kur
  618. _konum=$(talimat_bul $1)
  619. paket_inkur_oto $1 &&
  620. if [ -f "$_konum/$1.sira" ];then
  621. ryaz 32 "sıralı derleme yapılacak."
  622. paket_derle_liste "$_konum/$1.sira"
  623. else
  624. paket_derle_kur $1
  625. fi
  626. rm -rf {gerek.eski,gerek,kurulanlar,silinenler,tumgerekler.eski,tumgerekler}.liste
  627. }
  628. paket_kur_oto(){
  629. local kpkt pkt pak kliste
  630. if [ "$1" = "-H" ];then
  631. ls *.mps.lz > "otokur.list"
  632. kliste="otokur.list"
  633. else
  634. kliste="$1"
  635. fi
  636. for kpkt in `cat $kliste`;do
  637. for pkt in `ls $kpkt* | cut -d'#' -f1`;do
  638. pak=`ls "$pkt#"*`
  639. mps -k "$pak" && paket_inkur_oto "$pkt"
  640. done
  641. done
  642. rm -rf otokur.list
  643. }
  644. paket_kur_oto_zorla(){
  645. local kpkt pkt pak kliste
  646. if [ "$1" = "-H" ];then
  647. ls *.mps.lz > "otokur.list"
  648. kliste="otokur.list"
  649. else
  650. kliste="$1"
  651. fi
  652. for kpkt in `cat $kliste`;do
  653. for pkt in `ls $kpkt* | cut -d'#' -f1`;do
  654. pak=`ls "$pkt#"*`
  655. paket_sil "$pkt" "evet"
  656. mps -k "$pak" && paket_inkur_oto "$pkt"
  657. done
  658. done
  659. rm -rf otokur.list
  660. }
  661. paket_kur_liste(){
  662. local kpkt pkt pak
  663. for kpkt in `cat $1`;do
  664. for pkt in `ls $kpkt* | cut -d'#' -f1`;do
  665. pak=`ls "$pkt#"*`
  666. mps -k "$pak"
  667. done
  668. done
  669. }
  670. paket_kur_liste_zorla(){
  671. local kpkt pkt pak
  672. for kpkt in `cat $1`;do
  673. for pkt in `ls $kpkt* | cut -d'#' -f1`;do
  674. pak=`ls "$pkt#"*`
  675. paket_sil "$kpkt" "evet"
  676. mps -k "$pak"
  677. done
  678. done
  679. }
  680. #otomatik kontrollu kur
  681. paket_kur_oto2(){
  682. derleme_listyap_kontrol
  683. derleme_listyap "$1" > /dev/null && mps -ok gerek.liste
  684. }
  685. paket_inkur_liste_direk(){
  686. local kpkt
  687. for kpkt in `cat $1`;do
  688. agdan_kur "$kpkt"
  689. done
  690. }
  691. paket_inkur_liste(){
  692. local kpkt
  693. for kpkt in `cat $1`;do
  694. paket_inkur_oto "$kpkt"
  695. done
  696. }
  697. # otomatik kontrollu kur
  698. # -kur
  699. paket_inkur_oto(){
  700. local konum anakonum kurdurum
  701. derleme_listyap_kontrol
  702. #derleme_listyap "$1" | grep "bulunamadı"
  703. kurulum_listyap "$1" | grep "bulunamadı"
  704. local kpkt
  705. for paketkonum in `cat gerek.liste`;do
  706. # önce talimat-anatalimat karşılaştırması yapılır.
  707. kpkt=`basename $paketkonum`
  708. konum="`find "$talimatname" -name $kpkt`"
  709. anakonum="`find "$anatalimatname" -name $kpkt`"
  710. ekkonum="`find "$ektalimatname" -name $kpkt`"
  711. if [ -f "$anakonum/talimat" ];then
  712. if [ "`dosya_karsilastir $konum/talimat $anakonum/talimat`" = "evet" ];then
  713. agdan_kur "$kpkt"
  714. else
  715. ryaz 31 "$kpkt talimat eşitsizliğinden atlandı."
  716. fi
  717. elif [ -f "$ekkonum/talimat" ];then
  718. agdan_kur "$kpkt"
  719. else
  720. ryaz 31 "$kpkt talimatı bulunamadı!"
  721. fi
  722. done
  723. if [ $(kurulu_kontrol $1) = "degil" ];then
  724. kurdurum="kurulu değil"
  725. elif [ $(kurulu_kontrol $1) = "kurulu" ];then
  726. kurdurum="kurulu"
  727. ryaz 32 "\n$1 $kurdurum "
  728. else
  729. kurdurum="$_paket_tanimsiz"
  730. fi
  731. rm -rf *.liste
  732. }
  733. paket_sil_oto(){
  734. local spkt
  735. for spkt in `cat $1`;do
  736. oto_silme="evet"
  737. paket_sil "$spkt" "$oto_silme"
  738. done
  739. }
  740. paket_sil_oto_onayli(){
  741. local spkt
  742. #for spkt in `perl -e 'print reverse <>' $1`;do
  743. for spkt in $(tac $1);do
  744. paket_sil "$spkt" "hayir" "evet"
  745. done
  746. }
  747. paket_sil_gerekli(){
  748. local _onay
  749. if [ -d $VT/$1 ];then
  750. bagimli_bilgi_dosyala "$1"
  751. rm -f /tmp/$1.silinecekler
  752. touch /tmp/$1.silinecekler
  753. for pkaltb in $(cat /tmp/$1.gerekler.liste);do
  754. if [ -d $VT/$pkaltb ];then
  755. tbsonuc=()
  756. tbsonuc=$(ters_bagimli_bilgi $pkaltb "kurulu")
  757. if [ ${#tbsonuc[0]} = 0 ];then
  758. ryaz 32 "$pkaltb silinebilir."
  759. echo "$pkaltb" >> /tmp/$1.silinecekler
  760. elif [ "$tbsonuc" = "$1" ];then
  761. ryaz 32 "$pkaltb silinebilir."
  762. echo "$pkaltb" >> /tmp/$1.silinecekler
  763. else
  764. ryaz 31 "$pkaltb silinemez."
  765. echo "ters gerekleri: $tbsonuc"
  766. fi
  767. else
  768. ryaz 32 "$_zaten $pkaltb $_paket_kurulu_degil"
  769. fi
  770. done
  771. _onay="onay"
  772. # otomatik onay verme durum kontrolü
  773. if [ ! -z "$2" ];then _onay="$2";fi
  774. #cat /tmp/$1.silinecekler
  775. if [ $_onay = "oto" ];then
  776. paket_sil_oto "/tmp/$1.silinecekler"
  777. else
  778. paket_sil_oto_onayli "/tmp/$1.silinecekler"
  779. fi
  780. else
  781. ryaz 32 "$_zaten $1 $_paket_kurulu_degil"
  782. exit 1
  783. fi
  784. }
  785. paketsiz_talimatlar(){
  786. for talimatyol in `( ls -d $talimatname/genel/*/* & ls -d $ektalimatname/*/* ) | cat`;do
  787. #echo $talimat
  788. if [ -d $talimatyol ];then
  789. talimat=$(basename $talimatyol)
  790. if [[ ! $(cat $paketdepo/paket*.vt | grep $talimat#) ]] ;then
  791. if [ -d $talimatname/*/*/$talimat ];then
  792. ack=`grep -e '# Tanım:' $talimatname/genel/*/$talimat/talimat | cut -d':' -f2`
  793. elif [ -d $ektalimatname/*/$talimat ];then
  794. ack=`grep -e '# Tanım:' $ektalimatname/*/$talimat/talimat | cut -d':' -f2`
  795. fi
  796. printf '%s = %s \n' "$talimat" "$ack"
  797. fi
  798. fi
  799. done
  800. }
  801. paket_guncelle(){
  802. surum_kontrol $1 $2
  803. if [ -d "$VT/$1" ];then
  804. devir_kontrol $1 $2
  805. fi
  806. }
  807. paket_guncelle_oto(){
  808. derleme_listyap "$1" > /dev/null &&
  809. local kpkt
  810. for kpkt in `cat gerek.liste`;do
  811. durum=`kurulu_kontrol "$kpkt"`
  812. if [ "$durum" = "kurulu" ]; then
  813. paket_guncelle "$kpkt"
  814. fi
  815. done
  816. rm gerek.liste tumgerekler.liste
  817. }
  818. dongu_gosterge(){
  819. count=0
  820. total=$1
  821. pstr="[=======================================================================]"
  822. while [ $count -lt $total ]; do
  823. sleep 0.5 # yapılacak iş veya uyutulur.
  824. count=$(( $count + 1 ))
  825. pd=$(( $count * 73 / $total ))
  826. printf "\r%3d.%1d%% %.${pd}s" $(( $count * 100 / $total )) $(( ($count * 1000 / $total) % 10 )) $pstr
  827. done
  828. }
  829. guncelleme_tespit(){
  830. local _konum
  831. guncelleme_dosya="/tmp/mps.guncellenecekler"
  832. rm -f $guncelleme_dosya
  833. touch $guncelleme_dosya
  834. for kpaket in $(ls $VT/);do
  835. satir=$(sed -n '7p' < $VT/$kpaket/META)
  836. surum=${satir:1:${#satir}-1}
  837. satir2=$(sed -n '8p' < $VT/$kpaket/META)
  838. devir=${satir2:1:${#satir2}-1}
  839. #deposurum=$(grep " $kpaket#" /depo/paketler/paket.vt | cut -d' ' -f3 | cut -d'#' -f 2 | cut -d'-' -f1)
  840. _konum=$(talimat_bul $kpaket)
  841. if [[ "$_konum" = "0" || "$_konum" = "-1" ]];then
  842. ryaz 31 "$kpaket $_talimat_bulunamadi $_surum_kontrol_iptal"
  843. exit 1
  844. fi
  845. source $_konum/talimat
  846. deposurum=`echo -e "$surum" | sort -V | head -n1`
  847. depodevir=`echo -e "$devir" | sort -V | head -n1`
  848. #echo $kpaket " : $surum ---> $deposurum" "$devir ---> $depodevir"
  849. #sleep 3
  850. if [ "$surum" != "$deposurum" ];then
  851. printf "$kpaket -surum: ";echo "$surum ---> $deposurum"
  852. echo $kpaket >> $guncelleme_dosya
  853. elif [ "$devir" != "$depodevir" ];then
  854. printf "$kpaket -devir: ";echo "$devir ---> $depodevir"
  855. echo $kpaket >> $guncelleme_dosya
  856. fi
  857. done
  858. }
  859. sistem_guncelle(){
  860. count=0
  861. esgec=(xorg xorg-app xorg-font xorg-proto kernel-lts kernel-lts-src vlc)
  862. local kpkt
  863. local pk_guncelle
  864. total=`ls $VT | wc -l`
  865. pstr="[=======================================================================]"
  866. git_guncelle
  867. paketvt_guncelle
  868. GS_CIKTI="H"
  869. while [ $count -lt $total ]; do
  870. count=$(( $count + 1 ))
  871. pd=$(( $count * 73 / $total ))
  872. printf "\r%3d.%1d%% %.${pd}s" $(( $count * 100 / $total )) $(( ($count * 1000 / $total) % 10 )) $pstr
  873. kpkt=$(ls -rct $VT | tr " " "\n" | sed -n ${count}'p')
  874. pk_guncelle="e"
  875. if [[ "${esgec[*]}" =~ "${kpkt}" ]];then
  876. pk_guncelle="h"
  877. fi
  878. if [ "$pk_guncelle" = "e" ];then
  879. paket_guncelle "$kpkt" $GS_CIKTI
  880. #printf "."
  881. else
  882. [ $GS_CIKTI = "E" ] && ryaz 31 $kpkt "güncellemesi atlandı"
  883. #ryaz 31 "$kpkt atlandı"
  884. fi
  885. done
  886. ryaz 32 "\nSistem Güncellemesi Tamamlandı."
  887. }
  888. surum_kontrol(){
  889. local _konum pk_sil _paket
  890. _paket=$1
  891. GS_CIKTI="E"
  892. if [ "$2" ]; then
  893. GS_CIKTI="$2"
  894. fi
  895. local ksurum surum pkt dusuk yuksek durum
  896. durum="belirsiz"
  897. satir=`sed -n '7p' < $VT/$_paket/META`
  898. ksurum=${satir:1:${#satir}-1}
  899. _konum=$(talimat_bul $_paket)
  900. if [[ "$_konum" = "0" || "$_konum" = "-1" ]];then
  901. ryaz 31 "$_paket $_talimat_bulunamadi $_surum_kontrol_iptal"
  902. pk_sil="e"
  903. case "${silme_esgec[@]}" in *"$_paket"*) pk_sil="h" ;; esac
  904. if [ "$pk_sil" = "e" ];then
  905. ryaz 32 "$_paket $_paket_depoda_yok $_siliniyor"
  906. mps -sz $_paket
  907. else
  908. ryaz 32 "$_paket silinmesi es geçildi"
  909. fi
  910. else
  911. source $_konum/talimat
  912. dusuk=`echo -e "$ksurum\n$surum" | sort -V | head -n1`
  913. if [ "$ksurum" = "$surum" ];then
  914. durum="guncel"
  915. [ $GS_CIKTI = "E" ] && ryaz 33 "$_paket sürümü güncel"
  916. #printf "."
  917. else
  918. if [ "$ksurum" = "$dusuk" ];then
  919. durum="yukselt"
  920. else
  921. durum="dusur"
  922. fi
  923. gun_onay="h"
  924. if [ "$durum" != "guncel" ];then
  925. while true; do
  926. printf "\n"
  927. ryaz 34 "$_paket sürüm $durum""me işlemi uygulanacak. $ksurum <> $surum ";read -p "e veya h-> " eh
  928. case $eh in
  929. [Ee]* ) gun_onay="e"; break;;
  930. [Hh]* ) break;;
  931. * ) echo "e veya h";;
  932. esac
  933. done
  934. if [ "$gun_onay" = "e" ];then
  935. if [ -d "$talimatname/temel/$_paket" ]; then
  936. kurulum_dogrulama_icerik $_paket
  937. tpk="hayir"
  938. paket_sil "$_paket" "evet"
  939. paket_indir $_paket
  940. pkt=`cat "$paketdepo""paket.vt" | grep "^$_paket " | cut -d' ' -f3`
  941. icerik_ekle "$paketdepo$pkt"
  942. else
  943. paket_sil "$_paket" "evet"
  944. paket_inkur_oto $_paket
  945. fi
  946. ryaz 33 "$_paket sürüm güncellemesi yapıldı"
  947. else
  948. ryaz 31 "$_paket sürüm güncellemesi yapılmadı"
  949. hataloglama "$_paket sürüm güncellemesi yapılmadı"
  950. fi
  951. fi
  952. fi
  953. fi
  954. }
  955. devir_kontrol(){
  956. local _konum pk_sil _paket
  957. _paket="$1"
  958. GS_CIKTI="E"
  959. if [ "$2" ]; then
  960. GS_CIKTI="$2"
  961. fi
  962. local kdevir devir pkt dusuk yuksek durum gun_onay
  963. durum="belirsiz"
  964. satir=`sed -n '8p' < $VT/$_paket/META`
  965. kdevir=${satir:1:${#satir}-1}
  966. _konum=$(talimat_bul $_paket)
  967. if [[ "$_konum" = "0" || "$_konum" = "-1" ]];then
  968. ryaz 31 "$_paket $_talimat_bulunamadi $_devir_kontrol_iptal"
  969. pk_sil="e"
  970. case "${silme_esgec[@]}" in *"$_paket"*) pk_sil="h" ;; esac
  971. if [ "$pk_sil" = "e" ];then
  972. ryaz 32 "$_paket $_paket_depoda_yok $_siliniyor"
  973. mps -sz $_paket
  974. else
  975. ryaz 32 "$_paket silinmesi es geçildi"
  976. fi
  977. else
  978. source $_konum/talimat
  979. dusuk=`echo -e "$kdevir\n$devir" | sort -V | head -n1`
  980. if [ "$kdevir" = "$devir" ];then
  981. durum="guncel"
  982. [ $GS_CIKTI = "E" ] && ryaz 33 "$_paket deviri güncel"
  983. #printf "."
  984. else
  985. if [ "$kdevir" = "$dusuk" ];then
  986. durum="yukselt"
  987. else
  988. durum="dusur"
  989. fi
  990. gun_onay="h"
  991. if [ "$durum" != "guncel" ];then
  992. while true; do
  993. printf "\n"
  994. ryaz 34 "$_paket devir $durum""me işlemi uygulanacak. $kdevir <> $devir ";read -p "e veya h-> " eh
  995. case $eh in
  996. [Ee]* ) gun_onay="e"; break;;
  997. [Hh]* ) break;;
  998. * ) echo "e veya h";;
  999. esac
  1000. done
  1001. if [ "$gun_onay" = "e" ];then
  1002. paket_sil "$_paket" "evet"
  1003. paket_inkur_oto $_paket
  1004. ryaz 33 "$_paket devir güncellemesi yapıldı"
  1005. else
  1006. ryaz 31 "$_paket devir güncellemesi yapılmadı"
  1007. hataloglama "$_paket devir güncellemesi yapılmadı"
  1008. fi
  1009. fi
  1010. fi
  1011. fi
  1012. }
  1013. talimat_surum_takip(){
  1014. local konum _takip_uzanti
  1015. _takip_uzanti=".takip"
  1016. konum=$(talimat_bul $1)
  1017. if [[ $konum == "-1" || $konum == "0" ]];then
  1018. ryaz 31 "$1 $_talimat_bulunamadi"
  1019. exit 1
  1020. else
  1021. if [ -f "$konum/$1$_takip_uzanti" ];then
  1022. source $konum/$1$_takip_uzanti
  1023. if [ "`type -t surum_takip`" = "function" ];then
  1024. ryaz 32 "$1 paketinin kaynak kod arşivleri inceleniyor..."
  1025. surum_takip
  1026. else
  1027. ryaz 31 "$1 talimatının sürüm takip işlevi yok!"
  1028. fi
  1029. else
  1030. ryaz 31 "$1 talimatının takip betiği yok!"
  1031. fi
  1032. fi
  1033. }
  1034. kaynak_kod_indir(){
  1035. local konum adres adres2
  1036. _kk_indir="wget --no-check-certificate -q --show-progress"
  1037. konum=$(talimat_bul $1)
  1038. if [[ $konum == "-1" || $konum == "0" ]];then
  1039. ryaz 31 "$1 $_talimat_bulunamadi"
  1040. exit 1
  1041. else
  1042. source $konum/talimat
  1043. for adres in $kaynak;do
  1044. urlkont='(https?|ftp|file)://[-A-Za-z0-9\+&@#/%?=~_|!:,.;]*[-A-Za-z0-9\+&@#/%=~_|]'
  1045. if [[ $adres =~ $urlkont ]];then
  1046. if [[ $adres =~ "::" ]];then
  1047. adres2=$(echo $adres | cut -d':' -f-2)
  1048. ryaz 32 "$adres2 indiriliyor."
  1049. $_kk_indir $adres2
  1050. else
  1051. ryaz 32 "$adres indiriliyor."
  1052. $_kk_indir $adres
  1053. fi
  1054. else
  1055. ryaz 32 "$adres kopyalanıyor."
  1056. [ -f $konum/$adres ] && cp $konum/$adres .
  1057. fi
  1058. done
  1059. fi
  1060. }
  1061. paket_derle(){
  1062. #parametre olarak direk konum gelecek
  1063. #eski derleme kalıntılarını temizle
  1064. rm -rf tmp.*
  1065. kaynakdizin_kontrol
  1066. local konum derleme_onay eh bagimd derpaket
  1067. derleme_onay="h"
  1068. if [ -d "$1" ];then
  1069. konum="$1"
  1070. derpaket=`basename $1`
  1071. else
  1072. konum=$(talimat_bul $1)
  1073. if [[ $konum == "-1" || $konum == "0" ]];then
  1074. ryaz 31 "$1 $_talimat_bulunamadi"
  1075. exit 1
  1076. fi
  1077. derpaket="$1"
  1078. fi
  1079. if [ -d "$konum" ];then
  1080. mkdir -p tmp."$derpaket"
  1081. cp -a $konum/* tmp."$derpaket"/
  1082. cd tmp."$derpaket"
  1083. if [ "`kurulu_kontrol "$derpaket"`" = "kurulu" ] && [ "$zorla_derle" = "yok" ];then
  1084. derleme_onay="h"
  1085. else
  1086. derleme_onay="e"
  1087. fi
  1088. if [ "$derleme_onay" = "e" ];then
  1089. ryaz 33 "$derpaket" "derleniyor...."
  1090. echo "------------------------"
  1091. mpsd -d 2>&1|tee /tmp/"$derpaket".log
  1092. if ( grep "^=======>" /tmp/"$derpaket".log| tail -1 |grep "ERROR" > /dev/null);then
  1093. echo "derleme sisteminde hata oluştu -----> " /tmp/"$derpaket".log
  1094. exit 1
  1095. fi
  1096. if [ "$kurulum_onay" = "evet" ];then
  1097. for kpkt in `ls $derpaket* | cut -d'#' -f1`;do
  1098. mps -k "$kpkt#"*
  1099. done
  1100. fi
  1101. mv *.mps.lz ../
  1102. else
  1103. ryaz 32 "$_zaten $_paket_kurulu,yine de derlemek için:
  1104. mps -zd $derpaket"
  1105. fi
  1106. cd ..
  1107. rm -r tmp."$derpaket"
  1108. else
  1109. ryaz 31 "talimat dosyası bulunamadı."
  1110. hataloglama "talimat dosyası bulunamadı."
  1111. fi
  1112. }
  1113. bagimlilar_eski(){
  1114. local bagimd konum
  1115. konum="`find "$talimatname" -name $1`"
  1116. konumek="`find "$ektalimatname" -name $1`"
  1117. if [ -f "$konum/talimat" ];then
  1118. bagimd=`cat $konum/talimat | grep "Gerekler" | cut -d':' -f2`
  1119. if [ -n "$bagimd" ]; then
  1120. bagimd=`echo "$bagimd" | sed 's/,/ /g'`
  1121. #sıralı gösterme
  1122. echo `echo "$bagimd" | sed 's/,/ /g'`
  1123. fi
  1124. elif [ -f "$konumek/talimat" ];then
  1125. bagimd=`cat $konumek/talimat | grep "Gerekler" | cut -d':' -f2`
  1126. if [ -n "$bagimd" ]; then
  1127. bagimd=`echo "$bagimd" | sed 's/,/ /g'`
  1128. #sıralı gösterme
  1129. echo `echo "$bagimd" | sed 's/,/ /g'`
  1130. fi
  1131. else
  1132. echo "talimatyok"
  1133. exit 1
  1134. fi
  1135. }
  1136. ##_ bagimlilar() : talimatta yer alan gereklerin listesinin alınması.
  1137. bagimlilar(){
  1138. local bagimd konum
  1139. konum=$(talimat_bul $1)
  1140. if [[ $konum != "-1" && $konum != "0" ]];then
  1141. bagimd=`cat $konum/talimat | grep "Gerekler" | cut -d':' -f2`
  1142. bagimd=$(echo "$bagimd" | sed 's/,/ /g')
  1143. echo "$bagimd"
  1144. else
  1145. echo "$konum"
  1146. fi
  1147. }
  1148. ters_bagimli_bilgi(){
  1149. local gtbpaket _sadece_kurulu
  1150. _sadece_kurulu="hepsi"
  1151. gtbpaket=$1
  1152. if [ ! -z "$2" ];then _sadece_kurulu="$2";fi
  1153. tbgdosya=$(mktemp)
  1154. grep -rli "\s${gtbpaket}\s.*Gerekler\|Gerekler.*\s${gtbpaket}\s" $talimatname > $tbgdosya ;
  1155. grep -rli "\s${gtbpaket}\s.*Gerekler\|Gerekler.*\s${gtbpaket}\s" $ektalimatname >> $tbgdosya ;
  1156. grep -rli "\s${gtbpaket}\s.*Gerekler\|Gerekler.*\s${gtbpaket}$" $ektalimatname >> $tbgdosya ;
  1157. grep -rli "\s${gtbpaket}\s.*Gerekler\|Gerekler.*\s${gtbpaket}$" $talimatname >> $tbgdosya ;
  1158. cat $tbgdosya | xargs -I {} dirname {} | xargs -I {} basename {} | sort > /tmp/${gtbpaket}.tb.txt
  1159. rm -f $tbgdosya
  1160. [ -f /tmp/${gtbpaket}.tbk.txt ] && rm -f /tmp/${gtbpaket}.tbk.txt
  1161. if [ $_sadece_kurulu = "kurulu" ];then
  1162. for _kurulu_pkt in $(cat /tmp/${gtbpaket}.tb.txt);do
  1163. if [ -d $VT/$_kurulu_pkt ];then
  1164. echo "$_kurulu_pkt" >> /tmp/${gtbpaket}.tbk.txt
  1165. fi
  1166. done
  1167. [ -f /tmp/${gtbpaket}.tbk.txt ] && cat "/tmp/${gtbpaket}.tbk.txt"
  1168. else
  1169. cat "/tmp/${gtbpaket}.tb.txt"
  1170. fi
  1171. rm -rf $tbgdizin
  1172. }
  1173. kirik_ters_bagimli_bilgi(){
  1174. ryaz 32 "Aşağıdaki kurulu ters bağımlılıklarda kırılım araması yapılacaktır."
  1175. ters_bagimli_bilgi $1
  1176. ryaz 32 "........"
  1177. talimatlar=$(cat /tmp/$1.tb.txt)
  1178. for tal in $talimatlar;do
  1179. #paket kuruluysa kontrolu yapılacak
  1180. if [ -d "$VT/$tal" ];then
  1181. ryaz 34 "$tal paketi araştırılıyor:"
  1182. kirik_kontrol_paket $tal
  1183. ryaz 34 "--------------------------"
  1184. fi
  1185. done
  1186. }
  1187. bagimli_bilgi(){
  1188. local bagimd konum bag
  1189. bkonum="`find "$talimatname" -name $1`"
  1190. bekkonum="`find "$ektalimatname" -name $1`"
  1191. if [ $bkonum ];then
  1192. konum=$bkonum
  1193. elif [ $bekkonum ];then
  1194. konum=$bekkonum
  1195. else
  1196. ryaz 31 "$1 talimatı bulunamadı!"
  1197. exit 1
  1198. fi
  1199. bagimd=`cat $konum/talimat | grep "Gerekler" | cut -d':' -f2`
  1200. if [ -n "$bagimd" ]; then
  1201. bagimd=`echo "$bagimd" | sed 's/,/ /g'`
  1202. #sıralı gösterme
  1203. #echo `echo "$bagimd" | sed 's/,/ /g'`
  1204. #kurulu kontrollu gosterim
  1205. for bag in $bagimd;do
  1206. if [ "$2" = "dogrula" ];then
  1207. kurulum_dogrulama_icerik "$bag"
  1208. else
  1209. echo "$bag" "`kurulu_kontrol $bag`"
  1210. fi
  1211. done
  1212. fi
  1213. if [ "$2" = "dogrula" ];then
  1214. kurulum_dogrulama_icerik "$1"
  1215. else
  1216. echo "$1" "`kurulu_kontrol $1`"
  1217. fi
  1218. }
  1219. bagimli_bilgi_dosyala(){
  1220. rm -f "/tmp/$1.gerekler.liste"
  1221. local bagimd konum bag
  1222. bkonum="`find "$talimatname" -name $1`"
  1223. bekkonum="`find "$ektalimatname" -name $1`"
  1224. if [ $bkonum ];then
  1225. konum=$bkonum
  1226. elif [ $bekkonum ];then
  1227. konum=$bekkonum
  1228. else
  1229. ryaz 31 "$1 talimatı bulunamadı!"
  1230. exit 1
  1231. fi
  1232. bagimd=`cat $konum/talimat | grep "Gerekler" | cut -d':' -f2`
  1233. if [ -n "$bagimd" ]; then
  1234. bagimd=`echo "$bagimd" | sed 's/,/ /g'`
  1235. #sıralı gösterme
  1236. #echo `echo "$bagimd" | sed 's/,/ /g'`
  1237. #kurulu kontrollu gosterim
  1238. for bag in $bagimd;do
  1239. echo $bag >> "/tmp/$1.gerekler.liste"
  1240. done
  1241. fi
  1242. echo "$1" >> "/tmp/$1.gerekler.liste"
  1243. }
  1244. silme_etkilenen_kontrol(){
  1245. paketet="$2"
  1246. mkdir -p /var/lib/pkg/etkilenen
  1247. mkdir -p /var/lib/pkg/etkilenen/$paketet
  1248. local dizin
  1249. for f in $(cat $1) ; do
  1250. dizin="${f%\'}"
  1251. dizin="${dizin#\'}"
  1252. if [ -d "$dizin" ];then
  1253. for g in `ls "$dizin"` ; do
  1254. if ! grep -Fxq " '$dizin/$g'" "$1"
  1255. then
  1256. echo "$dizin/$g"
  1257. cp -rf "$dizin/$g" /var/lib/pkg/etkilenen/$paketet
  1258. fi
  1259. done
  1260. fi
  1261. done
  1262. }
  1263. # bir paket ile kurulacak yeni paketlerin listesini verir.
  1264. yeni_kurulacak_paketler(){
  1265. [ -f /tmp/mevcut_kurulu.liste ] && rm -rf /tmp/mevcut_kurulu.liste
  1266. ls $VT > /tmp/mevcut_kurulu.liste
  1267. derleme_listyap $1 &> /dev/null
  1268. comm -13 <(sort /tmp/mevcut_kurulu.liste) <(sort tumgerekler.liste)
  1269. [ -f tumgerekler.liste ] && rm -rf tumgerekler.liste
  1270. [ -f gerek.liste ] && rm -rf gerek.liste
  1271. }
  1272. # iki dosyanın içerik karşılaştırması yapar.
  1273. dosya_karsilastir(){
  1274. if cmp -s "$1" "$2"
  1275. then
  1276. echo "evet"
  1277. else
  1278. echo "degil"
  1279. fi
  1280. }
  1281. log_analiz(){
  1282. local zaman durum
  1283. zaman=$1
  1284. durum=$2
  1285. if [ -f "/var/log/mps/mps.log" ];then
  1286. cat $logdosya | grep "$zaman" | grep "$durum" | cut -d' ' -f3
  1287. else
  1288. ryaz 31 "mps.log bulunamadı!"
  1289. hataloglama "mps.log bulunamadı!"
  1290. fi
  1291. }
  1292. etkilenen_kurtar(){
  1293. local dizin paket
  1294. paket=$1
  1295. if [ -f $VT/$paket/kurulan ];then
  1296. cat $VT/$paket/kurulan | cut -d '>' -f2 > /tmp/$paket.sil
  1297. for f in $(cat /tmp/$paket.sil) ; do
  1298. dizin="${f%\'}"
  1299. dizin="${dizin#\'}"
  1300. if [ -d "$dizin" ];then
  1301. for g in `ls "$dizin"` ; do
  1302. if ! grep -Fxq " '$dizin/$g'" "/tmp/$paket.sil"
  1303. then
  1304. if [ -f /tmp/$paket.kurtar ];then
  1305. rm /tmp/$paket.kurtar
  1306. fi
  1307. echo " '$dizin'" >> "/tmp/$paket.kurtar"
  1308. fi
  1309. done
  1310. fi
  1311. done
  1312. if [ -f /tmp/$paket.kurtar ];then
  1313. mv $VT/$paket/kurulan $VT/$paket/ilk.kurulan
  1314. grep -v -F -x -f "/tmp/$paket.kurtar" "/tmp/$paket.sil" > $VT/$paket/kurulan
  1315. ryaz 32 "$paket etkilenen dosyaları kurtarıldı."
  1316. else
  1317. ryaz 32 "$paket etkilenen dosyası yok."
  1318. fi
  1319. rm -f /tmp/$paket.sil
  1320. else
  1321. ryaz 31 "kurulan paket yok!"
  1322. hataloglama "kurulan paket yok!"
  1323. fi
  1324. }
  1325. ters_bagimli_kontrol(){
  1326. ters_bagimli_bilgi $1
  1327. cat /tmp/${1}.tb.txt | sort > tersb.liste
  1328. ls $VT/ | sed "/$1/d" | sort > simdiki.liste
  1329. comm -12 tersb.liste simdiki.liste
  1330. rm tersb.liste simdiki.liste
  1331. }
  1332. kurulu_kontrol(){
  1333. local _konum _apaket
  1334. _apaket=$1
  1335. if [ -d "$kokdizin$VT/$_apaket" ];then
  1336. echo "kurulu"
  1337. exit 0
  1338. fi
  1339. _konum=$(talimat_bul $_apaket)
  1340. if [[ "$_konum" = "0" || "$_konum" = "-1" ]];then
  1341. echo "tanimsiz"
  1342. else
  1343. echo "degil"
  1344. fi
  1345. exit 1
  1346. }
  1347. sistem_kur(){
  1348. local spaket
  1349. for spaket in `cat $1`;do
  1350. ./$betikad -ik "$spaket" -kok $2;
  1351. done
  1352. }
  1353. kaynakdizin_kontrol(){
  1354. if [ ! -d $DERLEME_KAYNAKDIZIN ];then
  1355. mkdir $DERLEME_KAYNAKDIZIN
  1356. fi
  1357. }
  1358. logdizin_kontrol(){
  1359. if [ ! -d $kokdizin$LOGDIZIN ];then
  1360. mkdir $kokdizin$LOGDIZIN
  1361. fi
  1362. if [ ! -d $kokdizin$LOGDIZIN/derleme ];then
  1363. mkdir $kokdizin$LOGDIZIN/derleme
  1364. fi
  1365. if [ ! -f $kokdizin$LOGDIZIN/mps.log ];then
  1366. touch $kokdizin$LOGDIZIN/mps.log
  1367. fi
  1368. if [ ! -f $kokdizin$LOGDIZIN/mps-hata.log ];then
  1369. touch $kokdizin$LOGDIZIN/mps-hata.log
  1370. fi
  1371. if [ ! -f $kokdizin$LOGDIZIN/mps-git.log ];then
  1372. touch $kokdizin$LOGDIZIN/mps-git.log
  1373. fi
  1374. }
  1375. tarihce_dkontrol(){
  1376. if [ ! -d $TARIHCE_DIZIN ];then
  1377. mkdir $TARIHCE_DIZIN
  1378. fi
  1379. }
  1380. temel_tarihce_kontrol(){
  1381. if [ ! -f $TARIHCE_DIZIN/temel-pkvt.tar.lz ];then
  1382. tarihce_olustur "temel"
  1383. fi
  1384. }
  1385. tarihce_liste(){
  1386. tarihce_dkontrol
  1387. ls $TARIHCE_DIZIN/
  1388. }
  1389. tarihce_yap(){
  1390. tarihce_dkontrol
  1391. local t_isim
  1392. if [ "$temel_tarihce" = "evet" ];then
  1393. t_isim="temel"
  1394. else
  1395. t_isim=`date +%m-%d-%y.%H%M%S`
  1396. fi
  1397. tarihce_olustur "$t_isim"
  1398. }
  1399. tarihce_olustur(){
  1400. bsdtar -P -r -f $TARIHCE_DIZIN/"$1"-pkvt.tar $VT
  1401. lzip -9 $TARIHCE_DIZIN/"$1"-pkvt.tar
  1402. }
  1403. tarihce_yukle(){
  1404. tarihce_dkontrol
  1405. local islem_onay cikis
  1406. sil_onay="h"
  1407. if [ -f $TARIHCE_DIZIN/"$1-pkvt.tar.lz" ];then
  1408. bsdtar -p -o -C /tmp -xf $TARIHCE_DIZIN/"$1-pkvt.tar.lz" 2>/dev/null
  1409. ls /tmp$VT/ > hedef.pkvt
  1410. ls $VT/ > simdiki.pkvt
  1411. grep -v -F -x -f hedef.pkvt simdiki.pkvt > sil.liste
  1412. grep -v -F -x -f simdiki.pkvt hedef.pkvt > kur.liste
  1413. #rm hedef.pkvt simdiki.pkvt
  1414. rm -r /tmp/var
  1415. cikis=""
  1416. if [ -s sil.liste ];then
  1417. ryaz 32 "silinecekler"
  1418. ryaz 32 "------------"
  1419. cat sil.liste
  1420. fi
  1421. if [ -s kur.liste ];then
  1422. ryaz 32 "kurulacaklar"
  1423. ryaz 32 "------------"
  1424. cat kur.liste
  1425. fi
  1426. if [ ! -s sil.liste ] && [ ! -s kur.liste ];then
  1427. ryaz 32 "sistem zaten hedef durumda!"
  1428. exit 1
  1429. fi
  1430. while true; do
  1431. ryaz 34 "otomatik geri dönüşüm başlasın mı?";read -p "e veya h-> " eh
  1432. case $eh in
  1433. [Ee]* ) islem_onay="e"; break;;
  1434. [Hh]* ) break;;
  1435. * ) echo "e veya h";;
  1436. esac
  1437. done
  1438. if [ "$islem_onay" = "e" ];then
  1439. mps -os sil.liste
  1440. mps kurul kur.liste
  1441. mv sil.liste silinenler.liste
  1442. mv kur.liste kurulanlar.liste
  1443. exit 1
  1444. fi
  1445. mv sil.liste sil_iptal.liste
  1446. mv kur.liste kur_iptal.liste
  1447. else
  1448. ryaz 31 "ilgili tarihce dosyası bulunamadı!"
  1449. hataloglama "ilgili tarihce dosyası bulunamadı!"
  1450. fi
  1451. [ -f $PWD/hedef.pkvt ] && rm $PWD/hedef.pkvt
  1452. [ -f $PWD/simdiki.pkvt ] && rm $PWD/simdiki.pkvt
  1453. }
  1454. tarihce_sil(){
  1455. tarihce_dkontrol
  1456. if [ -f $TARIHCE_DIZIN/"$1-pkvt.tar.lz" ];then
  1457. rm -f $TARIHCE_DIZIN/"$1-pkvt.tar.lz"
  1458. else
  1459. ryaz 31 "ilgili tarihce dosyası bulunamadı!"
  1460. hataloglama "ilgili tarihce dosyası bulunamadı!"
  1461. fi
  1462. }
  1463. sunucu_ayarla(){
  1464. wget -q --spider "$1/paket.vt"
  1465. yenisun="$1"
  1466. if [ $? -eq 0 ]; then
  1467. sed -i.bak 's/^\(sunucu=\).*/\1"xverix\/"/' /etc/mps.conf
  1468. sed -i "s|xverix|$1|" /etc/mps.conf
  1469. mps -sun
  1470. else
  1471. ryaz 31 "Tanımsız paket sunucusu!"
  1472. hataloglama "Tanımsız paket sunucusu!"
  1473. fi
  1474. }
  1475. sunucu_ayarla_y(){
  1476. wget -q --spider "$1/paket.vt"
  1477. yenisun="$1"
  1478. if [ $? -eq 0 ]; then
  1479. source /etc/mps.conf
  1480. ydizi=("${sunucular[@]}")
  1481. ydizi[0]="$1"
  1482. echo ${ydizi[@]}
  1483. esnc=${sunucular[0]}
  1484. ysnc=${ydizi[0]}
  1485. sed -i "/^sunucular/s/"${esnc}"\'"$ysnc"'/g" /etc/mps.conf
  1486. else
  1487. ryaz 31 "Tanımsız paket sunucusu!"
  1488. fi
  1489. }
  1490. loglama(){
  1491. logdizin_kontrol
  1492. echo "$(date +'%F %T') $1" >> "$kokdizin/$LOGDIZIN/mps.log"
  1493. }
  1494. hataloglama(){
  1495. logdizin_kontrol
  1496. echo "$(date +'%F %T') $1" >> "$kokdizin/$LOGDIZIN/mps-hata.log"
  1497. }
  1498. indir_talimat_paketle(){
  1499. local dosya _ip _talkonum
  1500. _wget="wget --quiet --no-check-certificate"
  1501. if [ ! -z "$1" ];then dosya=$1;else ryaz 31 "link parametre eksik";exit 1;fi
  1502. if [ ! -z "$2" ];then _ip=$2;else ryaz 31 "ip tipi parametresi eksik";exit 1;fi
  1503. if [ ! -z "$3" ];then _talkonum=$3;else ryaz 31 "talimatname konum parametre eksik";exit 1;fi
  1504. urlkont='(https?|ftp|file)://[-A-Za-z0-9\+&@#/%?=~_|!:,.;]*[-A-Za-z0-9\+&@#/%=~_|]'
  1505. if [[ $dosya =~ $urlkont ]];then
  1506. gdosya=`mktemp`
  1507. if [[ $_ip =~ "-6" ]]; then
  1508. ryaz 32 "talimat ipv6 linkten cekilecek"
  1509. $_wget $_ip $dosya -O $gdosya
  1510. else
  1511. ryaz 32 "talimat ipv4 linkten cekilecek"
  1512. $_wget $_ip $dosya -O $gdosya
  1513. fi
  1514. dosya=$gdosya
  1515. else
  1516. ryaz 31 "link geçersiz"
  1517. exit 1
  1518. fi
  1519. if [ ! -f $dosya ];then
  1520. ryaz 31 "$dosya talimat dosyasi yok!"
  1521. exit 1
  1522. fi
  1523. local _isim
  1524. _isim=()
  1525. _isim=`grep 'name=' $dosya | cut -d'=' -f 2`
  1526. paketisim="${_isim[0]}"
  1527. if [ ! -n "$paketisim" ]; then
  1528. ryaz 31 "paket ismi degiskeni bulunamadı!"
  1529. exit 1
  1530. fi
  1531. if [ ! -d $_talkonum/${paketisim:0:1}/$paketisim ];then
  1532. mkdir -p $_talkonum/${paketisim:0:1}/$paketisim
  1533. cp -f $dosya $_talkonum/${paketisim:0:1}/$paketisim/talimat
  1534. talimat_degisken_cevrim $_talkonum/${paketisim:0:1}/$paketisim/talimat
  1535. ryaz 32 "$paketisim talimatı hazırlandı."
  1536. else
  1537. ryaz 31 "$paketisim talimatı zaten talimatnamede var!"
  1538. fi
  1539. }
  1540. talimat_degisken_cevrim(){
  1541. _dosya=$1
  1542. if [ -f $_dosya ];then
  1543. sed -i 's/name=/isim=/g' $_dosya
  1544. sed -i 's/$name/$isim/g' $_dosya
  1545. sed -i 's/${name}/${isim}/g' $_dosya
  1546. sed -i 's/version=/surum=/g' $_dosya
  1547. sed -i 's/$version/$surum/g' $_dosya
  1548. sed -i 's/${version}/${surum}/g' $_dosya
  1549. sed -i 's/${version%.*}/${surum%.*}/g' $_dosya
  1550. sed -i 's/release=/devir=/g' $_dosya
  1551. sed -i 's/$release/$devir/g' $_dosya
  1552. sed -i 's/${release}/${devir}/g' $_dosya
  1553. sed -i 's/source=/kaynak=/g' $_dosya
  1554. sed -i 's/build()/derle()/g' $_dosya
  1555. sed -i 's/build ()/derle()/g' $_dosya
  1556. sed -i 's/Description:/Tanım:/g' $_dosya
  1557. sed -i 's/Description=/Tanım:/g' $_dosya
  1558. sed -i 's/Url=/Url:/g' $_dosya
  1559. sed -i 's/description:/Tanım:/g' $_dosya
  1560. sed -i 's/Description :/Tanım:/g' $_dosya
  1561. sed -i 's/Packager:/Paketçi:/g' $_dosya
  1562. sed -i 's/packager:/Paketçi:/g' $_dosya
  1563. sed -i 's/Packagers:/Paketçi:/g' $_dosya
  1564. sed -i 's/Packager :/Paketçi:/g' $_dosya
  1565. sed -i 's/Depends on:/Gerekler:/g' $_dosya
  1566. sed -i 's/Depends:/Gerekler:/g' $_dosya
  1567. sed -i 's/Depends on :/Gerekler:/g' $_dosya
  1568. sed -i '/Maintainer:/d' $_dosya
  1569. sed -i '/Optional:/d' $_dosya
  1570. else
  1571. ryaz 31 "ilgili talimat dosyası bulunamadı."
  1572. fi
  1573. }
  1574. talimat_olustur(){
  1575. if [ "$1" = '?' ];then
  1576. ryaz 34 "kullanım : mps -to paket_ismi"
  1577. else
  1578. local isim
  1579. isim=$1
  1580. mkdir -p $isim
  1581. tee "$isim/talimat" > /dev/null <<EOF
  1582. # Tanım: paket açıklaması
  1583. # Url: paketin ilgili web sayfası
  1584. # Paketçi: paketçi
  1585. # Gerekler:
  1586. isim=$isim
  1587. surum=1
  1588. devir=1
  1589. kaynak=()
  1590. derle() {
  1591. cd \$isim-\$surum
  1592. ./autogen.sh
  1593. ./configure --prefix=/usr
  1594. make
  1595. make DESTDIR=\$PKG install
  1596. }
  1597. EOF
  1598. ryaz 34 $isim "talimatı oluşturuldu."
  1599. fi
  1600. }
  1601. git_guncelle() {
  1602. kaynakdizin_kontrol
  1603. gitayar_kontrol
  1604. cd $DERLEME_KAYNAKDIZIN
  1605. #git sunucudan guncelleme
  1606. ryaz 33 "$_git_guncelleniyor"
  1607. if [ ! -d milis.git ];then
  1608. git clone $git_sunucu milis.git
  1609. rsync -av /sources/milis.git/rootfs/* /
  1610. else
  1611. cd milis.git
  1612. git pull >& $LOGDIZIN/mps-git.log
  1613. if grep -q "Already\ up-to-date" $LOGDIZIN/mps-git.log; then
  1614. ryaz 32 "$_git_guncel"
  1615. else
  1616. #ryaz 32 `cat $LOGDIZIN/mps-git.log`
  1617. ryaz 32 "$_git_guncellendi"
  1618. fi
  1619. #baslangic betiklerinin guncellenmesi
  1620. rsync -aviz -q --delete /sources/milis.git/rootfs/lib/services/* /lib/services/
  1621. fi
  1622. cd `dirname $talimatname`
  1623. ryaz 33 "$_yerel_esitleniyor"
  1624. rm -r $talimatname
  1625. mkdir -p $talimatname
  1626. rsync -aviz -q --delete $DERLEME_KAYNAKDIZIN/milis.git/talimatname/ $talimatname
  1627. rm -r `dirname $talimatname`/bin/*
  1628. rsync -aviz -q --delete $DERLEME_KAYNAKDIZIN/milis.git/bin/ `dirname $talimatname`/bin
  1629. rm -r `dirname $talimatname`/ayarlar/*
  1630. rsync -aviz -q --delete $DERLEME_KAYNAKDIZIN/milis.git/ayarlar/ `dirname $talimatname`/ayarlar
  1631. #ikili dosyaların /usr/bin altına kısayol atılması
  1632. for i in /root/bin/*; do
  1633. j=`basename $i`
  1634. if [ ! -f /usr/bin/$j ];then
  1635. ln -s /root/bin/$j /usr/bin/$j
  1636. fi
  1637. done
  1638. ryaz 32 "$_yerel_esitlendi"
  1639. }
  1640. git_proje_kur(){
  1641. local proje proj_dizin git_link
  1642. git_link="https://github.com/milisarge"
  1643. proje="$1"
  1644. proj_dizin="/opt"
  1645. mkdir -p $proj_dizin
  1646. if [ -d "$proj_dizin/$proje" ];then
  1647. cd $proj_dizin/$proje
  1648. git pull
  1649. if [ -f mops ];then
  1650. . mops
  1651. mops_gun
  1652. fi
  1653. else
  1654. git clone "$git_link/$proje" "$proj_dizin/$proje"
  1655. cd $proj_dizin/$proje
  1656. if [ -f mops ];then
  1657. . mops
  1658. mops_kur
  1659. mops_sil
  1660. mops_gun
  1661. fi
  1662. fi
  1663. }
  1664. op_kur(){
  1665. local mopsyol mops
  1666. mops=$1
  1667. mopsyol="~/mops/$mops"
  1668. # talimatnameye bak
  1669. if [ -d $mopsyol ]; then
  1670. $mopsyol/talimat kur
  1671. # yerelde ara
  1672. elif [ -f $PWD/"$mops" ]; then
  1673. ./"$mops" kur
  1674. else
  1675. ryaz 31 "$1 mops talimatı bulunamadı!"
  1676. fi
  1677. }
  1678. op_sil(){
  1679. local mopsyol mops
  1680. mops=$1
  1681. mopsyol="~/mops/$mops"
  1682. # talimatnameye bak
  1683. if [ -d $mopsyol ]; then
  1684. $mopsyol/talimat sil
  1685. # yerelde ara
  1686. elif [ -f $PWD/"$mops" ]; then
  1687. ./"$mops" sil
  1688. else
  1689. ryaz 31 "$1 mops talimatı bulunamadı!"
  1690. fi
  1691. }
  1692. servis_kur(){
  1693. cd /sources/milis.git/ayarlar/servisler
  1694. if make kur-$1
  1695. then
  1696. ryaz 32 "$1 servisi kuruldu"
  1697. else
  1698. ryaz 31 "$1 servisi kurulum olumsuz!!!"
  1699. hataloglama "$1 servisi kurulum olumsuz!!!"
  1700. fi
  1701. cd -
  1702. }
  1703. servis_sil(){
  1704. cd /sources/milis.git/ayarlar/servisler
  1705. if make sil-$1
  1706. then
  1707. ryaz 32 "$1 servisi silindi"
  1708. else
  1709. ryaz 31 "$1 servisi silme olumsuz!!!"
  1710. hataloglama "$1 servisi silme olumsuz!!!"
  1711. fi
  1712. cd -
  1713. }
  1714. servisler_kontrol(){
  1715. servisler=`ls /sources/milis.git/ayarlar/servisler/mbd/init.d`
  1716. for ser in $(ls /etc/init.d/) ; do
  1717. if [ ! -f /sources/milis.git/ayarlar/servisler/mbd/init.d/$ser ];then
  1718. printf "%12s %s\n" "$ser mbd kaydı bulunamadı!"
  1719. else
  1720. if cmp -s "/sources/milis.git/ayarlar/servisler/mbd/init.d/$ser" "$ser"
  1721. then
  1722. printf "%12s %s\n" "$ser" "mbd uyumsuz"
  1723. else
  1724. #ryaz 32 "$ser mbd +++++"
  1725. printf "%12s %s\n" "$ser" "mbd +++++"
  1726. fi
  1727. fi
  1728. done
  1729. }
  1730. talimat_bilgi(){
  1731. local _konum _apaket
  1732. _apaket=$1
  1733. _konum=$(talimat_bul $_apaket)
  1734. if [[ "$_konum" = "0" || "$_konum" = "-1" ]];then
  1735. ryaz 31 "$_apaket $_paket_tanimsiz"
  1736. exit 1
  1737. else
  1738. grep "build()" -B 12 $_konum/talimat |sed '$ d'
  1739. ryaz 32 "file://$_konum/talimat"
  1740. ryaz 32 "https://raw.githubusercontent.com/milisarge/malfs-milis/master/$(echo $_konum | cut -d'/' -f3-6)/talimat"
  1741. fi
  1742. }
  1743. sistem_kontrol(){
  1744. paketvt_kontrol
  1745. sunucu_kontrol
  1746. }
  1747. sunucu_kontrol(){
  1748. uzunluk=${#sunucular[@]}
  1749. for ((i=1;i<=$uzunluk;i++)); do
  1750. pktsunucu=${sunucular[$i-1]}
  1751. wget --no-check-certificate -q --spider "$pktsunucu/paket.vt"
  1752. if [ $? -eq 0 ]; then
  1753. ryaz 32 "$pktsunucu paket sunucu aktif"
  1754. else
  1755. ryaz 31 "$pktsunucu sunucu erişim dışı"
  1756. fi
  1757. done
  1758. }
  1759. gitayar_kontrol(){
  1760. if [ ! -f /root/.gitconfig ];then
  1761. git_ssl_iptal
  1762. git_otokimlik
  1763. fi
  1764. }
  1765. kirik_kontrol_sistem(){
  1766. local onek sonek
  1767. onek="'"
  1768. sonek="'"
  1769. for paket in `ls $VT/`
  1770. do
  1771. ryaz 33 $paket "kontrol ediliyor."
  1772. kirik_kontrol_paket $paket
  1773. ryaz 33 $paket "kontrol edildi."
  1774. done
  1775. }
  1776. kirik_kontrol_paket(){
  1777. local onek sonek
  1778. onek="'"
  1779. sonek="'"
  1780. for kdosya in `kurulum_dosya_listele $1`
  1781. do
  1782. dosya=${kdosya#$onek}
  1783. dosya=${dosya%$sonek}
  1784. #echo "${dosya}"
  1785. if [ -f $dosya ];then
  1786. if [[ $(milis-ldd -d $dosya | grep not\ found) ]] ;then
  1787. echo $kdosya
  1788. fi
  1789. fi
  1790. done
  1791. }
  1792. kurulum_dogrulama(){
  1793. for kuruland in `ls $VT`
  1794. do
  1795. if [ ! -f "$VT/$kuruland/kurulan" ]; then
  1796. ryaz 32 "$kuruland hasarlı kurulum tesbiti!"
  1797. rm -r $VT/$kuruland
  1798. paket_indir $kuruland
  1799. mps -k "$paketdepo/$kuruland"*.mps.lz
  1800. ryaz 32 "$kuruland hasarlı kurulum onarıldı."
  1801. fi
  1802. done
  1803. }
  1804. paket_icerik_dogrulama(){
  1805. local dosyayol kontpaketadi tempmpslz pidanayol
  1806. kontpaketadi="$1"
  1807. if [ -f "$paketdepo/$kontpaketadi#"*.mps.lz ];then
  1808. tempmpslz=$(mktemp)
  1809. if [ -d $2 ];then
  1810. pidanayol="$2"
  1811. tar tf "$paketdepo/$kontpaketadi#"*.mps.lz > $tempmpslz
  1812. IFS=''
  1813. while read dosyayol;do
  1814. if [ ! -f $pidanayol$dosyayol ] && [ ! -d $pidanayol$dosyayol ] && [ $dosyayol != ".MTREE" ] && [ $dosyayol != ".META" ]; then
  1815. ryaz 31 "$pidanayol$dosyayol hasarlı"
  1816. while true; do
  1817. ryaz 34 $kontpaketadi" paketi yenilensin mi?";read -p "e veya h-> " eh
  1818. case $eh in
  1819. [Ee]* ) tekrarkur="evet";agdan_kur "$kontpaketadi";break;;
  1820. [Hh]* ) break;;
  1821. * ) echo "e veya h";;
  1822. esac
  1823. done
  1824. fi
  1825. done < $tempmpslz
  1826. else
  1827. ryaz 31 "$2 kök dizini bulunamadı!"
  1828. exit 1
  1829. fi
  1830. else
  1831. ryaz 31 "$1 paketi bulunamadı!"
  1832. exit 1
  1833. fi
  1834. }
  1835. kurulum_dogrulama_icerik_tum(){
  1836. ryaz 33 "paket veritabanı yedekleniyor"
  1837. tarihce_yap
  1838. for kurulanpak in `ls $VT`
  1839. do
  1840. if [ -f "$VT/$kurulanpak/kurulan" ]; then
  1841. kurulum_dogrulama_icerik $kurulanpak
  1842. ryaz 32 "$kurulanpak kurulum icerik onarıldı."
  1843. fi
  1844. done
  1845. }
  1846. chr_yordam() {
  1847. [ "$1" -lt 256 ] || return 1
  1848. printf "\\$(printf '%03o' "$1")"
  1849. }
  1850. ord_yordam() {
  1851. LC_CTYPE=C printf '%d' "'$1"
  1852. }
  1853. kurulum_dogrulama_icerik(){
  1854. paketadi="$1"
  1855. onar="hayir"
  1856. #echo $VT
  1857. #tarihce_yap
  1858. ryaz 33 "$paketadi içeriği kontrol ediliyor."
  1859. if [ -f "$VT/$paketadi/kurulan" ]; then
  1860. ilksatir=`head -n 1 $VT/$paketadi/kurulan`
  1861. if [[ `echo ${ilksatir}` =~ ^‘ ]] ; then
  1862. ryaz 32 "temel sistem paket kurulan hatası düzeltildi!"
  1863. sed -i 's/‘/'\''\//;s/’/'\''/' $VT/$paketadi/kurulan
  1864. fi
  1865. #for dosyayol in $(cat $VT/$paketadi/kurulan);do
  1866. while read dosyayol; do
  1867. #for dosyayol in $(<$VT/$paketadi/kurulan);do
  1868. dosyayol=$(echo $dosyayol | sed 's/^.\(.*\).$/\1/')
  1869. netdosyayol="${dosyayol:1:${#dosyayol}-1}"
  1870. if [ ! -f $dosyayol ] && [ ! -d $dosyayol ] ; then
  1871. ryaz 31 "$dosyayol hasarlı"
  1872. onar="evet"
  1873. fi
  1874. done < $VT/$paketadi/kurulan
  1875. if [ $onar = "evet" ];then
  1876. ryaz 34 "$paketadi hasarlı dosya barındırıyor,düzeltilsin mi?";read -p "e veya h-> " eh
  1877. case $eh in
  1878. [Ee]* ) tekrarkur="evet";agdan_kur "$paketadi";;
  1879. [Hh]* ) ryaz 31 "$paketadi pas geçildi.";;
  1880. * ) echo "e veya h";;
  1881. esac
  1882. fi
  1883. ryaz 32 "$paketadi kurulum doğrulama tamamlandı."
  1884. elif [ -d "$VT/$paketadi" ]; then
  1885. cp -rf $VT $VT.yedek
  1886. ryaz 31 "$paketadi hasarlı kurulum tesbiti!"
  1887. #onarma
  1888. rm -r $VT/$paketadi
  1889. paket_indir $paketadi
  1890. mps -k "$paketdepo/$paketadi#"*.mps.lz
  1891. ryaz 32 "$paketadi hasarlı kurulum onarıldı."
  1892. else
  1893. ryaz 31 "$paketadi $_paket_kurulu_degil"
  1894. fi
  1895. }
  1896. tamir_temel_kurulan(){
  1897. if [ ! -d $VT ] ; then
  1898. ryaz 31 "paket kurulum vt bulunamadı!"
  1899. exit 1
  1900. fi
  1901. for paketadi in `ls $VT`
  1902. do
  1903. sed -i 's/‘/'\''\//;s/’/'\''/' $VT/$paketadi/kurulan
  1904. done
  1905. }
  1906. depo_paketler_liste(){
  1907. ls $paketdepo*.mps.lz
  1908. }
  1909. depo_paketler_sil(){
  1910. while true; do
  1911. pktsay="0"
  1912. [[ $(ls $paketdepo*.mps.lz) ]] && pktsay=$(ls $paketdepo/*.mps.lz | wc -l)
  1913. ryaz 34 "$paketdepo altındaki $pktsay paket silinecek?";read -p "e veya h-> " eh
  1914. case $eh in
  1915. [Ee]* ) rm $paketdepo/*.mps.lz;ryaz 32 "$paketdepo paketler temizlendi."; break;;
  1916. [Hh]* ) break;;
  1917. * ) echo "e veya h";;
  1918. esac
  1919. done
  1920. }
  1921. kurulum_dosya_listele(){
  1922. cat "$VT/$1/kurulan"
  1923. }
  1924. # bir dosyanın kurulmuş hangi pakette olduğunu bulur.
  1925. kurulan_dosya_bul(){
  1926. grep -rli "$1" "$VT/" | cut -d "/" -f6
  1927. }
  1928. paketvt_kontrol(){
  1929. mkdir -p /depo/paketler
  1930. if [ ! -f /depo/paketler/paket.vt ];then
  1931. touch /depo/paketler/paket.vt
  1932. fi
  1933. }
  1934. pvt_olustur(){
  1935. if [ ! -f paket.vt ];then
  1936. touch paket.vt
  1937. fi
  1938. if [ -f "paket.vt" ];then
  1939. mv "paket.vt" "paket.vt.eski"
  1940. fi
  1941. ryaz 32 "paket.vt oluşturuluyor...."
  1942. for paket in `ls *.mps.lz`
  1943. do
  1944. paketad="`echo $paket|cut -d "#" -f1`"
  1945. shaek=`sha1sum $paket`
  1946. echo $paketad $shaek >> paket.vt
  1947. done
  1948. ryaz 32 "paket.vt oluşturuldu."
  1949. }
  1950. paketvt_guncelle(){
  1951. uzunluk=${#sunucular[@]}
  1952. #for snc in "${sunucular[@]}"
  1953. for ((i=1;i<=$uzunluk;i++)); do
  1954. pktsunucu=${sunucular[$i-1]}
  1955. pkvt=""
  1956. if [ $i = 1 ];then
  1957. pktvt="paket.vt"
  1958. else
  1959. pktvt="paket${i-1}.vt"
  1960. fi
  1961. wget --no-check-certificate -q --spider "$pktsunucu""paket.vt"
  1962. if [ $? -eq 0 ]; then
  1963. ryaz 32 $pktsunucu
  1964. ryaz 32 "$_paketvt_guncelleniyor" "$paketdepo""$pktvt"
  1965. if [ -f "$paketdepo""$pktvt" ];then
  1966. mv "$paketdepo""$pktvt" "$paketdepo""$pktvt.eski"
  1967. fi
  1968. wget --no-check-certificate -q --show-progress -P "$paketdepo" "$pktsunucu""paket.vt" -O "$paketdepo""$pktvt"
  1969. #rm /tmp/paket.vt*
  1970. else
  1971. ryaz 31 "$pktsunucu paket veritabanı güncelleme olumsuz."
  1972. hataloglama "paket veritabanı güncelleme olumsuz."
  1973. fi
  1974. done
  1975. }
  1976. paket_indir(){
  1977. if [ -f "$paketdepo""paket.vt" ];then
  1978. local pkt
  1979. uzunluk=${#sunucular[@]}
  1980. #paketin paketin sunucularında aranaması,buldugu sunucudan indirmesi
  1981. for ((i=1;i<=$uzunluk;i++)); do
  1982. pktsunucu=${sunucular[$i-1]}
  1983. pkvt=""
  1984. if [ $i = 1 ];then
  1985. pktvt="paket.vt"
  1986. else
  1987. pktvt="paket${i-1}.vt"
  1988. fi
  1989. pkt=`cat "$paketdepo$pktvt" | grep "^$1 " | cut -d' ' -f3`
  1990. #ryaz 32 "$1 paketi $pktsunucu altında aranıyor"
  1991. if [ $pkt ];then
  1992. #ryaz 32 "$1 paketi $pktsunucu altında bulundu"
  1993. ekontdeg=`cat "$paketdepo$pktvt" | grep "^$1 " | cut -d' ' -f2`
  1994. cpaket="${pkt/'#'/'%23'}"
  1995. #paketin sunucuda varlık kontrolu
  1996. wget -q --spider "$pktsunucu$cpaket"
  1997. if [ $? -eq 0 ]; then
  1998. wget --no-check-certificate -nc -q --show-progress -P "$paketdepo" "$pktsunucu$cpaket"
  1999. if [[ "$?" != 0 ]]; then
  2000. ryaz 31 "indirme hatalı"
  2001. hataloglama "indirme hatalı"
  2002. else
  2003. mkontdeg=`sha1sum "$paketdepo$pkt" | cut -d' ' -f1`
  2004. if [ "$ekontdeg" != "$mkontdeg" ];then
  2005. ryaz 31 "$_shasum_uyumsuzluk,paket tekrar indiriliyor."
  2006. hataloglama "sha1sum uyusmaslik tespit edildi,paket tekrar indiriliyor."
  2007. rm -f "$paketdepo$pkt"
  2008. paket_indir "$1"
  2009. #else
  2010. #ryaz 32 "$_zaten $1 $_paket_onbellek_depoda_var"
  2011. fi
  2012. fi
  2013. else
  2014. ryaz 31 "$1 paketi bulunamadı $pktsunucu dan silinmiş olmalı!"
  2015. fi
  2016. else
  2017. ryaz 31 "$pktsunucu $1 paketi bulunmuyor!"
  2018. fi
  2019. done
  2020. else
  2021. ryaz 31 "$paketdepo altında paket.vt dosyanız yok.Güncelleme yapınız!"
  2022. fi
  2023. }
  2024. yerelden_kur(){
  2025. local silme
  2026. pkontrol=`basename $1 | grep -w "mps.lz"`
  2027. if [ ! -z "$pkontrol" -a "$pkontrol" != "" ]; then
  2028. paketad=`echo "$1" | cut -d'#' -f1`
  2029. kkont=`kurulu_kontrol "$paketad"`
  2030. if [ "$kkont" = "degil" ];then
  2031. icerik_ekle "$1"
  2032. elif [ "$kkont" = "kurulu" ];then
  2033. if [ "$tekrarkur" = "hayir" ];then
  2034. while true; do
  2035. ryaz 31 "$1 paketi zaten kurulu silinip kurulsun mu?"
  2036. read -p "e veya h -> " eh
  2037. case $eh in
  2038. [Ee]* ) silme="e"; break;;
  2039. [Hh]* ) break;;
  2040. * ) echo "e veya h";;
  2041. esac
  2042. done
  2043. fi
  2044. if [ "$silme" = "e" ];then
  2045. ryaz 33 "silinecekelerin kontrolu için"
  2046. paket_sil "$paketad"
  2047. icerik_ekle "$1"
  2048. fi
  2049. else
  2050. icerik_ekle "$1"
  2051. #while true; do
  2052. #ryaz 31 "$1 paketi talimatname dışı.Yine de kurulsun mu? (kokdizin=$kokdizin) "
  2053. #read -p "e veya h -> " eh
  2054. #case $eh in
  2055. # [Ee]* ) icerik_ekle "$1"; break;;
  2056. # [Hh]* ) break;;
  2057. # * ) echo "e veya h";;
  2058. #esac
  2059. #done
  2060. fi
  2061. else
  2062. ryaz 31 "yerelde mps paketi bulunamadı."
  2063. fi
  2064. }
  2065. agdan_kur(){
  2066. local kontroldeg
  2067. kkont=`kurulu_kontrol "$1"`
  2068. if [ "$kkont" = "degil" ] || [ "$tekrarkur" = "evet" ];then
  2069. paket_indir "$1"
  2070. if [ $(find $paketdepo -name $1#* | head -1) ];then
  2071. if [ -f $(ls -1t "$paketdepo$1#"* | head -1) ];then
  2072. if [ "$kurulum_onay" = "evet" ];then
  2073. if [ "$tekrarkur" = "evet" ];then
  2074. paket_sil "$1" "evet"
  2075. fi
  2076. #depo/paketler altında birden fazla sürüm kontrolü yapılır,güncel olan seçilir.
  2077. surumler=$(ls "$paketdepo$1#"* | wc -l)
  2078. if [ $surumler = 1 ];then
  2079. icerik_ekle $(ls "$paketdepo$1#"*)
  2080. elif [ $surumler -gt 1 ];then
  2081. ryaz 31 "$1 paketinin birden fazla sürümü var!"
  2082. kurulacak_guncel_paket=$(ls -1t "$paketdepo$1#"* | head -1)
  2083. ryaz 32 "$kurulacak_guncel_paket sürümü kuruluyor"
  2084. icerik_ekle $kurulacak_guncel_paket
  2085. fi
  2086. fi
  2087. else
  2088. ryaz 31 "$1 indirme hatası"
  2089. fi
  2090. fi
  2091. elif [ "$kkont" = "kurulu" ];then
  2092. #ryaz 32 "$1 paketi zaten kurulu!"
  2093. printf "."
  2094. else
  2095. ryaz 31 "tanımsız paket veya tekrar kurulum iptali var!"
  2096. fi
  2097. }
  2098. ayarlar() {
  2099. while [ "$1" ]; do
  2100. case $1 in
  2101. ### Milis_Paket_Sistemi_Yardim
  2102. ### --------------------------
  2103. ### mps -i paketismi = sadece paketi indirir,paket kurulmaz.
  2104. -i|--indir)
  2105. kurulum_onay="olumsuz"
  2106. paket_indir "$2"
  2107. exit 0 ;;
  2108. ### mps -ik paketismi = ilgili paketi indirirve kurar.
  2109. -ik|--inku)
  2110. if [ "$3" == "-kok" ] && [ -d "$4" ]; then
  2111. kokdizin="$4"
  2112. fi
  2113. agdan_kur "$2" ;;
  2114. ### mps -ikz|yekur paketismi = ilgili indirip tekrardan kurar,kurulu olmasına bakılmaz.
  2115. -ikz|yekur)
  2116. tekrarkur="evet"
  2117. agdan_kur "$2" ;;
  2118. ### mps -k paketismi..mps.lz = yerel dizindeki paketi kurar.
  2119. -k)
  2120. if [ "$3" == "-kok" ] && [ -d "$4" ]; then
  2121. kokdizin="$4"
  2122. tekrarkur="evet"
  2123. fi
  2124. yerelden_kur "$2" ;;
  2125. ### mps sil|-s paketismi = ilgili paketi onaylı kaldırır.
  2126. -s|sil)
  2127. if [[ "$2" == "py-"* ]]; then
  2128. pypaket=`echo "$2" | cut -d'-' -f 2`
  2129. echo $pypaket "pip2 ile silinecek"
  2130. pip uninstall $pypaket
  2131. exit 1
  2132. fi
  2133. if [[ "$2" == "py3-"* ]]; then
  2134. pypaket=`echo "$2" | cut -d'-' -f 2`
  2135. echo $pypaket "pip3 ile silinecek"
  2136. pip3 uninstall $pypaket
  2137. exit 1
  2138. fi
  2139. paket_sil "$2"
  2140. exit 0 ;;
  2141. ### mps zorsil|-sz paketismi = ilgili paketi onaysız kaldırır.
  2142. -sz|zorsil)
  2143. paket_sil "$2" "evet"
  2144. exit 0 ;;
  2145. ### mps gsil paketismi = ilgili paketi güvenli(ters bağımlılıklarına da bakarak) kaldırır.
  2146. gsil)
  2147. paket_sil "$2" "hayir" "evet"
  2148. exit 0 ;;
  2149. ### mps -S paketismi = ilgili paketi altbağımlılıklarını da sorarak kaldırır.
  2150. -S)
  2151. paket_sil_gerekli "$2"
  2152. exit 0 ;;
  2153. ### mps -Sz paketismi = ilgili paketi altbağımlılıklarını da sormadan sırayla kaldırır.
  2154. -Sz)
  2155. paket_sil_gerekli "$2" "oto"
  2156. exit 0 ;;
  2157. ### mps ara aranan = paket isimleri ve açıklamalarında anahtar kelime arar.
  2158. -pa|ara)
  2159. paket_ara "$2"
  2160. exit 0 ;;
  2161. ### mps bul aranan = talimat dosyaları içinde anahtar kelimeyi arar.
  2162. bul)
  2163. kelime_bul "$2"
  2164. exit 0 ;;
  2165. ### mps -d paketisimi = sadece paketi bağımlıksız derler.Genelde bağımlılığı olmayan paketler için kullanılır.
  2166. -d|--pkde)
  2167. zorla_derle="yok"
  2168. kurulum_onay="olumsuz"
  2169. paket_derle "$2"
  2170. exit 0 ;;
  2171. ### mps -zd paketismi = Pake kurulu olsa bile derleme yapılır.Bağımlıksız derleme için kullanılır.
  2172. -zd|--pkzde)
  2173. zorla_derle="evet"
  2174. kurulum_onay="olumsuz"
  2175. paket_derle "$2"
  2176. exit 0 ;;
  2177. ### mps odkp paketismi = bir paketi bağımlılık zinciri çıkarıp gereklileri önce kurar gerekli olanları derler,paketler ve kurar.
  2178. odkp)
  2179. if [ -d "$talimatname/temel/$2" ] ; then
  2180. ryaz 31 "temel paket için odkp kullanılamaz!"
  2181. exit 1
  2182. fi
  2183. oto_derle_kur_paketle "$2"
  2184. exit 0 ;;
  2185. -dk|--pkdk)
  2186. paket_derle "$2" ;;
  2187. ### mps -derlist liste = verilen liste dosyasındaki paketleri derler.Alt alta yazılı olmalıdır.
  2188. -derlist)
  2189. paket_derle_liste "$2" ;;
  2190. ### mps derle paketismi = paketismi için bağımlılık zinciri çıkarıp gerekli tüm paketleri derler,paketler ve kurar.
  2191. derle)
  2192. paket_derle_kur "$2"
  2193. exit 0 ;;
  2194. -ok|--pkok)
  2195. paket_kur_oto "$2" ;;
  2196. -okz)
  2197. paket_kur_oto_zorla "$2" ;;
  2198. -okl|--pkokl)
  2199. paket_kur_liste "$2" ;;
  2200. -oklz)
  2201. paket_kur_liste_zorla "$2" ;;
  2202. -kh)
  2203. local templist
  2204. templist=`mktemp`
  2205. ls *.mps.lz > $templist
  2206. mps -okz -H $templist ;;
  2207. -ko|--pkko)
  2208. paket_kur_oto2 "$2" ;;
  2209. -kuruld)
  2210. paket_inkur_liste_direk "$2" ;;
  2211. ### mps kurul liste = verilen liste dosyasındaki paketleri kurar.Alt alta yazılı olmalıdır.
  2212. kurul)
  2213. if [ -f $PWD/mps-liste ]; then
  2214. paket_inkur_liste mps-liste
  2215. else
  2216. paket_inkur_liste "$2"
  2217. fi ;;
  2218. -kur)
  2219. paket_inkur_oto "$2" ;;
  2220. ### mps gkur paketismi = git-paketvt günceller ve yerelde mps.lz varsa yereldekini yoksa sunucudan paketi indirip kurar.
  2221. gkur)
  2222. git_guncelle && paketvt_guncelle && paket_inkur_oto "$2" ;;
  2223. ### mps kur paketismi = yerelde mps.lz varsa yereldekini yoksa sunucudan paketi indirip kurar.
  2224. kur)
  2225. if [[ "$2" == "py-"* ]]; then
  2226. pypaket=`echo "$2" | cut -d'-' -f 2`
  2227. echo $pypaket "pip2 ile kurulacak"
  2228. pip install $pypaket
  2229. exit 0
  2230. fi
  2231. if [[ "$2" == "py3-"* ]]; then
  2232. pypaket=`echo "$2" | cut -d'-' -f 2`
  2233. echo $pypaket "pip3 ile kurulacak"
  2234. pip3 install $pypaket
  2235. exit 0
  2236. fi
  2237. if [[ "$2" == *"mps.lz"* ]]; then
  2238. if [ "$3" == "-kok" ] && [ -d "$4" ]; then
  2239. kokdizin="$4"
  2240. tekrarkur="evet"
  2241. fi
  2242. yerelden_kur "$2"
  2243. else
  2244. paket_inkur_oto "$2"
  2245. fi
  2246. exit 0 ;;
  2247. ### mps kaynak paketismi = ilgili paketin kaynak kodunu indirir.
  2248. kaynak)
  2249. if [ ! "$2" ]; then
  2250. ryaz 31 "paket ismi eksik"
  2251. exit 1
  2252. fi
  2253. kaynak_kod_indir "$2"
  2254. exit 0 ;;
  2255. # özel git projesi kurmak için
  2256. gitkur)
  2257. git_proje_kur "$2" ;;
  2258. # otomatik proje sistemi
  2259. # özel git projesi kurmak için
  2260. opk)
  2261. op_kur "$2" ;;
  2262. # özel git projesi silmek için
  2263. ops)
  2264. op_sil "$2" ;;
  2265. ### mps serkur paketismi = ilgili paketin servisini kurar
  2266. serkur)
  2267. servis_kur "$2"
  2268. exit 0 ;;
  2269. ### mps sersil paketismi = ilgili paketin servisini siler
  2270. sersil)
  2271. servis_sil "$2"
  2272. exit 0 ;;
  2273. ### mps serkon paketismi = servislerin değişmemezlik kontrolünü yapar.
  2274. serkon)
  2275. servisler_kontrol
  2276. exit 0 ;;
  2277. ### mps kurkos paketismi = ilgili paketin kurulumdan sonraki çalışması gereken betiğini çalıştırır.
  2278. kurkos)
  2279. local pkt
  2280. pkt=$(talimat_bul $2)
  2281. if [ -f $pkt/$2.kur-kos ];then
  2282. bash $pkt/$2.kur-kos
  2283. else
  2284. ryaz 31 "$2 kur-kos yok!"
  2285. hataloglama "$2 kur-kos yok!"
  2286. exit 1
  2287. fi;;
  2288. ### mps koskur paketismi = ilgili paketin kurulumdan önceki çalışması gereken betiğini çalıştırır.
  2289. koskur)
  2290. local pkt
  2291. pkt=$(talimat_bul $2)
  2292. if [ -f $pkt/$2.kos-kur ];then
  2293. bash $pkt/$2.kos-kur
  2294. else
  2295. ryaz 31 "$2 kos-kur yok!"
  2296. hataloglama "$2 kos-kur yok!"
  2297. exit 1
  2298. fi ;;
  2299. ### mps silkos paketismi = ilgili paketin silindikten sonraki çalışması gereken betiğini çalıştırır.
  2300. silkos)
  2301. local pkt
  2302. pkt=$(talimat_bul $2)
  2303. if [ -f $pkt/$2.sil-kos ];then
  2304. bash $pkt/$2.sil-kos
  2305. else
  2306. ryaz 31 "$2 sil-kos yok!"
  2307. hataloglama "$2 sil-kos yok!"
  2308. exit 1
  2309. fi ;;
  2310. ### mps kossil paketismi = ilgili paketin silindikten önceki çalışması gereken betiğini çalıştırır.
  2311. kossil)
  2312. local pkt
  2313. pkt=$(talimat_bul $2)
  2314. if [ -f $pkt/$2.kos-sil ];then
  2315. bash $pkt/$2.kos-sil
  2316. else
  2317. ryaz 31 "$2 kos-sil yok!"
  2318. hataloglama "$2 kos-sil yok!"
  2319. exit 1
  2320. fi ;;
  2321. ### mps -kdl paketismi = ilgili paketin sistemdeki kurulmuş olması gereken dosyalarını gösterir.
  2322. -kdl)
  2323. if [ ! "$2" ]; then
  2324. ryaz 31 "paket ismi eksik"
  2325. hataloglama "(-kdl) paket ismi eksik"
  2326. exit 1
  2327. fi
  2328. kurulum_dosya_listele "$2"
  2329. exit 0 ;;
  2330. ### mps -kkp paketismi = ilgili paketin çalışması için eksik olan dosyaları tespit eder.
  2331. -kkp)
  2332. if [ ! "$2" ]; then
  2333. ryaz 31 "paket ismi eksik"
  2334. hataloglama "(-kkp) paket ismi eksik"
  2335. exit 1
  2336. fi
  2337. kirik_kontrol_paket "$2"
  2338. exit 0 ;;
  2339. ### mps kirma paketismi = ilgili paketin sistemde kırdığı paketler tespit edilir.
  2340. kirma)
  2341. if [ ! "$2" ]; then
  2342. ryaz 31 "paket ismi eksik"
  2343. hataloglama "(kirma) paket ismi eksik"
  2344. exit 1
  2345. fi
  2346. kirik_ters_bagimli_bilgi "$2"
  2347. exit 0 ;;
  2348. ### mps -kks . = sistemde kurulu tüm paketlerin kırık kontrolünü yapar.Eksik dosyaları tespit eder.
  2349. -kks)
  2350. kirik_kontrol_sistem
  2351. exit 0 ;;
  2352. -pak|--paketle)
  2353. if [ ! "$2" ]; then
  2354. ryaz 31 "paketlenecek dizin ismi eksik"
  2355. hataloglama "paketlenecek dizin ismi eksik"
  2356. exit 1
  2357. fi
  2358. yeniden_paketle "$2"
  2359. exit 0 ;;
  2360. -psk|--paksiskur)
  2361. if [ ! "$2" ]; then
  2362. ryaz 31 "paket liste yok"
  2363. hataloglama "paket liste yok"
  2364. exit 1
  2365. fi
  2366. if [ ! "$3" ]; then
  2367. ryaz 31 "hedef dizin yok"
  2368. hataloglama "hedef dizin yok"
  2369. exit 1
  2370. fi
  2371. sistem_kur "$2" "$3"
  2372. exit 0 ;;
  2373. -po)
  2374. pvt_olustur ;;
  2375. -os|--pkos)
  2376. if [ ! "$2" ]; then
  2377. ryaz 31 "silme listesi yok"
  2378. hataloglama "silme listesi yok"
  2379. exit 1
  2380. fi
  2381. paket_sil_oto "$2" ;;
  2382. ### mps liste . = sistemde kurulu olan paket listesini verir.
  2383. -kl|liste)
  2384. ls $VT ;;
  2385. ### mps paketler grup_ismi = paket deposundaki paket listesini verir.(grup_ismi verilmezse tüm paketler)
  2386. -ptl|paketler)
  2387. paket_liste "$2" "$3"
  2388. exit 0 ;;
  2389. ### mps gruplar . = paket deposundaki paket grup listesini verir.
  2390. -pgl|gruplar)
  2391. paket_grup_liste "$2"
  2392. exit 0 ;;
  2393. ### mps -dly paketismi = ilgili paketin genel ve tüm bağımlılık listesini verir,oluşturur.
  2394. -dly|dliste)
  2395. derleme_listyap "$2"
  2396. exit 0 ;;
  2397. ### mps -kly paketismi = ilgili paketin ve kurulması gereken altgereklerini verir,oluştur.
  2398. -kly)
  2399. kurulum_listyap "$2" ;;
  2400. ### mps -ykp paketismi = ilgili paketin kurulmak istenirse,kurulacak yeni paketleri listeler.
  2401. -ykp)
  2402. yeni_kurulacak_paketler "$2"
  2403. exit 0 ;;
  2404. #sunucu bilgisi alma
  2405. -sun2|sunucu)
  2406. ryaz 32 $sunucu ;;
  2407. ### mps sunucular . = paket sunucularını verir.
  2408. -sun|sunucular)
  2409. ryaz 32 ${sunucular[@]} ;;
  2410. sun)
  2411. if [ ! "$2" ]; then
  2412. ryaz 31 "sunucu bilgi eksik"
  2413. hataloglama "sunucu bilgi eksik"
  2414. exit 1
  2415. fi
  2416. sunucu_ayarla "$2" ;;
  2417. -bb|bagbil)
  2418. bagimli_bilgi "$2" | column -t;;
  2419. -bbdog|bdogrula)
  2420. bagimli_bilgi "$2" "dogrula";;
  2421. -bbd)
  2422. bagimli_bilgi_dosyala "$2" ;;
  2423. ### mps -tb talimatismi = ilgili talimata gerek duyan(ters-gerekler) talimatları listeler.
  2424. -tb|tersbag)
  2425. ters_bagimli_bilgi "$2"
  2426. exit 0;;
  2427. -tbk)
  2428. ters_bagimli_kontrol "$2" ;;
  2429. ### mps pka paketismi = ilgili paketin depo-gitdepo uyumluluğunu kontrol eder.
  2430. pka)
  2431. paket_analiz "$2"
  2432. exit 0;;
  2433. ### mps pda paketdepo = paketlerin olduğu dizindeki paketlerin depo-gitdepo uyumluluğunu kontrol eder.
  2434. pda)
  2435. paketdepo_analiz "$2"
  2436. exit 0 ;;
  2437. ### mps tbilgi paketismi = ilgili paketin talimat bilgilerini verir.
  2438. tbilgi)
  2439. talimat_bilgi "$2"
  2440. exit 0 ;;
  2441. ### mps -b paketismi = ilgili paketin kurulum bilgilerini verir.
  2442. -b)
  2443. if [ $2 ];then
  2444. touch "/tmp/mps_paket_bilgi_$2"
  2445. paket_bilgi "$2" "$3" | tee "/tmp/mps_paket_bilgi_$2"
  2446. [ $2 = "--html" ]; paket_bilgi_html "/tmp/mps_paket_bilgi_$2"
  2447. else
  2448. ryaz 31 "paket ismi eksik"
  2449. exit 1
  2450. fi
  2451. exit 0 ;;
  2452. ### mps bilgi paketismi = ilgili paketin talimat ve kurulum bilgilerini verir.
  2453. bilgi)
  2454. paket_bilgi "$2"
  2455. talimat_bilgi "$2"
  2456. exit 0 ;;
  2457. -to)
  2458. if [ ! "$2" ]; then
  2459. ryaz 31 "talimat ismi eksik"
  2460. hataloglama "talimat ismi eksik"
  2461. exit 1
  2462. fi
  2463. talimat_olustur "$2"
  2464. exit 0 ;;
  2465. ### mps log yyyy-aa-gg olay = mps.log verisi çekmek için (ör: mps log 2017-01-01 silindi)
  2466. log)
  2467. local logyardim
  2468. logyardim="mps log zaman durum (ör: mps log 2017-01-01 silindi)"
  2469. if [ ! "$2" ]; then
  2470. ryaz 31 "zaman parametresi eksik"
  2471. hataloglama "zaman parametresi eksik"
  2472. ryaz 32 $logyardim
  2473. exit 1
  2474. fi
  2475. if [ ! "$3" ]; then
  2476. ryaz 31 "durum parametresi eksik"
  2477. hataloglama "durum parametresi eksik"
  2478. ryaz 32 $logyardim
  2479. exit 1
  2480. fi
  2481. log_analiz "$2" "$3" ;;
  2482. ### mps guncelle . = paket veritabanı ve git güncellemesi-talimatname bilgilerini günceller.
  2483. guncelle)
  2484. mps -GG && mps -G
  2485. exit 0 ;;
  2486. ### mps -GG . = git güncellemelerini ve talimatname bilgilerini günceller.
  2487. -Ggit|-GG)
  2488. git_guncelle
  2489. exit 0 ;;
  2490. ### mps -G . = paket veritabanı bilgilerini günceller.
  2491. -G|--pvtg)
  2492. paketvt_guncelle
  2493. mps -kudo
  2494. exit 0 ;;
  2495. ### mps tespit . = tüm sistemin güncellemesi için güncellenecek paket listesini gösterir.
  2496. tespit)
  2497. guncelleme_tespit
  2498. exit 0 ;;
  2499. ### mps yukselt . = tüm sistemin güncellemesini gerçekleştirir.
  2500. -GS|yukselt)
  2501. sistem_guncelle
  2502. exit 0 ;;
  2503. #tekil temel paket guncelleme-single base package updating
  2504. -tg)
  2505. paket_sil "$2" "evet" && mps -ik $2 ;;
  2506. ### mps -g paketismi = ilgili paketi tekil günceller.
  2507. -g|--pkgu)
  2508. git_guncelle && paketvt_guncelle
  2509. if [ ! "$2" ]; then
  2510. ryaz 31 "paket ismi eksik"
  2511. hataloglama "paket ismi eksik"
  2512. exit 1
  2513. fi
  2514. local durum
  2515. durum=`kurulu_kontrol "$2"`
  2516. if [ "$durum" = "kurulu" ]; then
  2517. paket_guncelle "$2"
  2518. elif [ "$durum" = "degil" ]; then
  2519. ryaz 31 "$2 $_paket_kurulu_degil"
  2520. hataloglama "$2 $_paket_kurulu_degil"
  2521. else
  2522. ryaz 31 "$2 $_paket_tanimsiz"
  2523. hataloglama "$_paket_tanimsiz"
  2524. fi
  2525. exit 0 ;;
  2526. #bagimliliklariyla beraber paket guncelleme-package updating with depencies
  2527. -go|--pkgo)
  2528. if [ ! "$2" ]; then
  2529. ryaz 31 "$_paket_adi_gerekli"
  2530. exit 1
  2531. fi
  2532. paket_guncelle_oto "$2";;
  2533. ### mps -kk paketismi = ilgili paketin kurulu olma durumunu gösterir.
  2534. -kk|--kurulu-kontrol)
  2535. if [ ! "$2" ]; then
  2536. ryaz 31 "$_paket_adi_gerekli"
  2537. exit 1
  2538. fi
  2539. ryaz 31 `kurulu_kontrol "$2"`
  2540. exit 0 ;;
  2541. -kudo)
  2542. kurulum_dogrulama
  2543. exit 0 ;;
  2544. -kdi|dogrula)
  2545. if [ ! "$2" ]; then
  2546. ryaz 31 "$_paket_adi_gerekli"
  2547. exit 1
  2548. fi
  2549. kurulum_dogrulama_icerik "$2" ;;
  2550. -pid|pdogrula)
  2551. kokdzn=""
  2552. if [ ! "$2" ]; then
  2553. ryaz 31 "$_paket_adi_gerekli"
  2554. exit 1
  2555. elif [ ! "$3" ]; then
  2556. kokdzn="/"
  2557. else
  2558. kokdzn="$3"
  2559. fi
  2560. paket_icerik_dogrulama "$2" "$kokdzn";;
  2561. -kdit|tumdogrula)
  2562. kurulum_dogrulama_icerik_tum
  2563. exit 0 ;;
  2564. -kdk)
  2565. etkilenen_kurtar $2 ;;
  2566. -suko)
  2567. sunucu_kontrol ;;
  2568. ### mps -pot . = talimatı olup ta paketi henüz depoda yer almayan talimatları listeler.
  2569. -pot)
  2570. paketsiz_talimatlar
  2571. exit 0 ;;
  2572. -dpl|deplist)
  2573. depo_paketler_liste
  2574. exit 0 ;;
  2575. -dps|depsil)
  2576. depo_paketler_sil
  2577. exit 0 ;;
  2578. ### mps link url_adres = verilen url adresindeki talimatı ektalimatname/topluluk altına inidirir.
  2579. link)
  2580. mkdir -p $ektalimatname/topluluk
  2581. indir_talimat_paketle $2 "-4" "$ektalimatname/topluluk"
  2582. exit 0 ;;
  2583. ti)
  2584. indir_talimat_paketle $2 "-4" "$talimatname/genel"
  2585. exit 0 ;;
  2586. -cf|--config-file)
  2587. if [ ! "$2" ]; then
  2588. echo "ayardosyası gerek $1"
  2589. exit 1
  2590. fi
  2591. ayar_dosyasi="$2"
  2592. shift ;;
  2593. ### mps -hp aranan = ilgili aranan ifadenin hangi paketlerde olabileceğini listeler.
  2594. -hp)
  2595. if [ ! "$2" ]; then
  2596. ryaz 31 "paket ismi eksik"
  2597. exit 1
  2598. fi
  2599. kurulan_dosya_bul "$2"
  2600. exit 0 ;;
  2601. ### mps tgs talimat = ilgili talimatın kaynak kodunun yeni sürümü olup olmadığını kontrol eder.
  2602. tgs)
  2603. if [ ! "$2" ]; then
  2604. ryaz 31 "talimat ismi eksik"
  2605. exit 1
  2606. fi
  2607. talimat_surum_takip "$2"
  2608. exit 0 ;;
  2609. -tro)
  2610. tarihce_yap
  2611. exit 0 ;;
  2612. -trot)
  2613. temel_tarihce="evet"
  2614. tarihce_yap
  2615. exit 0 ;;
  2616. -try)
  2617. if [ ! "$2" ]; then
  2618. ryaz 31 "tarihce dosyasi eksik $1"
  2619. hataloglama "tarihce dosyasi eksik $1"
  2620. exit 1
  2621. fi
  2622. tarihce_yukle "$2"
  2623. shift ;;
  2624. -trl)
  2625. tarihce_liste ;;
  2626. ### mps tdc talimat_dosyası = ilgili talimat dosyasının Türkçe değişken çevrimii yapar.
  2627. tdc)
  2628. talimat_degisken_cevrim $2
  2629. exit 0 ;;
  2630. -tamir-tk)
  2631. tamir_temel_kurulan ;;
  2632. dos)
  2633. tarihce_yukle "temel"
  2634. exit 0 ;;
  2635. -trs)
  2636. if [ ! "$2" ]; then
  2637. ryaz 31 "parametre eksik $1"
  2638. hataloglama "parametre eksik $1"
  2639. exit 1
  2640. fi
  2641. tarihce_sil "$2"
  2642. shift ;;
  2643. ### mps -v . = mps sürüm bilgilerini gösterir.
  2644. -v)
  2645. ryaz 33 "$betikad $versiyon $iletisim"
  2646. exit 0 ;;
  2647. -y|-h|yardim)
  2648. yardim_icerik
  2649. exit 0 ;;
  2650. *)
  2651. ryaz 31 "Geçersiz Parametre! --> mps yardim "
  2652. exit 0 ;;
  2653. esac
  2654. shift
  2655. done
  2656. }
  2657. yardim_icerik(){
  2658. cat /root/bin/mps | sed -e 's/^[ \t]*//' | sed -n '/^###/p' | sed '/ /s/^###//g' | awk '{split($0,a,"="); printf "%-6s %-13s %-18s %-40s \n",$1,$2,$3,a[2]}'
  2659. }
  2660. ana(){
  2661. if [ `id -u` = 0 ] ; then
  2662. ayarlar "$@"
  2663. else
  2664. sudo mps "$@"
  2665. fi
  2666. }
  2667. ana "$@"
  2668. #31 kirmizi
  2669. #32 yesil
  2670. #33 sari
  2671. #34 mavi
  2672. #34 mor