mps 98 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715
  1. #!/bin/bash
  2. versiyon="1.2.1 Milis Paket Sistemi"
  3. iletisim="milisarge@gmail.com"
  4. betikad=${0##*/}
  5. betikyol="$0"
  6. shelltip=$(basename `cat $betikyol | head -n1 | cut -d'!' -f2 | cut -d' ' -f1`)
  7. # sistem araçlarının tespiti ve atanması
  8. #if [ ${shelltip} = "busybox" ] || [ ${shelltip} = "ash" ];then
  9. if [ ${BASH_VERSION} ];then
  10. wget_progress="--show-progress"
  11. else
  12. alias sed="busybox sed"
  13. alias wget="busybox wget"
  14. wget_progress=""
  15. fi
  16. #alias sed="sed"
  17. if [ -f /etc/mps.conf ];then
  18. . /etc/mps.conf
  19. else
  20. echo "/etc/mps.conf ayar dosyası bulunamadı!"
  21. fi
  22. if [ -z ${paketdepo+:} ]; then
  23. paketdepo="/depo/paketler/"
  24. fi
  25. if [ -z ${sunucu+:} ]; then
  26. sunucu="127.0.0.1:8000/"
  27. fi
  28. git_sunucu="https://notabug.org"
  29. git_sunucu_eski="https://github.com"
  30. [ -d /sources/milis.git/.git ] && cat /sources/milis.git/.git/config | grep "url =" | grep "${git_sunucu_eski}" &> /dev/null
  31. if [ $? -eq 0 ];then
  32. echo "eski git sunucusundan göç ediliyor."
  33. _gockom="mv /sources/milis.git /sources/milis.git.eski"
  34. if [ $(whoami) == "root" ];then
  35. $_gockom
  36. else
  37. sudo $_gockom
  38. fi
  39. fi
  40. if [ -z ${hesap_repo+:} ]; then
  41. hesap_repo="milislinux/milis"
  42. fi
  43. if [ -z ${git_repo+:} ]; then
  44. git_repo="${git_sunucu}/${hesap_repo}"
  45. fi
  46. if [ -z ${git_yereldepo+:} ]; then
  47. git_yereldepo="/sources/milis.git"
  48. fi
  49. if [ -z ${kaynak_dizin+:} ]; then
  50. kaynak_dizin="/sources"
  51. fi
  52. if [ -z ${anatalimatname+:} ]; then
  53. anatalimatname="${git_yereldepo}/talimatname"
  54. fi
  55. if [ -z ${ektalimatname_repo+:} ]; then
  56. ektalimatname_repo="${git_sunucu}/milislinux/ek-talimatlar"
  57. fi
  58. if [ -z ${talimatname+:} ]; then
  59. talimatname="/root/talimatname"
  60. fi
  61. if [ -z ${kokdizin+:} ]; then
  62. kokdizin="/"
  63. fi
  64. #temel paket koruma
  65. if [ -z ${tpk+:} ]; then
  66. tpk="evet"
  67. fi
  68. if [ -z ${lokal+:} ]; then
  69. lokal="tr"
  70. fi
  71. if [ -z ${docsil+:} ]; then
  72. docsil="evet"
  73. fi
  74. if [ -z ${yerelsil+:} ]; then
  75. yerelsil="silme"
  76. fi
  77. if [ -z ${ektalimatname+:} ]; then
  78. ektalimatname="/root/talimatlar"
  79. [ ! -d /root/talimatlar ] && mkdir -p /root/talimatlar
  80. fi
  81. if [ -z ${sunucular+:} ]; then
  82. sunucular="paketler.milislinux.org"
  83. awk ' {print;} NR == 1 { print "sunucular=\"paketler.milislinux.org/\""; }' /etc/mps.conf > /etc/mps2.conf
  84. mv /etc/mps2.conf /etc/mps.conf
  85. else
  86. _satirno=$(grep -nr "sunucular=(" /etc/mps.conf | cut -d':' -f1)
  87. if [ ! -z ${_satirno} ];then
  88. echo "mps.conf düzeltildi.kontrol ediniz."
  89. sed "${_satirno}s/(/"\""/;${_satirno}s/)/"\""/" /etc/mps.conf > /etc/mps.conf.yeni
  90. mv /etc/mps.conf.yeni /etc/mps.conf
  91. fi
  92. fi
  93. if [ -z ${silme_esgec+:} ]; then
  94. silme_esgec=""
  95. fi
  96. if [ -z ${esgec+:} ]; then
  97. esgec=""
  98. fi
  99. esgec="xorg xorg-app xorg-font xorg-proto kernel-lts kernel-lts-src"
  100. kurulum_onay="evet"
  101. VT="/var/lib/pkg/DB"
  102. TARIHCE_DIZIN="/var/lib/pkg/tarihce"
  103. LOGDIZIN="/var/log/mps"
  104. tekrarkur="hayir"
  105. logdosya="/var/log/mps/mps.log"
  106. GRUP_DOSYA="/sources/milis.git/ayarlar/gruplar"
  107. # Türkçe Mesajlar
  108. _paket_adi_gerekli="paket ismi eksik!"
  109. _dizin_bulunamadi="dizin bulunamadı!"
  110. _talimat_sayisi_fazla="talimatnameler altında birden fazla talimat mevcut!"
  111. _talimat_bulunamadi="ilgili talimat bulunamadı!"
  112. _talimatsiz_dizin="ilgili dizinde talimat bulunamadı!"
  113. _dosya_yolu_bulunamadi="dosya yolu bulunamadı!"
  114. _shasum_uyumsuzluk="shasum uyumsuzluğu tespit edildi!"
  115. _gerekler_belirleniyor="bağımlılıkları belirleniyor."
  116. _yerel_paket_yok="mevcut dizinde mps.lz paketi yok!"
  117. _paket_kuruldu="paketi kuruldu."
  118. _paket_kurulu="kurulu"
  119. _paket_kurulu_degil="paketi kurulu değil!"
  120. _paket_silindi="paketi silindi."
  121. _paket_silinsinmi="paketi kaldırılsın mı?"
  122. _paket_tanimsiz="paketi tanımsız!"
  123. _paket_bulunamadi="ilgili paket bulunamadı!"
  124. _paketvt_guncelleniyor="paket veritabanı güncelleniyor."
  125. _paket_onbellek_depoda_var="paketi önbellek depoda bulunmakta."
  126. _paket_depoda_yok="paket depoda bulunmuyor ve gereksiz,"
  127. _siliniyor="siliniyor"
  128. _git_guncelleniyor="git sunucudan güncelleme çekiliyor."
  129. _git_guncel="git deposu güncel"
  130. _git_guncellendi="git deposu güncellendi."
  131. _yerel_esitlendi="yerele eşitleme tamam."
  132. _yerel_esitlendi_olumsuz="yerele eşitleme olumsuz."
  133. _yerel_esitleniyor="yerele eşitleniyor."
  134. _devir_kontrol_iptal="devir kontrolü iptal edildi!"
  135. _surum_kontrol_iptal="sürüm kontrolü iptal edildi!"
  136. _zaten="zaten"
  137. _indiriliyor="indiriliyor"
  138. export _paketguncel=0
  139. # renkli yazma öntanımlı atamaları
  140. _yaz="ryaz 32"
  141. _yaz_tm="ryaz 34"
  142. _yaz_uyari="ryaz 31"
  143. _yaz_bilgi="ryaz 33"
  144. hata_olustu(){
  145. local _hata _mesaj
  146. [ -z $1 ] && exit 1
  147. _hata=$1
  148. case $_hata in
  149. "_paket_adi_gerekli")
  150. _mesaj="$_paket_adi_gerekli"
  151. ;;
  152. "_talimatsiz_dizin")
  153. _mesaj="$_talimatsiz_dizin"
  154. ;;
  155. "_talimat_bulunamadi")
  156. _mesaj="$_talimat_bulunamadi"
  157. ;;
  158. "_yerel_paket_yok")
  159. _mesaj="$_yerel_paket_yok"
  160. ;;
  161. *)
  162. _mesaj="böyle bir hata yok"
  163. ;;
  164. esac
  165. echo ${_mesaj}
  166. exit 1
  167. }
  168. cikti_renk_ayarla(){
  169. local cikti
  170. cikti="--renkli"
  171. if [ "$1" ]; then
  172. if [ "$1" = "--normal" ];then
  173. cikti="--normal"
  174. fi
  175. fi
  176. if [ $cikti = "--renkli" ];then
  177. _yaz="ryaz 32"
  178. _yaz_tm="ryaz 34"
  179. _yaz_uyari="ryaz 31"
  180. else
  181. _yaz="echo"
  182. _yaz_tm="echo"
  183. _yaz_uyari="echo"
  184. _yaz_bilgi="echo"
  185. fi
  186. }
  187. icerik_ekle(){
  188. if [ -f "$1" ];then
  189. paketad=`echo "$1" | cut -d'#' -f1`
  190. paketad=`basename $paketad`
  191. $_yaz_tm "$paketad paketi kuruluyor-> $kokdizin"
  192. if [ -f /usr/bin/bsdtar ];then
  193. bsdtar -C /tmp --extract --file=$1 .PRE 1 2> /tmp/$paketad_pre.log
  194. else
  195. tar -C /tmp --extract --file=$1 .PRE 1 2> /tmp/$paketad_pre.log
  196. fi
  197. #kos-kur kontrolu
  198. if [ -f /tmp/.PRE ];then
  199. if [ "$kokdizin" == "/" ];then
  200. bash /tmp/.PRE
  201. else
  202. cp /tmp/.PRE $kokdizin/tmp/$paketad.PRE
  203. fi
  204. rm /tmp/.PRE
  205. fi
  206. mkdir -p kur.$paketad &&
  207. if [ -f /usr/bin/bsdtar ];then
  208. bsdtar xf $1 -C kur.$paketad
  209. else
  210. tar xf $1 -C kur.$paketad
  211. fi
  212. #istenmeyen yerellerin silinmesi
  213. if [ -d kur.$paketad/usr/share/locale ] && [ "$yerelsil" == "evet" ];then
  214. for lkl in `ls kur.$paketad/usr/share/locale/`;do
  215. if [ "$lkl" != "$lokal" ];then rm -r kur.$paketad/usr/share/locale/$lkl; fi
  216. done
  217. fi
  218. #doc dizini silinmesi
  219. if [ -d kur.$paketad/usr/share/doc ] && [ "$docsil" == "evet" ];then
  220. rm -r kur.$paketad/usr/share/doc
  221. fi
  222. mkdir -p $kokdizin$VT/"$paketad" &&
  223. cp -v -afr kur.$paketad/* $kokdizin > kur.$paketad/kurulan
  224. cp kur.$paketad/kurulan /tmp/ &&cat kur.$paketad/kurulan | cut -d '>' -f2 > $kokdizin$VT/"$paketad"/kurulan &&
  225. #mv kur.$paketad/.MTREE $VT/"$paketad"/files &&
  226. mv kur.$paketad/.META $kokdizin$VT/"$paketad"/META &&
  227. #kur-kos calistirilmasi
  228. if [ -f kur.$paketad/.POST ];then
  229. if [ "$kokdizin" == "/" ];then
  230. bash kur.$paketad/.POST
  231. else
  232. cp kur.$paketad/.POST $kokdizin/tmp/$paketad.POST
  233. fi
  234. rm kur.$paketad/.POST
  235. fi
  236. rm -r kur.$paketad
  237. if [ -f $kokdizin/etc/ld.so.conf ];then
  238. ldconfig -r $kokdizin
  239. fi
  240. $_yaz_tm "$paketad $_paket_kuruldu"
  241. loglama "$paketad $_paket_kuruldu"
  242. else
  243. $_yaz_uyari "icerik_ekle:paket konum parametresi boş!!!"
  244. exit 1
  245. fi
  246. }
  247. paket_sil(){
  248. local paket kkont sil_onay oto_silme _silinecekler _sek
  249. [ -z $1 ] && hata_olustu "_paket_adi_gerekli" || paket=$1
  250. tersbag_goster="hayir"
  251. _silinecekler=/tmp/$paket.sil
  252. _sek=1
  253. cikti="--renkli"
  254. if [ "$2" ]; then
  255. if [ "$2" == "--normal" ];then
  256. cikti_renk_ayarla "--normal"
  257. else
  258. oto_silme="$2"
  259. fi
  260. if [ "$2" == "--sekyok" ];then
  261. _sek=0
  262. fi
  263. fi
  264. if [ "$3" ]; then
  265. if [ "$3" == "--normal" ];then
  266. cikti_renk_ayarla "--normal"
  267. else
  268. tersbag_goster="evet"
  269. fi
  270. fi
  271. if [ "$tpk" = "evet" ] && [ -d "$talimatname/temel/$1" ];then
  272. $_yaz_uyari "$1 temel sistem paketidir.Silinemez!!!"
  273. hataloglama "$1 temel sistem paketidir.Silinemez!!!"
  274. else
  275. kkont=`kurulu_kontrol "$1"`
  276. if [ "$kkont" = "kurulu" ];then
  277. if [ -f "$VT/$paket/kurulan" ];then
  278. #eski dizin koruma
  279. #etkilenen_kurtar $1 $cikti
  280. cat $VT/$paket/kurulan | cut -d '>' -f2 > ${_silinecekler}
  281. if [ "$tersbag_goster" = "evet" ];then
  282. $_yaz_uyari "ters bagimliliklar"
  283. $_yaz_uyari "------------------"
  284. ters_bagimli_bilgi "$paket"
  285. $_yaz_uyari "------------------"
  286. fi
  287. # eski silme etkilenme kurtarma
  288. #$_yaz_uyari "etkilenen dosyalar"
  289. #$_yaz_uyari "------------------"
  290. #silme_etkilenen_kontrol /tmp/$paket.sil $paket
  291. #$_yaz_uyari "------------------"
  292. # ------------
  293. # yeni silme etkilenen kurtarma
  294. [ ${_sek} -eq 1 ] && silme_etkilenme_tespit $paket
  295. # silme listesi güncelleme - dizin koruma
  296. # bir paket silinirken dizin yapısındaki diğer paketlerin dosyaları korunacak.
  297. if [ -f /tmp/${paket}_kd.liste ];then
  298. for _kurtar in $(cat /tmp/${paket}_kd.liste);do
  299. echo "$(grep -v "'${_kurtar}'" ${_silinecekler})" > ${_silinecekler}
  300. done
  301. $_yaz_bilgi "etkilenen konumlar korundu."
  302. #else
  303. #$_yaz_bilgi "kurtarılacak dosya yok."
  304. fi
  305. if [ "$oto_silme" = "evet" ];then
  306. sil_onay="e"
  307. else
  308. while true; do
  309. $_yaz_tm $paket" $_paket_silinsinmi";read -p "e veya h-> " eh
  310. case $eh in
  311. [Ee]* ) sil_onay="e"; break;;
  312. [Hh]* ) break;;
  313. * ) echo "e veya h";;
  314. esac
  315. done
  316. fi
  317. if [ "$sil_onay" = "e" ];then
  318. _konum=$(talimat_bul $paket)
  319. [ -f "$_konum/$paket.kos-sil" ] && bash "$_konum/$paket.kos-sil"
  320. xargs rm -r -f < ${_silinecekler} &&
  321. rm -r -f "$VT/$paket" &&
  322. [ -f "$_konum/$paket.sil-kos" ] && bash "$_konum/$paket.sil-kos"
  323. $_yaz_tm $paket" $_paket_silindi"
  324. loglama "$paket $_paket_silindi"
  325. rm -f ${_silinecekler}
  326. else
  327. rm -f ${_silinecekler}
  328. fi
  329. else
  330. $_yaz_uyari "kritik mesaj:kurulanlar dosyası yok."
  331. hataloglama "kritik mesaj:kurulanlar dosyası yok."
  332. fi
  333. elif [ "$kkont" = "degil" ];then
  334. $_yaz "$_zaten $paket $_paket_kurulu_degil"
  335. hataloglama "$_zaten $paket $_paket_kurulu_degil"
  336. else
  337. $_yaz "$_paket_tanimsiz"
  338. hataloglama "$_paket_tanimsiz"
  339. fi
  340. fi
  341. }
  342. paket_ara(){
  343. paket="$1"
  344. for pkt in `cat /depo/paketler/paket*.vt | grep $paket | awk '{print $1}'`; do
  345. pakdesc=$(find $talimatname -name "$pkt" | xargs -I % sed -n '1{p;q}' %/talimat | sed s'/# Tanım: //g');
  346. $_yaz_tm "$pkt - $pakdesc";
  347. done
  348. }
  349. paket_liste(){
  350. mps_paketler_listesi="/tmp/mps_paketler_listesi"
  351. local cikti _grup
  352. _grup="yok"
  353. cikti="--normal"
  354. if [ "$1" ]; then
  355. if [ "$1" == "--json" ];then
  356. cikti="--json"
  357. else
  358. _grup="$1"
  359. fi
  360. fi
  361. if [ "$2" ]; then
  362. cikti="$2"
  363. fi
  364. #echo "cikti:$cikti"
  365. #echo "grup:$_grup"
  366. #exit 1
  367. if [ $_grup == "yok" ];then
  368. if [ $cikti == "--json" ];then
  369. [ -f $mps_paketler_listesi ] && rm -rf $mps_paketler_listesi
  370. for pkt in $(cat /depo/paketler/paket*.vt | awk '{print $1}'); do
  371. printf "$pkt," >> $mps_paketler_listesi
  372. done
  373. sed -i s'/.$//' $mps_paketler_listesi
  374. else
  375. cat /depo/paketler/paket*.vt | awk '{print $1}'
  376. fi
  377. else
  378. if [ $cikti == "--json" ];then
  379. grup_paketler_liste $_grup $cikti
  380. else
  381. grup_paketler_liste $_grup
  382. fi
  383. fi
  384. }
  385. paket_grup_liste(){
  386. mps_paket_grup_listesi="/tmp/mps_paket_grup_listesi"
  387. local cikti _altdizins _ektalname
  388. cikti="normal"
  389. if [ "$1" ]; then
  390. cikti="$1"
  391. fi
  392. _altdizins=`find $ektalimatname/ -maxdepth 1 -type d | wc -l`
  393. if [ $_altdizins -gt 1 ]
  394. then
  395. _ektalname=$ektalimatname/*
  396. else
  397. _ektalname=""
  398. fi
  399. _gruplar=`grep -ri "Grup:" $talimatname/* $_ektalname | cut -d':' -f3 | cut -d' ' -f2 | sed 's/^ *//;s/ *$//' | sort -u`
  400. if [ $cikti == "--json" ];then
  401. [ -f $mps_paket_grup_listesi ] && rm -rf $mps_paket_grup_listesi
  402. #printf "[" >> $mps_paket_grup_listesi
  403. for grp in $(grep -ri "Grup:" $talimatname/* $_ektalname | cut -d':' -f3 | cut -d' ' -f2 | sed 's/^ *//;s/ *$//' | sort -u); do
  404. printf "$grp," >> $mps_paket_grup_listesi
  405. done
  406. sed -i s'/.$//' $mps_paket_grup_listesi
  407. #printf "]" >> $mps_paket_grup_listesi
  408. else
  409. echo $_gruplar
  410. fi
  411. }
  412. grup_paketler_liste(){
  413. mps_grup_paketler_listesi="/tmp/mps_grup_paketler_listesi"
  414. local cikti _grup _paketler
  415. _grup="$1"
  416. cikti="normal"
  417. if [ "$2" ]; then
  418. cikti="$2"
  419. fi
  420. _paketler=`grep -rli "Grup: .*$_grup" $talimatname/* $ektalimatname/* | cut -d':' -f3 | sed 's/^ *//;s/ *$//' | xargs -I {} dirname {} | xargs -I {} basename {} | sort -u`
  421. if [ $cikti == "--json" ];then
  422. [ -f $mps_grup_paketler_listesi ] && rm -rf $mps_grup_paketler_listesi
  423. #printf "[" >> $mps_paket_grup_listesi
  424. for pkt in $(grep -rli "Grup: .*$_grup" $talimatname/* $ektalimatname/* | cut -d':' -f3 | sed 's/^ *//;s/ *$//' | xargs -I {} dirname {} | xargs -I {} basename {} | sort -u); do
  425. printf "$pkt," >> $mps_grup_paketler_listesi
  426. done
  427. sed -i s'/.$//' $mps_grup_paketler_listesi
  428. #printf "]" >> $mps_paket_grup_listesi
  429. else
  430. echo $_paketler
  431. fi
  432. }
  433. kelime_bul(){
  434. grep --color -H -ri "$1" $talimatname
  435. grep --color -H -ri "$1" $ektalimatname
  436. }
  437. kurulu_kontrol_test(){
  438. local _paket kkont _cikti _yaz _yaz_uyari
  439. _paket=$1
  440. _cikti="--renkli"
  441. [ "$2" ] && _cikti="$2"
  442. cikti_renk_ayarla ${_cikti}
  443. kkont=`kurulu_kontrol "$1"`
  444. if [ "$kkont" == "degil" ];then
  445. $_yaz_uyari "$_paket $_paket_kurulu_degil"
  446. exit 1
  447. elif [ "$kkont" == "tanimsiz" ];then
  448. $_yaz_uyari "$_paket $_paket_tanimsiz"
  449. exit 1
  450. fi
  451. }
  452. paket_bilgi(){
  453. local _paket kkont _cikti
  454. _paket="$1"
  455. _cikti="--renkli"
  456. [ "$2" ] && _cikti="$2"
  457. cikti_renk_ayarla ${_cikti}
  458. kkont=`kurulu_kontrol "$1"`
  459. if [ "$kkont" = "kurulu" ];then
  460. satir=`sed -n '1p' < $VT/"${_paket}"/META`
  461. $_yaz "ADI :" ${satir:1:${#satir}-1} #$_yaz_son
  462. satir=`sed -n '2p' < $VT/"${_paket}"/META`
  463. $_yaz "TANIM :" ${satir:1:${#satir}-1} #$_yaz_son
  464. satir=`sed -n '3p' < $VT/"${_paket}"/META`
  465. $_yaz "URL :" ${satir:1:${#satir}-1} #$_yaz_son
  466. satir=`sed -n '5p' < $VT/"${_paket}"/META`
  467. $_yaz "PAKETÇİ :" ${satir:1:${#satir}-1} #$_yaz_son
  468. satir=`sed -n '6p' < $VT/"${_paket}"/META`
  469. satir=${satir:1:${#satir}-1}
  470. printf -v boyut '%d\n' "$satir" 2>/dev/null
  471. if [ $boyut -lt 1048576 ];then
  472. boyut=$(($boyut/1024))
  473. _ek="kb"
  474. else
  475. boyut=$(($boyut/1024/1024))
  476. _ek="mb"
  477. fi
  478. $_yaz "KUR BOYUT :" "$boyut $_ek (tahmini)" #$_yaz_son
  479. satir=`sed -n '7p' < $VT/"${_paket}"/META`
  480. $_yaz "SÜRÜM :" ${satir:1:${#satir}-1} #$_yaz_son
  481. satir=`sed -n '8p' < $VT/"${_paket}"/META`
  482. $_yaz "DEVİR :" ${satir:1:${#satir}-1} #$_yaz_son
  483. satir=`sed -n '9p' < $VT/"${_paket}"/META`
  484. $_yaz "PAKETLENME :" `date -d @${satir:1:${#satir}-1}` #$_yaz_son
  485. satir=`sed -n '10p' < $VT/"${_paket}"/META`
  486. $_yaz "MİMARİ :" ${satir:1:${#satir}-1} #$_yaz_son
  487. satir=`sed -n '11p' < $VT/"${_paket}"/META`
  488. $_yaz "GRUP :" ${satir:1:${#satir}-1} #$_yaz_son
  489. elif [ "$kkont" = "degil" ];then
  490. _konum=$(talimat_bul $1)
  491. source ${_konum}/talimat
  492. _ad=$(basename ${_konum})
  493. _tanim=$(grep -ri "# Tanım:" $_konum/talimat | cut -d ':' -f2-)
  494. _url=$(grep -ri "# Url:" $_konum/talimat | cut -d ':' -f2-)
  495. _paketci=$(grep -ri "# Paketçi:" $_konum/talimat | cut -d ':' -f2-)
  496. _surum=${surum}
  497. _devir=${devir}
  498. _grup=$(grep -ri "# Grup:" $_konum/talimat | head -1 | cut -d ':' -f2)
  499. $_yaz "ADI :" ${_ad} #$_yaz_son
  500. $_yaz "TANIM :" ${_tanim} #$_yaz_son
  501. $_yaz "URL :" ${_url} #$_yaz_son
  502. $_yaz "PAKETÇİ :" ${_paketci} #$_yaz_son
  503. $_yaz "SÜRÜM :" ${_surum} #$_yaz_son
  504. $_yaz "DEVİR :" ${_devir} #$_yaz_son
  505. $_yaz "GRUP :" ${_grup} #$_yaz_son
  506. $_yaz_uyari "${_paket} $_paket_kurulu_degil"
  507. else
  508. $_yaz_uyari "${_paket} $_paket_tanimsiz"
  509. fi
  510. }
  511. paket_bilgi_html(){
  512. _simgedepo="/srv/http/mpsweb/static/simgeler"
  513. _simgehtmldepo="/static/simgeler"
  514. _simgedosya=""
  515. _dosya=$1
  516. _paket=`echo "${_dosya}" | cut -d'_' -f4-5`
  517. icerik="<table border=1>"
  518. # ikon arşive baktırılacak varsa programın kendi ikonu yoksa öntanımlı ikon kullanılacak
  519. if [ -f $_simgedepo/${_paket}.png ];then
  520. _simgedosya="$_simgehtmldepo/$_paket.png"
  521. elif [ -f /usr/share/icons/hicolor/32x32/apps/${_paket}.png ];then
  522. cp /usr/share/icons/hicolor/32x32/apps/${_paket}.png $_simgedepo/${_paket}.png
  523. _simgedosya="$_simgehtmldepo/$_paket.png"
  524. elif [ `ls $_simgedepo/${_paket}_* 2>/dev/null | head -n1` ];then
  525. _gecicidosya=`ls $_simgedepo/${_paket}_* 2>/dev/null | head -n1`
  526. _simgedosya="$_simgehtmldepo/$(ls $_gecicidosya | xargs -I {} basename {})"
  527. else
  528. _simgedosya="$_simgehtmldepo/package.png"
  529. fi
  530. icerik+="<tr><td align=center><img src='${_simgedosya}' alt='' weight=40 height=40></img><td></tr>"
  531. while IFS='' read -r satir || [[ -n "$line" ]]; do
  532. icerik+="<tr>"
  533. _sutun_baslik="$(echo $satir | cut -d':' -f1)"
  534. _sutun_deger="$(echo $satir | cut -d':' -f2-)"
  535. #icerik+="<td>$_sutun_deger</td>"
  536. if [ "${_sutun_baslik}" != "${_sutun_deger}" ];then
  537. icerik+="<td>$_sutun_baslik</td>"
  538. icerik+="<td>$_sutun_deger</td>"
  539. fi
  540. icerik+="</tr>"
  541. done < "$_dosya"
  542. if [[ "${_sutun_baslik}" == *"${_paket_kurulu_degil}"* ]] || [[ "${_sutun_baslik}" == *"${_paket_tanimsiz}"* ]];then
  543. icerik+="<tr bgcolor='red'><td>DURUM</td><td>${_sutun_baslik}</td></tr>"
  544. else
  545. icerik+="<tr bgcolor='green'><td>DURUM</td><td>kurulu</td></tr>"
  546. fi
  547. icerik+="</table>"
  548. echo "$icerik" > $_dosya.html
  549. }
  550. # paketlerin toplu tablo gösterimi
  551. paketler_depo_html(){
  552. icerik="<table border=1>"
  553. for _paket in $(ls $VT);do
  554. # ikon arşive baktırılacak varsa programın kendi ikonu yoksa öntanımlı ikon kullanılacak
  555. _simgedosya="/static/package.png"
  556. #echo "dosya: $_simgedepo/${_paket}.png"
  557. [ -f $_simgedepo/${_paket}.png ] && _simgedosya="$_simgehtmldepo/$_paket.png"
  558. [ $(ls $_simgedepo/${_paket}_* | head -n1) ] && _simgedosya="$_simgehtmldepo/$(ls $_simgedepo/${_paket}_* | head -n1 | xargs -I {} basename {})"
  559. icerik+="<tr><td align=center><img src='${_simgedosya}' alt='' weight=40 height=40></img><td><td>$_paket</td></tr>"
  560. done
  561. icerik+="</table>"
  562. echo "$icerik" > /tmp/test.html
  563. }
  564. yeniden_paketle(){
  565. cd $1
  566. bsdtar -r -f ../"$1".mps .META
  567. bsdtar -r -f ../"$1".mps *
  568. cd ..
  569. lzip -9 "$1".mps
  570. }
  571. talimat_bul(){
  572. local _apaket _bulunan _sonuc _donus _konum
  573. [ -z $1 ] && hata_olustu "_paket_adi_gerekli"
  574. _konum="$talimatname $ektalimatname"
  575. [ ! -z $2 ] && _konum="$2"
  576. _donus="-1"
  577. _apaket="$1"
  578. _sonuc=$(find $_konum -name ${_apaket} | wc -l)
  579. if [ ${_sonuc} -eq 0 ];then echo $_donus;return; fi
  580. _bulunan=$(find $_konum -name ${_apaket} | head -n1)
  581. #if [ ! -f "${_bulunan}/talimat" ];then hata_olustu "_talimatsiz_dizin";return; fi
  582. if [ ! -f "${_bulunan}/talimat" ];then echo ${_donus};return; fi
  583. [ ${_sonuc} -gt 1 ] && echo "$(date +'%F %T') ${_apaket} $_talimat_sayisi_fazla" >> $LOGDIZIN/mps-hata.log
  584. echo ${_bulunan}
  585. }
  586. paket_analiz(){
  587. _gcc_uyumsuz_paketler="/tmp/gcc_uyumsuz_paketler"
  588. _pkvt="paket.vt"
  589. if [ -z "$1" ];then echo "$_paket_adi_gerekli";exit 1;fi
  590. local pkt _apaket _konum
  591. pkt=$1
  592. if [ -f $pkt ];then
  593. _apaket=$(basename $pkt |cut -d'#' -f 1)
  594. _konum=$(talimat_bul $_apaket $anatalimatname)
  595. _depo_sha=$(cat "$paketdepo$_pkvt" | grep " $_apaket#" | cut -d' ' -f2)
  596. _paket_sha=$(sha1sum $pkt | cut -d ' ' -f1)
  597. if [[ $_konum != "-1" && $_konum != "0" ]];then
  598. source $_konum/talimat
  599. if [ -f $pkt ];then
  600. bsdtar xf $pkt .META
  601. if [ -f $PWD/.META ];then
  602. mv .META /tmp/$_apaket.META
  603. satir=$(sed -n '7p' < /tmp/$_apaket.META)
  604. psurum=${satir:1:${#satir}-1}
  605. satir2=$(sed -n '8p' < /tmp/$_apaket.META)
  606. pdevir=${satir2:1:${#satir2}-1}
  607. deposurum=`echo -e "$surum" | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n | head -n1`
  608. depodevir=`echo -e "$devir" | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n | head -n1`
  609. _surumbilgi="gereken_sürüm:$deposurum ! paket_sürüm:$psurum"
  610. _devirbilgi="gereken_devir:$depodevir ! paket_devir:$pdevir"
  611. $_yaz_bilgi "$pkt"
  612. if [ "$deposurum" != "$psurum" ];then
  613. $_yaz_uyari "$_surumbilgi"
  614. echo "$pkt" >> $_gcc_uyumsuz_paketler
  615. fi
  616. if [ "$depodevir" != "$pdevir" ];then
  617. $_yaz_uyari "$_devirbilgi"
  618. echo "$pkt" >> $_gcc_uyumsuz_paketler
  619. fi
  620. if [ "$_paket_sha" != "$_depo_sha" ];then
  621. $_yaz_uyari "$_shasum_uyumsuzluk"
  622. echo "$pkt" >> $_gcc_uyumsuz_paketler
  623. fi
  624. else
  625. $_yaz_uyari "$_apaket depoda yok. mps -i $_apaket"
  626. fi
  627. else
  628. $_yaz_uyari "$_apaket depoda yok. mps -i $_apaket"
  629. fi
  630. else
  631. $_yaz_uyari "$1 $_talimat_bulunamadi"
  632. fi
  633. rm -f /tmp/$_apaket.META
  634. else
  635. $_yaz_uyari "$pkt $_dosya_yolu_bulunamadi"
  636. exit 0
  637. fi
  638. }
  639. paketdepo_analiz(){
  640. paketvt_guncelle
  641. _aranandepo=$1
  642. _uyumsuz_paketler="/tmp/uyumsuz_paketler"
  643. if [[ -d $_aranandepo && ! -f $_aranandepo ]];then
  644. rm -f $_uyumsuz_paketler
  645. _gcc_uyumsuz_paketler="/tmp/gcc_uyumsuz_paketler"
  646. for pkt in $(ls $_aranandepo*mps.lz);do
  647. paket_analiz $pkt
  648. echo "-"
  649. done
  650. echo "tarama bitti"
  651. sort -u $_gcc_uyumsuz_paketler > $_uyumsuz_paketler
  652. echo "file://$_uyumsuz_paketler"
  653. exit 0
  654. else
  655. $_yaz_uyari "$1 $_dizin_bulunamadi"
  656. exit 1
  657. fi
  658. }
  659. derleme_listyap_kontrol(){
  660. if [ -f gerek.liste ];then
  661. mv gerek.liste gerek.eski.liste
  662. fi
  663. if [ -f gerek.konum.liste ];then
  664. mv gerek.konum.liste gerek.konum.eski.liste
  665. fi
  666. touch gerek.liste
  667. touch gerek.konum.liste
  668. }
  669. gerekleri_dosyala(){
  670. local _altgerek _konum
  671. _altgerek="$1"
  672. _konum=$(talimat_bul $_altgerek)
  673. if [[ $konum != "-1" && $konum != "0" ]];then
  674. printf "."
  675. echo "$_altgerek" >> gerek.liste
  676. if [ ! -d "$talimatname/temel/$_altgerek" ];then
  677. echo "$_konum" >> gerek.konum.liste
  678. fi
  679. else
  680. $_yaz_uyari "$1 $_talimat_bulunamadi"
  681. fi
  682. }
  683. deps_recursive(){
  684. local _talimat _deps _temp _pkt _konum _kurkon bagimd
  685. local _ekle=1
  686. [ $1 ] && _pkt=$1 || hata_olustu "_talimat_bulunamadi"
  687. [ $2 ] && _kurkon=$2 || echo "kurkon tanımsız"
  688. [ $3 ] && _depsf=$3 || echo "depsf tanımsız"
  689. printf "-"
  690. _konum=$(talimat_bul $_pkt)
  691. _talimat="${_konum}/talimat"
  692. [ $_kurkon -eq 1 ] && [ `kurulu_kontrol $_pkt` = "kurulu" ] && _ekle=0
  693. [ $_ekle -eq 1 ] && echo "@$bag@" >> ${_depsf}
  694. _deps=$(cat $_talimat | awk '/^#[[:blank:]]*Gerek*/ {print}' | cut -d':' -f2)
  695. if [ -n "$_deps" ]; then
  696. bagimd=`echo "$_deps" | sed 's/,/ /g'`
  697. for bag in $bagimd;do
  698. #[ $_ekle -eq 1 ] && echo "@$bag@" >> ${_depsf}
  699. _temp=$(grep -rli "@${bag}@" ${_depsf})
  700. [ ! -z $_temp ] || deps_recursive $bag $_kurkon ${_depsf}
  701. done
  702. fi
  703. }
  704. deps(){
  705. local _depsf="/tmp/deps"
  706. local _kurkon=0
  707. local _pkt
  708. #[ "$2" = "--normal" ] && cikti_renk_ayarla "$2"
  709. #[ "$3" = "--normal" ] && cikti_renk_ayarla "$3"
  710. [ $1 ] && _pkt=$1 || hata_olustu "_talimat_bulunamadi"
  711. $_yaz "$1 $_gerekler_belirleniyor"
  712. [ $2 ] && [ $2 == "--kurulu_atla" ] && _kurkon=1
  713. [ -f ${_depsf} ] && rm -f ${_depsf} && touch ${_depsf}
  714. deps_recursive $_pkt $_kurkon ${_depsf}
  715. sed -i 's/@//g' ${_depsf}
  716. #printf "\n"
  717. cat ${_depsf}
  718. }
  719. gerekleri_listele(){
  720. derleme_listyap_kontrol
  721. local _paket _konum _pkvt
  722. _konum="$talimatname $ektalimatname"
  723. [ $1 ] && _paket=$1 || hata_olustu "_talimat_bulunamadi"
  724. _pkvt=""
  725. [ "$2" = "--kurulu_atla" ] && _pkvt="$VT"
  726. #echo "arama konum: $_konum"
  727. echo $_paket | awk -v arama_konum="$_konum" -v PKVT="$_pkvt" \
  728. '''
  729. function gerekbul(paket,gerekler) {
  730. if (ISLENDI[paket]) {
  731. return
  732. }
  733. while((getline satir<paket) >0) {
  734. if (satir ~ "# Gerekler:" ){
  735. split(satir,gerekb,":");
  736. split(gerekb[2], gerekler, /[ ,]+/);
  737. if ( length(gerekler) > 0 ){
  738. for (i in gerekler){
  739. if ( i > 1 && length(gerekler[i]) > 0 ){
  740. ara=gerekler[i]
  741. konum=talimat_bul(ara);
  742. if (konum != ""){
  743. if (length(PKVT) > 0 ){
  744. (kk(PKVT "/" ara))? yaz("."):gerekbul(konum)
  745. }
  746. else {gerekbul(konum)}
  747. }
  748. }
  749. }
  750. }
  751. }
  752. }
  753. ISLENDI[paket]=1 ;
  754. printf "."
  755. system("echo $(dirname " paket ") >> gerek.konum.liste")
  756. system("echo $(basename $(dirname " paket ")) >> gerek.liste")
  757. close(paket)
  758. }
  759. # kurulu kontrol
  760. function kk(p) {
  761. return !system("test -d \""p"\"");
  762. }
  763. function yaz(_param){
  764. printf _param
  765. }
  766. function talimat_bul(ara){
  767. cmd= "find " arama_konum " -name " ara " | head -n1 "
  768. _bulundu=0
  769. while ( ( cmd | getline talimatyol ) > 0 ) {
  770. _bulundu=1
  771. break
  772. }
  773. close(cmd)
  774. if ( _bulundu == 0 ) {
  775. print ara " talimatı bulunamadı";
  776. exit 1
  777. }
  778. return talimatyol "/talimat"
  779. }
  780. {
  781. #print FILENAME
  782. _talimat=$1
  783. _paket=talimat_bul(_talimat)
  784. if ( length(_paket) > 0 ){gerekbul(_paket);}
  785. else {print _talimat " talimatı bulunumadı!"}
  786. exit 1
  787. }
  788. '''
  789. [ -f gerek.liste ] && cat gerek.liste | tr "\n" " ";echo
  790. }
  791. derleme_listyap(){
  792. [ "$2" = "--normal" ] && cikti_renk_ayarla "$2"
  793. [ "$3" = "--normal" ] && cikti_renk_ayarla "$3"
  794. $_yaz "$1 $_gerekler_belirleniyor"
  795. gerekleri_listele $@
  796. }
  797. # -derlist
  798. paket_derle_liste(){
  799. for dpktyer in `cat $1`;do
  800. dpkt=`basename $dpktyer`
  801. echo $dpkt "derleniyor...."
  802. zorla_derle="yok"
  803. paket_derle $dpktyer
  804. done
  805. }
  806. #otomatik derle kontrollu kur
  807. # -derle
  808. paket_derle_kur(){
  809. tekrarkur="hayir"
  810. derleme_listyap_kontrol
  811. derleme_listyap "$1" && paket_derle_liste gerek.konum.liste
  812. }
  813. # odkp
  814. oto_derle_kur_paketle(){
  815. paketvt_guncelle
  816. # mps -kur
  817. _konum=$(talimat_bul $1)
  818. paket_inkur_oto $1 &&
  819. if [ -f "$_konum/$1.sira" ];then
  820. $_yaz "sıralı derleme yapılacak."
  821. paket_derle_liste "$_konum/$1.sira"
  822. else
  823. paket_derle_kur $1
  824. fi
  825. rm -rf {gerek.konum.eski,gerek.konum,gerek,kurulanlar,silinenler,gerek.eski}.liste
  826. }
  827. paket_kur_oto(){
  828. local kpkt pkt pak kliste
  829. if [ "$1" = "-H" ];then
  830. ls *.mps.lz > "otokur.list"
  831. kliste="otokur.list"
  832. else
  833. kliste="$1"
  834. fi
  835. for kpkt in `cat $kliste`;do
  836. for pkt in `ls $kpkt* | cut -d'#' -f1`;do
  837. pak=`ls "$pkt#"*`
  838. yerelden_kur "$pak" && paket_inkur_oto "$pkt"
  839. done
  840. done
  841. rm -rf otokur.list
  842. }
  843. paket_kur_oto_zorla(){
  844. local _pak _kliste
  845. [ ! -z $1 ] && _kliste=$1
  846. for _kpkt in `cat $_kliste`;do
  847. for _pkt in `ls $_kpkt* | cut -d'#' -f1`;do
  848. _pak=`ls "$_pkt#"*`
  849. paket_sil "$_pkt" "evet"
  850. echo $_pak
  851. yerelden_kur "$_pak" && paket_inkur_oto "$_pkt"
  852. done
  853. done
  854. rm -rf $_kliste
  855. }
  856. paket_kur_liste(){
  857. local kpkt pkt pak
  858. for kpkt in `cat $1`;do
  859. for pkt in `ls $kpkt* | cut -d'#' -f1`;do
  860. pak=`ls "$pkt#"*`
  861. yerelden_kur "$pak"
  862. done
  863. done
  864. }
  865. paket_kur_liste_zorla(){
  866. local kpkt pkt pak
  867. for kpkt in `cat $1`;do
  868. for pkt in `ls $kpkt* | cut -d'#' -f1`;do
  869. pak=`ls "$pkt#"*`
  870. paket_sil "$kpkt" "evet"
  871. yerelden_kur "$pak"
  872. done
  873. done
  874. }
  875. #otomatik kontrollu kur
  876. paket_kur_oto2(){
  877. derleme_listyap_kontrol
  878. derleme_listyap "$1" > /dev/null && mps -ok gerek.konum.liste
  879. }
  880. paket_inkur_liste_direk(){
  881. local kpkt
  882. for kpkt in `cat $1`;do
  883. agdan_kur "$kpkt"
  884. done
  885. }
  886. paket_inkur_liste(){
  887. local kpkt
  888. for kpkt in `cat $1`;do
  889. paket_inkur_oto "$kpkt"
  890. done
  891. }
  892. # otomatik kontrollu kur
  893. # -kur
  894. paket_inkur_oto(){
  895. local _cikti
  896. _cikti="--renkli"
  897. [ $1 ] && _pkt="$1" || hata_olustu "_paket_adi_gerekli"
  898. [ $2 ] && _cikti="$2"
  899. cikti_renk_ayarla $_cikti
  900. local konum anakonum kurdurum _agdan_kur_onay
  901. derleme_listyap_kontrol
  902. derleme_listyap ${_pkt} "--kurulu_atla"
  903. for kpkt in `cat gerek.liste`;do
  904. # önce talimat-anatalimat karşılaştırması yapılır.
  905. konum="`find "$talimatname" -name $kpkt`"
  906. anakonum="`find "$anatalimatname" -name $kpkt`"
  907. ekkonum="`find "$ektalimatname" -name $kpkt`"
  908. if [ -f "$anakonum/talimat" ];then
  909. # depo ve talimatname sürüm kontrolü
  910. _gncdurum=""
  911. [ "$(kurulu_kontrol ${kpkt})" = "kurulu" ] && _gncdurum=$(surum_karsilastir ${kpkt})
  912. _agdan_kur_onay="x"
  913. if [ "${_gncdurum}" == "degil" ];then
  914. _agdan_kur_onay="h"
  915. elif [ "`dosya_karsilastir $konum/talimat $anakonum/talimat`" = "evet" ];then
  916. _agdan_kur_onay="e"
  917. else
  918. _agdan_kur_onay="h"
  919. $_yaz_uyari "$kpkt talimat eşitsizliğinden atlandı."
  920. fi
  921. [ $_agdan_kur_onay == "x" ] && exit 1
  922. [ $_agdan_kur_onay == "e" ] && agdan_kur "$kpkt" "$_cikti"
  923. # ek talimatlar için sürüm karşılaştırma henüz yok.farklı depolara bakılarak sağlanacak
  924. elif [ -f "$ekkonum/talimat" ];then
  925. agdan_kur "$kpkt" "$_cikti"
  926. else
  927. $_yaz_uyari "$kpkt talimatı bulunamadı!"
  928. fi
  929. done
  930. if [ $(kurulu_kontrol ${_pkt}) = "degil" ];then
  931. kurdurum="kurulu değil"
  932. elif [ $(kurulu_kontrol ${_pkt}) = "kurulu" ];then
  933. kurdurum="kurulu"
  934. #_gnc_kntrl=$(surum_devir_kontrol "${_pkt}" "--normal")
  935. #if [ ${_gnc_kntrl} = "var" ];then
  936. # paket_guncelle ${_pkt}
  937. #else
  938. $_yaz "${_pkt} $kurdurum"
  939. #fi
  940. else
  941. kurdurum="$_paket_tanimsiz"
  942. fi
  943. rm -rf *.liste
  944. }
  945. paket_sil_oto(){
  946. local spkt
  947. for spkt in `cat $1`;do
  948. oto_silme="evet"
  949. paket_sil "$spkt" "$oto_silme"
  950. done
  951. }
  952. paket_sil_oto_onayli(){
  953. local spkt
  954. #for spkt in `perl -e 'print reverse <>' $1`;do
  955. for spkt in $(tac $1);do
  956. paket_sil "$spkt" "hayir" "evet"
  957. done
  958. }
  959. paket_sil_gereklerle(){
  960. local _onay _tbsnc _paket _dosya _silindi
  961. [ $1 ] && _paket="$1" || hata_olustu "_paket_adi_gerekli"
  962. # otomatik onay verme durum kontrolü
  963. _onay="onay"
  964. [ $2 ] && _onay="$2";
  965. if [ -d $VT/${_paket} ];then
  966. _dosya=/tmp/${_paket}.gerekler.liste
  967. rm -f /tmp/${_paket}.silinecekler
  968. rm -f /tmp/${_paket}.silinemezler
  969. _sliste=`mktemp`
  970. _eliste=`mktemp`
  971. bagimli_bilgi_dosyala "${_paket}"
  972. for _pk in $(cat ${_dosya});do
  973. _silindi=0
  974. _tbsnc=$(ters_bagimli_bilgi ${_pk} "kurulu")
  975. for _tbb in `echo $_tbsnc`;do
  976. for _benzer in $(grep -ri "${_tbb}" ${_dosya});do
  977. if [ ${_tbb} = ${_benzer} ];then
  978. echo ${_pk} >> ${_sliste}
  979. _silindi=1
  980. fi
  981. done
  982. if [ ${_tbb} = ${_paket} ];then
  983. echo ${_pk} >> ${_sliste}
  984. _silindi=1
  985. fi
  986. if [ $_silindi -eq 0 ];then
  987. echo ${_pk} >> ${_eliste}
  988. fi
  989. done
  990. done
  991. sort -u ${_sliste} > /tmp/${_paket}.silinecekler
  992. sort -u ${_eliste} > /tmp/${_paket}.silinemezler
  993. rm -rf ${_eliste} ${_sliste}
  994. #cat /tmp/${_paket}.silinecekler
  995. #cat /tmp/${_paket}.silinemezler
  996. if [ $_onay = "oto" ];then
  997. paket_sil_oto "/tmp/${_paket}.silinecekler"
  998. else
  999. paket_sil_oto_onayli "/tmp/${_paket}.silinecekler"
  1000. fi
  1001. else
  1002. $_yaz "$_zaten ${_paket} $_paket_kurulu_degil"
  1003. exit 1
  1004. fi
  1005. }
  1006. paket_sil_gereklerle_eski(){
  1007. local _onay _tbs _tbsnc _paket _ustgerek
  1008. [ $1 ] && _paket="$1" || hata_olustu "_paket_adi_gerekli"
  1009. # otomatik onay verme durum kontrolü
  1010. [ $2 ] && _onay="$2";
  1011. _onay="onay"
  1012. if [ -d $VT/${_paket} ];then
  1013. bagimli_bilgi_dosyala "${_paket}"
  1014. rm -f /tmp/${_paket}.silinecekler
  1015. touch /tmp/${_paket}.silinecekler
  1016. _tbsnc=$(ters_bagimli_bilgi ${_paket} "kurulu")
  1017. if [ -z "${_tbsnc}" ];then _tbs=0
  1018. else _tbs=$(echo "$_tbsnc" | wc -l)
  1019. fi
  1020. if [ $_tbs -gt 0 ];then
  1021. $_yaz_uyari "${_paket} silinemez."
  1022. echo "ters gerekleri:";echo "$_tbsnc"
  1023. exit 1
  1024. fi
  1025. for pkaltb in $(cat /tmp/${_paket}.gerekler.liste);do
  1026. if [ -d $VT/$pkaltb ];then
  1027. _tbsnc=""
  1028. _tbsnc=$(ters_bagimli_bilgi $pkaltb "kurulu")
  1029. if [ -z "${_tbsnc}" ];then _tbs=0
  1030. else _tbs=$(echo "$_tbsnc" | wc -l)
  1031. fi
  1032. echo "$pkaltb >"
  1033. if [ -f ${pkaltb}.tbk.txt ];then
  1034. _ustgerek=$(cat /tmp/${_paket}.silinecekler | grep -f ${pkaltb}.tbk.txt)
  1035. [ ${_ustgerek} ] && _tbs=0
  1036. fi
  1037. if [ $_tbs -eq 0 ];then
  1038. $_yaz "$pkaltb silinebilir."
  1039. echo "$pkaltb" >> /tmp/${_paket}.silinecekler
  1040. elif [ "$_tbsnc" = "${_paket}" ];then
  1041. $_yaz "$pkaltb silinebilir."
  1042. echo "$pkaltb" >> /tmp/${_paket}.silinecekler
  1043. else
  1044. $_yaz_uyari "$pkaltb silinemez."
  1045. echo "ters gerekleri: $tbsonuc"
  1046. fi
  1047. else
  1048. $_yaz "$_zaten $pkaltb $_paket_kurulu_degil"
  1049. fi
  1050. done
  1051. #cat /tmp/${_paket}.silinecekler
  1052. if [ $_onay = "oto" ];then
  1053. paket_sil_oto "/tmp/${_paket}.silinecekler"
  1054. else
  1055. paket_sil_oto_onayli "/tmp/${_paket}.silinecekler"
  1056. fi
  1057. else
  1058. $_yaz "$_zaten ${_paket} $_paket_kurulu_degil"
  1059. exit 1
  1060. fi
  1061. }
  1062. paketsiz_talimatlar(){
  1063. for talimatyol in `( ls -d $talimatname/genel/*/* & ls -d $ektalimatname/*/* ) | cat`;do
  1064. #echo $talimat
  1065. if [ -d $talimatyol ];then
  1066. talimat=$(basename $talimatyol)
  1067. if [[ ! $(cat $paketdepo/paket*.vt | grep $talimat#) ]] ;then
  1068. if [ -d $talimatname/*/*/$talimat ];then
  1069. ack=`grep -e '# Tanım:' $talimatname/genel/*/$talimat/talimat | cut -d':' -f2`
  1070. elif [ -d $ektalimatname/*/$talimat ];then
  1071. ack=`grep -e '# Tanım:' $ektalimatname/*/$talimat/talimat | cut -d':' -f2`
  1072. fi
  1073. printf '%s = %s \n' "$talimat" "$ack"
  1074. fi
  1075. fi
  1076. done
  1077. }
  1078. paket_guncelle(){
  1079. surum_kontrol $1 $2 $3
  1080. if [ -d "$VT/$1" ];then
  1081. if [ ${_paketguncel} -eq 0 ];then
  1082. devir_kontrol $1 $2 $3
  1083. else
  1084. $_yaz "$1 paketi yeni güncellendi."
  1085. $_yaz "devir güncellemesi yapılmayacak."
  1086. fi
  1087. fi
  1088. export _paketguncel=0
  1089. }
  1090. paket_guncelle_oto(){
  1091. derleme_listyap "$1" > /dev/null &&
  1092. local kpkt
  1093. GS_CIKTI="H"
  1094. for kpkt in `cat gerek.konum.liste`;do
  1095. durum=`kurulu_kontrol "$kpkt"`
  1096. if [ "$durum" = "kurulu" ]; then
  1097. paket_guncelle "$kpkt" $GS_CIKTI
  1098. fi
  1099. done
  1100. listeleri_temizle
  1101. }
  1102. dongu_gosterge(){
  1103. count=0
  1104. total=$1
  1105. pstr="[=======================================================================]"
  1106. while [ $count -lt $total ]; do
  1107. sleep 0.5 # yapılacak iş veya uyutulur.
  1108. count=$(( $count + 1 ))
  1109. pd=$(( $count * 73 / $total ))
  1110. printf "\r%3d.%1d%% %.${pd}s" $(( $count * 100 / $total )) $(( ($count * 1000 / $total) % 10 )) $pstr
  1111. done
  1112. }
  1113. guncelleme_tespit(){
  1114. local _konum
  1115. guncelleme_dosya="/tmp/mps.guncellenecekler"
  1116. _talimatsiz_dosya="/tmp/talimatsizpkt.liste"
  1117. rm -f $guncelleme_dosya
  1118. touch $guncelleme_dosya
  1119. rm -f $_talimatsiz_dosya
  1120. touch $_talimatsiz_dosya
  1121. for kpaket in $(ls $VT/);do
  1122. satir=$(sed -n '7p' < $VT/$kpaket/META)
  1123. ksurum=${satir:1:${#satir}-1}
  1124. satir2=$(sed -n '8p' < $VT/$kpaket/META)
  1125. kdevir=${satir2:1:${#satir2}-1}
  1126. #deposurum=$(grep " $kpaket#" /depo/paketler/paket.vt | cut -d' ' -f3 | cut -d'#' -f 2 | cut -d'-' -f1)
  1127. _konum=$(talimat_bul $kpaket)
  1128. if [ "$_konum" = "-1" ];then
  1129. $_yaz_uyari "$kpaket $_talimat_bulunamadi $_surum_kontrol_iptal"
  1130. echo $kpaket >> $_talimatsiz_dosya
  1131. #exit 1
  1132. else
  1133. source $_konum/talimat
  1134. deposurum=`echo -e "$surum" | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n | head -n1`
  1135. depodevir=`echo -e "$devir" | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n | head -n1`
  1136. #echo $kpaket " : $ksurum ---> $deposurum" "$kdevir ---> $depodevir"
  1137. #sleep 3
  1138. if [ "$ksurum" != "$deposurum" ];then
  1139. printf "$kpaket -surum: ";echo "$ksurum ---> $deposurum"
  1140. echo $kpaket >> $guncelleme_dosya
  1141. elif [ "$kdevir" != "$depodevir" ];then
  1142. printf "$kpaket -devir: ";echo "$kdevir ---> $depodevir"
  1143. echo $kpaket >> $guncelleme_dosya
  1144. fi
  1145. fi
  1146. done
  1147. }
  1148. sistem_guncelle_eski(){
  1149. count=0
  1150. local kpkt _pkliste
  1151. total=`ls $VT | wc -l`
  1152. pstr="[=======================================================================]"
  1153. git_guncelle
  1154. paketvt_guncelle
  1155. GS_CIKTI="H"
  1156. _pkliste=$(mktemp)
  1157. ls -rct $VT > ${_pkliste}
  1158. for _esgec in `echo ${esgec} | tr " " "\n"`;do
  1159. _satirno=$(grep -wxnr "${_esgec}" ${_pkliste} | cut -d':' -f1)
  1160. [ ! -z ${_satirno} ] && sed -i "${_satirno}d" ${_pkliste}
  1161. done
  1162. while [ $count -lt $total ]; do
  1163. count=$(( $count + 1 ))
  1164. pd=$(( $count * 73 / $total ))
  1165. printf "\r%3d.%1d%% %.${pd}s" $(( $count * 100 / $total )) $(( ($count * 1000 / $total) % 10 )) $pstr
  1166. kpkt=$(sed -n ${count}'p' ${_pkliste})
  1167. [ ! -z $kpkt ] && paket_guncelle "$kpkt" $GS_CIKTI
  1168. done
  1169. $_yaz "\nSistem Güncellemesi Tamamlandı."
  1170. }
  1171. sistem_guncelle_uygula(){
  1172. local _gdosya _onay
  1173. if [ "$1" ]; then
  1174. _gdosya="$1"
  1175. fi
  1176. _onay="yok"
  1177. if [ "$2" ]; then
  1178. _onay="$2"
  1179. fi
  1180. [ $_onay = "evet" ] && GS_CIKTI="E"
  1181. [ ! -f ${_gdosya} ] && exit 1
  1182. for gpkt in `cat ${_gdosya}`;do
  1183. durum=`kurulu_kontrol "$gpkt"`
  1184. if [ "$durum" = "kurulu" ]; then
  1185. paket_guncelle "$gpkt" $GS_CIKTI "E"
  1186. fi
  1187. done
  1188. }
  1189. sistem_guncelle(){
  1190. local guncelleme_dosya _onay _talimatsiz_dosya
  1191. _onay=0
  1192. if [ "$1" = "evet" ];then
  1193. _onay=1
  1194. fi
  1195. if [ "$1" = "dosya" ];then
  1196. _onay=2
  1197. fi
  1198. if [ "$1" ] && [ -f "$1" ];then
  1199. guncelleme_dosya="$1"
  1200. [ "$2" = "evet" ] && _onay=1
  1201. else
  1202. count=0
  1203. local kpaket _pkliste _konum
  1204. guncelleme_dosya="/tmp/mps.guncellenecekler"
  1205. _talimatsiz_dosya="/tmp/talimatsizpkt.liste"
  1206. rm -f $guncelleme_dosya
  1207. touch $guncelleme_dosya
  1208. rm -f $_talimatsiz_dosya
  1209. touch $_talimatsiz_dosya
  1210. total=`ls $VT | wc -l`
  1211. pstr="[=======================================================================]"
  1212. git_guncelle
  1213. paketvt_guncelle
  1214. GS_CIKTI="H"
  1215. _pkliste=$(mktemp)
  1216. ls -rct $VT > ${_pkliste}
  1217. for _esgec in `echo ${esgec} | tr " " "\n"`;do
  1218. _satirno=$(grep -wxnr "${_esgec}" ${_pkliste} | cut -d':' -f1)
  1219. [ ! -z ${_satirno} ] && sed -i "${_satirno}d" ${_pkliste}
  1220. done
  1221. while [ $count -lt $total ]; do
  1222. count=$(( $count + 1 ))
  1223. pd=$(( $count * 73 / $total ))
  1224. printf "\r%3d.%1d%% %.${pd}s" $(( $count * 100 / $total )) $(( ($count * 1000 / $total) % 10 )) $pstr
  1225. kpaket=$(sed -n ${count}'p' ${_pkliste})
  1226. _konum=$(talimat_bul $kpaket)
  1227. if [ "$_konum" = "-1" ];then
  1228. #$_yaz_uyari "$kpaket $_talimat_bulunamadi $_surum_kontrol_iptal"
  1229. # talimatnamede yer almadığından paketin güncellenmesi es geçilecek.
  1230. echo $kpaket >> $_talimatsiz_dosya
  1231. kpaket=""
  1232. fi
  1233. if [ ! -z $kpaket ];then
  1234. satir=$(sed -n '7p' < $VT/$kpaket/META)
  1235. ksurum=${satir:1:${#satir}-1}
  1236. satir2=$(sed -n '8p' < $VT/$kpaket/META)
  1237. kdevir=${satir2:1:${#satir2}-1}
  1238. #deposurum=$(grep " $kpaket#" /depo/paketler/paket.vt | cut -d' ' -f3 | cut -d'#' -f 2 | cut -d'-' -f1)
  1239. source $_konum/talimat
  1240. deposurum=`echo -e "$surum" | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n | head -n1`
  1241. depodevir=`echo -e "$devir" | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n | head -n1`
  1242. #echo $kpaket " : $ksurum ---> $deposurum" "$kdevir ---> $depodevir"
  1243. #sleep 3
  1244. if [ "$ksurum" != "$deposurum" ];then
  1245. #printf "$kpaket -surum: ";echo "$ksurum ---> $deposurum"
  1246. echo $kpaket >> $guncelleme_dosya
  1247. elif [ "$kdevir" != "$depodevir" ];then
  1248. #printf "$kpaket -devir: ";echo "$kdevir ---> $depodevir"
  1249. echo $kpaket >> $guncelleme_dosya
  1250. fi
  1251. fi
  1252. done
  1253. $_yaz "\nSistem Güncelleme Taraması Tamamlandı."
  1254. fi
  1255. if [ -s "$guncelleme_dosya" ];then
  1256. $_yaz_tm "aşağıdaki paketlerin talimatı olmayıp depoda bulunmamaktadırlar!"
  1257. cat $_talimatsiz_dosya
  1258. $_yaz_uyari "mps sildos $_talimatsiz_dosya - komutuyla ilgili paketleri kaldırabilirsiniz."
  1259. fi
  1260. if [ -s "$guncelleme_dosya" ];then
  1261. $_yaz_tm "aşağıdaki paketler güncellenecektir:"
  1262. cat $guncelleme_dosya
  1263. $_yaz_uyari "Güncellemesini istemediğiniz paketleri $guncelleme_dosya dosyasından sildikten sonra onay veriniz!"
  1264. if [ ${_onay} -eq 0 ];then
  1265. while true; do
  1266. $_yaz_tm "listedeki paketler güncellensin mi?";read -p "e veya h-> " eh
  1267. case $eh in
  1268. [Ee]* ) sistem_guncelle_uygula $guncelleme_dosya; break;;
  1269. [Hh]* ) break;;
  1270. * ) echo "e veya h";;
  1271. esac
  1272. done
  1273. elif [ ${_onay} -eq 1 ];then
  1274. sistem_guncelle_uygula $guncelleme_dosya "evet"
  1275. else
  1276. echo "güncelleme dosyanız: $guncelleme_dosya"
  1277. exit 1
  1278. fi
  1279. else
  1280. $_yaz_uyari "Güncellenecek paket bulunamadı!"
  1281. fi
  1282. }
  1283. surum_kontrol(){
  1284. local _konum pk_sil _paket
  1285. _paket=$1
  1286. GS_CIKTI="E"
  1287. G_ONAY="H"
  1288. if [ "$2" ]; then
  1289. GS_CIKTI="$2"
  1290. fi
  1291. if [ "$3" ]; then
  1292. G_ONAY="$3"
  1293. fi
  1294. local ksurum surum pkt dusuk yuksek durum
  1295. durum="belirsiz"
  1296. satir=`sed -n '7p' < $VT/$_paket/META`
  1297. ksurum=${satir:1:${#satir}-1}
  1298. _konum=$(talimat_bul $_paket)
  1299. if [ "$_konum" = "-1" ];then
  1300. $_yaz_uyari "$_paket $_talimat_bulunamadi $_surum_kontrol_iptal"
  1301. pk_sil="e"
  1302. for _esgec in `echo ${silme_esgec} | tr " " "\n"`;do
  1303. if [ "${_esgec}" = "${_paket}" ];then
  1304. pk_sil="h"
  1305. break
  1306. fi
  1307. done
  1308. if [ "$pk_sil" = "e" ];then
  1309. $_yaz "$_paket $_paket_depoda_yok $_siliniyor"
  1310. paket_sil "$_paket" "evet"
  1311. else
  1312. $_yaz "$_paket silinmesi es geçildi"
  1313. fi
  1314. else
  1315. source $_konum/talimat
  1316. dusuk=`echo -e "$ksurum\n$surum" | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n | head -n1`
  1317. if [ "$ksurum" = "$surum" ];then
  1318. durum="guncel"
  1319. [ $GS_CIKTI = "E" ] && $_yaz_bilgi "$_paket sürümü güncel"
  1320. #printf "."
  1321. else
  1322. if [ "$ksurum" = "$dusuk" ];then
  1323. durum="yukselt"
  1324. else
  1325. durum="dusur"
  1326. fi
  1327. gun_onay="h"
  1328. if [ "$durum" != "guncel" ];then
  1329. if [ $G_ONAY = "H" ];then
  1330. while true; do
  1331. printf "\n"
  1332. $_yaz_tm "$_paket sürüm $durum""me işlemi uygulanacak. $ksurum <> $surum ";read -p "e veya h-> " eh
  1333. case $eh in
  1334. [Ee]* ) gun_onay="e"; break;;
  1335. [Hh]* ) break;;
  1336. * ) echo "e veya h";;
  1337. esac
  1338. done
  1339. else
  1340. gun_onay="e"
  1341. fi
  1342. if [ "$gun_onay" = "e" ];then
  1343. if [ -d "$talimatname/temel/$_paket" ]; then
  1344. kurulum_dogrulama_icerik $_paket
  1345. tpk="hayir"
  1346. paket_sil "$_paket" "evet"
  1347. paket_indir $_paket
  1348. pkt=`cat "$paketdepo""paket.vt" | grep "^$_paket " | cut -d' ' -f3`
  1349. icerik_ekle "$paketdepo$pkt"
  1350. else
  1351. paket_sil "$_paket" "evet"
  1352. paket_inkur_oto $_paket
  1353. fi
  1354. $_yaz_tm "$_paket sürüm güncellemesi yapıldı"
  1355. export _paketguncel=1
  1356. else
  1357. $_yaz_uyari "$_paket sürüm güncellemesi yapılmadı"
  1358. hataloglama "$_paket sürüm güncellemesi yapılmadı"
  1359. fi
  1360. fi
  1361. fi
  1362. fi
  1363. }
  1364. devir_kontrol(){
  1365. local _konum pk_sil _paket
  1366. _paket="$1"
  1367. GS_CIKTI="E"
  1368. G_ONAY="H"
  1369. if [ "$2" ]; then
  1370. GS_CIKTI="$2"
  1371. fi
  1372. if [ "$3" ]; then
  1373. G_ONAY="$3"
  1374. fi
  1375. local kdevir devir pkt dusuk yuksek durum gun_onay
  1376. durum="belirsiz"
  1377. satir=`sed -n '8p' < $VT/$_paket/META`
  1378. kdevir=${satir:1:${#satir}-1}
  1379. _konum=$(talimat_bul $_paket)
  1380. if [ "$_konum" = "-1" ];then
  1381. $_yaz_uyari "$_paket $_talimat_bulunamadi $_devir_kontrol_iptal"
  1382. pk_sil="e"
  1383. for _esgec in `echo ${silme_esgec} | tr " " "\n"`;do
  1384. if [ "${_esgec}" = "${_paket}" ];then
  1385. pk_sil="h"
  1386. break
  1387. fi
  1388. done
  1389. if [ "$pk_sil" = "e" ];then
  1390. $_yaz "$_paket $_paket_depoda_yok $_siliniyor"
  1391. paket_sil "$_paket" "evet"
  1392. else
  1393. $_yaz "$_paket silinmesi es geçildi"
  1394. fi
  1395. else
  1396. source $_konum/talimat
  1397. dusuk=`echo -e "$kdevir\n$devir" | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n | head -n1`
  1398. if [ "$kdevir" = "$devir" ];then
  1399. durum="guncel"
  1400. [ $GS_CIKTI = "E" ] && $_yaz_bilgi "$_paket deviri güncel"
  1401. #printf "."
  1402. else
  1403. if [ "$kdevir" = "$dusuk" ];then
  1404. durum="yukselt"
  1405. else
  1406. durum="dusur"
  1407. fi
  1408. gun_onay="h"
  1409. if [ "$durum" != "guncel" ];then
  1410. if [ $G_ONAY = "H" ];then
  1411. while true; do
  1412. printf "\n"
  1413. $_yaz_tm "$_paket devir $durum""me işlemi uygulanacak. $kdevir <> $devir ";read -p "e veya h-> " eh
  1414. case $eh in
  1415. [Ee]* ) gun_onay="e"; break;;
  1416. [Hh]* ) break;;
  1417. * ) echo "e veya h";;
  1418. esac
  1419. done
  1420. else
  1421. gun_onay="e"
  1422. fi
  1423. if [ "$gun_onay" = "e" ];then
  1424. paket_sil "$_paket" "evet"
  1425. paket_inkur_oto "$_paket"
  1426. $_yaz_bilgi "$_paket devir güncellemesi yapıldı"
  1427. else
  1428. $_yaz_uyari "$_paket devir güncellemesi yapılmadı"
  1429. hataloglama "$_paket devir güncellemesi yapılmadı"
  1430. fi
  1431. fi
  1432. fi
  1433. fi
  1434. }
  1435. surum_karsilastir(){
  1436. local kpaket _konum
  1437. [ "$1" ] && kpaket="$1" || exit 1
  1438. deposurum=$(grep " $kpaket#" /depo/paketler/paket.vt | cut -d' ' -f3 | cut -d'#' -f 2 | cut -d'-' -f1)
  1439. _konum=$(talimat_bul $kpaket)
  1440. if [ "$_konum" = "-1" ];then
  1441. $_yaz_uyari "$kpaket $_talimat_bulunamadi $_surum_kontrol_iptal"
  1442. exit 1
  1443. fi
  1444. source $_konum/talimat
  1445. tsurum=`echo -e "$surum" | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n | head -n1`
  1446. if [ "$tsurum" == "$deposurum" ];then
  1447. echo "esit"
  1448. else
  1449. echo "degil"
  1450. fi
  1451. }
  1452. surum_devir_kontrol(){
  1453. local _konum pk_sil _paket _durum pk_guncelle
  1454. _paket=$1
  1455. _durum="yaz"
  1456. pk_guncelle="e"
  1457. [ $2 ] && _durum="$2"
  1458. local kdevir devir ksurum surum pkt dusuk yuksek durum
  1459. durum="belirsiz"
  1460. if [ -d "$VT/$_paket" ];then
  1461. satir=`sed -n '7p' < $VT/$_paket/META`
  1462. ksurum="${satir:1:${#satir}-1}-"
  1463. satir=`sed -n '8p' < $VT/$_paket/META`
  1464. kdevir=${satir:1:${#satir}-1}
  1465. else
  1466. ksurum="(none)"
  1467. kdevir=""
  1468. fi
  1469. _konum=$(talimat_bul $_paket)
  1470. if [ "$_konum" = "-1" ];then
  1471. echo "$_paket $_talimat_bulunamadi $_surum_kontrol_iptal"
  1472. else
  1473. for _esgec in `echo ${esgec} | tr " " "\n"`;do
  1474. if [ "${_esgec}" = ${_paket} ];then
  1475. pk_guncelle="h"
  1476. break
  1477. fi
  1478. done
  1479. if [ $pk_guncelle == "e" ];then
  1480. source $_konum/talimat
  1481. if [ "${_durum}" == "yaz" ];then
  1482. echo "$_paket:"
  1483. echo "kurulu sürüm :$ksurum$kdevir"
  1484. echo "depo sürüm :$surum-$devir"
  1485. echo "--"
  1486. else
  1487. if [ "$ksurum$kdevir" == "$surum-$devir" ];then
  1488. echo "yok"
  1489. else
  1490. echo "var"
  1491. fi
  1492. fi
  1493. else
  1494. echo "$_paket için sürüm-devir kontrolü es geçildi."
  1495. fi
  1496. fi
  1497. }
  1498. _devir_kontrol_durum(){
  1499. local _konum pk_sil _paket
  1500. _paket="$1"
  1501. local kdevir devir pkt dusuk yuksek durum gun_onay
  1502. durum="belirsiz"
  1503. satir=`sed -n '8p' < $VT/$_paket/META`
  1504. kdevir=${satir:1:${#satir}-1}
  1505. _konum=$(talimat_bul $_paket)
  1506. if [ "$_konum" = "-1" ];then
  1507. echo "$_paket $_talimat_bulunamadi $_devir_kontrol_iptal"
  1508. else
  1509. source $_konum/talimat
  1510. echo "kurulu devir :$kdevir"
  1511. echo "depo devir :$devir"
  1512. fi
  1513. }
  1514. grup_kontrol() {
  1515. local _talimat _grup
  1516. [ -z $1 ] && exit 1
  1517. _talimat="$1"
  1518. _grup=$(LC_ALL=tr_TR.utf-8 grep -ri "Grup:" ${_talimat} | cut -d':' -f2 | sed 's/^ *//;s/ *$//' | cut -d' ' -f1)
  1519. echo "( $_grup ) içermektedir!"
  1520. if [ -z "${_grup}" ];then
  1521. _grup="bos"
  1522. grupad_kontrol $_grup ${_talimat}
  1523. else
  1524. grupad_kontrol $_grup ${_talimat}
  1525. fi
  1526. }
  1527. grupad_kontrol() {
  1528. local _grup _var _lineno _agrup _talimat
  1529. _var=0
  1530. [ -z $1 ] && exit 1
  1531. [ -z $2 ] && exit 1
  1532. _grup="$1"
  1533. _talimat="$2"
  1534. if [ -f ${GRUP_DOSYA} ];then
  1535. for grup in `cat ${GRUP_DOSYA}`;do
  1536. [ "x${_grup}x" = "x${grup}x" ] && _var=1
  1537. done
  1538. if [ $_var -eq 0 ];then
  1539. cat -n ${GRUP_DOSYA}
  1540. _lineno=$(wc -l ${GRUP_DOSYA} | cut -d' ' -f1)
  1541. if [ $_grup = "bos" ];then
  1542. echo "Talimat grup bilgisi içermemektedir!"
  1543. else
  1544. echo "Talimat geçersiz grup bilgisi( $_grup ) içermektedir!"
  1545. fi
  1546. echo "Yukarıdaki grup numaralarından birini seçiniz!";read -p "No:" _no
  1547. [ $_no -lt 1 ] && grupad_kontrol $_grup ${_talimat}
  1548. [ $_no -gt $_lineno ] && grupad_kontrol $_grup ${_talimat}
  1549. _agrup=$(cat ${GRUP_DOSYA} | sed -n ${_no}p)
  1550. sed -i '/Grup:/d' ${_talimat}
  1551. sed -i "/# Gerekler/a # Grup: $_agrup" ${_talimat}
  1552. fi
  1553. else
  1554. echo "gruplar dosyası yok: ${GRUP_DOSYA}"
  1555. fi
  1556. }
  1557. talimat_surum_takip(){
  1558. local konum _takip_uzanti
  1559. _takip_uzanti=".takip"
  1560. konum=$(talimat_bul $1)
  1561. if [[ $konum == "-1" || $konum == "0" ]];then
  1562. $_yaz_uyari "$1 $_talimat_bulunamadi"
  1563. exit 1
  1564. else
  1565. if [ -f "$konum/$1$_takip_uzanti" ];then
  1566. source $konum/$1$_takip_uzanti
  1567. if [ "`type -t surum_takip`" = "function" ];then
  1568. $_yaz "$1 paketinin kaynak kod arşivleri inceleniyor..."
  1569. surum_takip
  1570. else
  1571. $_yaz_uyari "$1 talimatının sürüm takip işlevi yok!"
  1572. fi
  1573. else
  1574. $_yaz_uyari "$1 talimatının takip betiği yok!"
  1575. fi
  1576. fi
  1577. }
  1578. kaynak_kod_indir(){
  1579. local konum adres adres2
  1580. _kk_indir="wget --no-check-certificate -q ${wget_progress}"
  1581. konum=$(talimat_bul $1)
  1582. if [[ $konum == "-1" || $konum == "0" ]];then
  1583. $_yaz_uyari "$1 $_talimat_bulunamadi"
  1584. exit 1
  1585. else
  1586. source $konum/talimat
  1587. for adres in $kaynak;do
  1588. urlkont='(https?|ftp|file)://[-A-Za-z0-9\+&@#/%?=~_|!:,.;]*[-A-Za-z0-9\+&@#/%=~_|]'
  1589. if [[ $adres =~ $urlkont ]];then
  1590. if [[ $adres =~ "::" ]];then
  1591. adres2=$(echo $adres | cut -d':' -f-2)
  1592. $_yaz "$adres2 indiriliyor."
  1593. $_kk_indir $adres2
  1594. else
  1595. $_yaz "$adres indiriliyor."
  1596. $_kk_indir $adres
  1597. fi
  1598. else
  1599. $_yaz "$adres kopyalanıyor."
  1600. [ -f $konum/$adres ] && cp $konum/$adres .
  1601. fi
  1602. done
  1603. fi
  1604. }
  1605. paket_derle(){
  1606. #parametre olarak direk konum gelecek
  1607. #eski derleme kalıntılarını temizle
  1608. rm -rf tmp.*
  1609. kaynakdizin_kontrol
  1610. local konum derleme_onay eh bagimd derpaket _gncdurum
  1611. derleme_onay="h"
  1612. if [ -d "$1" ];then
  1613. konum="$1"
  1614. derpaket=`basename $1`
  1615. else
  1616. konum=$(talimat_bul $1)
  1617. if [[ $konum == "-1" || $konum == "0" ]];then
  1618. $_yaz_uyari "$1 $_talimat_bulunamadi"
  1619. exit 1
  1620. fi
  1621. derpaket="$1"
  1622. fi
  1623. if [ -d "$konum" ];then
  1624. #grup_kontrol $konum/talimat
  1625. mkdir -p tmp."$derpaket"
  1626. cp -a $konum/* tmp."$derpaket"/
  1627. cd tmp."$derpaket"
  1628. _kurulu=$(kurulu_kontrol "$derpaket")
  1629. # paket kurulu ise kurulu sürüm-devir depoyla kontrol edilir,gerekirse silinip yenisi derlenir.
  1630. if [ "$_kurulu" = "kurulu" ];then
  1631. _gncdurum=$(surum_devir_kontrol ${derpaket} --durum)
  1632. if [ "${_gncdurum}" == "var" ];then
  1633. echo "Kurulu sürüm depodaki sürümden farklı görünüyor depodaki sürüm ile eşitlemek ister misiniz? "
  1634. surum_devir_kontrol ${derpaket}
  1635. paket_sil ${derpaket}
  1636. # paket silinirse kurulu olma durumunu güncellenir.
  1637. _kurulu=$(kurulu_kontrol "$derpaket")
  1638. fi
  1639. fi
  1640. if [ "$_kurulu" = "kurulu" ] && [ "$zorla_derle" = "yok" ];then
  1641. derleme_onay="h"
  1642. else
  1643. derleme_onay="e"
  1644. fi
  1645. if [ "$derleme_onay" = "e" ];then
  1646. $_yaz_bilgi "$derpaket" "derleniyor...."
  1647. echo "------------------------"
  1648. mpsd -d 2>&1|tee /tmp/"$derpaket".log
  1649. if ( grep "^=======>" /tmp/"$derpaket".log| tail -1 |grep "ERROR" > /dev/null);then
  1650. echo "derleme sisteminde hata oluştu -----> " /tmp/"$derpaket".log
  1651. exit 1
  1652. fi
  1653. if [ "$kurulum_onay" = "evet" ];then
  1654. for kpkt in `ls $derpaket* | cut -d'#' -f1`;do
  1655. yerelden_kur "$kpkt#"*
  1656. done
  1657. fi
  1658. mv *.mps.lz ../
  1659. else
  1660. $_yaz "$derpaket $_zaten $_paket_kurulu,yine de derlemek için:
  1661. mps -zd $derpaket"
  1662. fi
  1663. cd ..
  1664. rm -r tmp."$derpaket"
  1665. else
  1666. $_yaz_uyari "talimat dosyası bulunamadı."
  1667. hataloglama "talimat dosyası bulunamadı."
  1668. fi
  1669. }
  1670. ##_ bagimlilar() : talimatta yer alan gereklerin listesinin alınması.
  1671. bagimlilar(){
  1672. local bagimd konum
  1673. konum=$(talimat_bul $1)
  1674. if [[ $konum != "-1" && $konum != "0" ]];then
  1675. bagimd=`cat $konum/talimat | grep "Gerekler" | cut -d':' -f2`
  1676. bagimd=$(echo "$bagimd" | sed 's/,/ /g')
  1677. echo "$bagimd"
  1678. else
  1679. echo "$konum"
  1680. fi
  1681. }
  1682. ters_bagimli_bilgi(){
  1683. local gtbpaket _secim
  1684. _secim="x"
  1685. gtbpaket=$1
  1686. [ "$2" ] && _secim="$2"
  1687. tbgdosya=$(mktemp)
  1688. grep -rli "\s${gtbpaket}\s.*Gerekler\|Gerekler.*\s${gtbpaket}\s" $talimatname > $tbgdosya ;
  1689. grep -rli "\s${gtbpaket}\s.*Gerekler\|Gerekler.*\s${gtbpaket}\s" $ektalimatname >> $tbgdosya ;
  1690. grep -rli "\s${gtbpaket}\s.*Gerekler\|Gerekler.*\s${gtbpaket}$" $ektalimatname >> $tbgdosya ;
  1691. grep -rli "\s${gtbpaket}\s.*Gerekler\|Gerekler.*\s${gtbpaket}$" $talimatname >> $tbgdosya ;
  1692. cat $tbgdosya | xargs -I {} dirname {} | xargs -I {} basename {} | sort > /tmp/${gtbpaket}.tb.txt
  1693. rm -f $tbgdosya
  1694. [ -f /tmp/${gtbpaket}.tbk.txt ] && rm -f /tmp/${gtbpaket}.tbk.txt
  1695. if [ $_secim = "kurulu" ];then
  1696. for _kurulu_pkt in $(cat /tmp/${gtbpaket}.tb.txt);do
  1697. if [ -d $VT/$_kurulu_pkt ];then
  1698. echo "$_kurulu_pkt" >> /tmp/${gtbpaket}.tbk.txt
  1699. fi
  1700. done
  1701. [ -f /tmp/${gtbpaket}.tbk.txt ] && cat "/tmp/${gtbpaket}.tbk.txt"
  1702. elif [ $_secim = "bilgi" ];then
  1703. for _kurulu_pkt in $(cat /tmp/${gtbpaket}.tb.txt);do
  1704. if [ -d $VT/$_kurulu_pkt ];then
  1705. echo "$_kurulu_pkt kurulu" >> /tmp/${gtbpaket}.tbk.txt
  1706. else
  1707. echo "$_kurulu_pkt değil" >> /tmp/${gtbpaket}.tbk.txt
  1708. fi
  1709. done
  1710. [ -f /tmp/${gtbpaket}.tbk.txt ] && cat "/tmp/${gtbpaket}.tbk.txt"
  1711. else
  1712. cat "/tmp/${gtbpaket}.tb.txt"
  1713. fi
  1714. rm -rf $tbgdizin
  1715. }
  1716. kirik_ters_bagimli_bilgi(){
  1717. $_yaz "Aşağıdaki kurulu ters bağımlılıklarda kırılım araması yapılacaktır."
  1718. ters_bagimli_bilgi $1
  1719. $_yaz "........"
  1720. talimatlar=$(cat /tmp/$1.tb.txt)
  1721. for tal in $talimatlar;do
  1722. #paket kuruluysa kontrolu yapılacak
  1723. if [ -d "$VT/$tal" ];then
  1724. $_yaz_bilgi "$tal paketi araştırılıyor:"
  1725. kirik_kontrol_paket $tal
  1726. $_yaz_bilgi "--------------------------"
  1727. fi
  1728. done
  1729. }
  1730. bagimli_bilgi(){
  1731. local _konum bagimd _dosya _paket
  1732. [ $1 ] && _paket="$1" || hata_olustu "_paket_adi_gerekli"
  1733. _konum=$(talimat_bul $_paket)
  1734. if [ "$_konum" = "-1" ];then
  1735. $_yaz_uyari "$_paket tanimsiz"
  1736. exit 0
  1737. else
  1738. bagimd=`cat $_konum/talimat | grep "Gerekler" | cut -d':' -f2`
  1739. if [ -n "$bagimd" ]; then
  1740. bagimd=`echo "$bagimd" | sed 's/,/ /g'`
  1741. for bag in $bagimd;do
  1742. if [ "$2" = "dogrula" ];then
  1743. kurulum_dogrulama_icerik "$bag"
  1744. else
  1745. echo "$bag" "`kurulu_kontrol $bag`"
  1746. fi
  1747. done
  1748. fi
  1749. if [ "$2" = "dogrula" ];then
  1750. kurulum_dogrulama_icerik "$1"
  1751. else
  1752. echo "$1" "`kurulu_kontrol $1`"
  1753. fi
  1754. fi
  1755. }
  1756. bagimli_bilgi_dosyala(){
  1757. local _konum bagimd _dosya _paket
  1758. [ $1 ] && _paket="$1" || hata_olustu "_paket_adi_gerekli"
  1759. _konum=$(talimat_bul $_paket)
  1760. if [ "$_konum" = "-1" ];then
  1761. $_yaz_uyari "$_paket tanimsiz"
  1762. exit 0
  1763. else
  1764. _dosya="/tmp/${_paket}.gerekler.liste"
  1765. rm -f ${_dosya}
  1766. bagimd=`cat $_konum/talimat | grep "Gerekler" | cut -d':' -f2`
  1767. if [ -n "$bagimd" ]; then
  1768. bagimd=`echo "$bagimd" | sed 's/,/ /g'`
  1769. for bag in $bagimd;do
  1770. echo "$bag" >> "/tmp/$1.gerekler.liste"
  1771. #echo "$bag"
  1772. #for _tb in $(ters_bagimli_bilgi $bag);do
  1773. # echo '|____' $_tb
  1774. #done
  1775. done
  1776. fi
  1777. fi
  1778. }
  1779. silme_etkilenen_kontrol(){
  1780. paketet="$2"
  1781. mkdir -p /var/lib/pkg/etkilenen
  1782. mkdir -p /var/lib/pkg/etkilenen/$paketet
  1783. local dizin
  1784. for f in $(cat $1) ; do
  1785. dizin="${f%\'}"
  1786. dizin="${dizin#\'}"
  1787. if [ -d "$dizin" ];then
  1788. for g in `ls "$dizin"` ; do
  1789. if ! grep -Fxq " '$dizin/$g'" "$1"
  1790. then
  1791. echo "$dizin/$g"
  1792. cp -rf "$dizin/$g" /var/lib/pkg/etkilenen/$paketet
  1793. fi
  1794. done
  1795. fi
  1796. done
  1797. }
  1798. # güncellemelerin alınması talimatname üzerinden
  1799. guncellemeler(){
  1800. #diff --changed-group-format='***%>' --unchanged-group-format='' --new-group-format='+++%>' \
  1801. #$paketdepo/paket.vt.eski $paketdepo/paket.vt | cut -d' ' -f1 | sort --version-sort
  1802. _mps_guncellenecekler="/tmp/mps.guncellenecekler.liste"
  1803. [ -f $_mps_guncellenecekler ] && rm $_mps_guncellenecekler
  1804. for _paket in $(ls $VT);do
  1805. if [ "$(surum_devir_kontrol ${_paket} x)" = "var" ];then
  1806. echo ${_paket} >> $_mps_guncellenecekler
  1807. fi
  1808. done
  1809. if [ -f $_mps_guncellenecekler ];then
  1810. echo "guncellenecek liste"
  1811. echo "-------------------"
  1812. cat $_mps_guncellenecekler
  1813. fi
  1814. }
  1815. # iki dosyanın içerik karşılaştırması yapar.
  1816. dosya_karsilastir(){
  1817. if cmp -s "$1" "$2"
  1818. then
  1819. echo "evet"
  1820. else
  1821. echo "degil"
  1822. fi
  1823. }
  1824. # ip bulma
  1825. ip_bul(){
  1826. url='[a www.google.com]'
  1827. domain=`echo $url | sed 's-^[^/]*/*\([^/]*\)/\?.*$-\1-'`
  1828. echo "< $domain"
  1829. ipaddr=`ping -c 1 $domain | sed -n 's@^.*(\([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*\).*$@\1@p' | head -1`
  1830. req_url=`echo $url | sed "s-/[^/]\+-/$ipaddr-"`
  1831. echo req_url
  1832. }
  1833. # renkli mesaj
  1834. ryaz() {
  1835. [ -z "$1" ] && return
  1836. : ${color=$1}
  1837. shift
  1838. case $color in
  1839. 0*) echo -e "\\033[${color:-38}m$@\\033[39m";;
  1840. *) echo -e "\\033[1;${color:-38}m$@\\033[0;39m";;
  1841. esac
  1842. unset color
  1843. }
  1844. log_analiz(){
  1845. local zaman durum
  1846. zaman=$1
  1847. durum=$2
  1848. if [ -f "/var/log/mps/mps.log" ];then
  1849. cat $logdosya | grep "$zaman" | grep "$durum" | cut -d' ' -f3
  1850. else
  1851. $_yaz_uyari "mps.log bulunamadı!"
  1852. hataloglama "mps.log bulunamadı!"
  1853. fi
  1854. }
  1855. silme_etkilenme_tespit(){
  1856. local _paket _kliste _eliste dizin
  1857. local _satir _edosya _ipaket _ustdizin
  1858. [ -z $1 ] && hata_olustu "_paket_adi_gerekli" || _paket=$1
  1859. _kliste=`mktemp`
  1860. _eliste=`mktemp`
  1861. #[ -d /tmp/${_paket}_kurtarma ] && rm -rf /tmp/${_paket}_kurtarma
  1862. #mkdir -p /tmp/${_paket}_kurtarma
  1863. [ -f /tmp/${_paket}_kd.liste ] && rm -rf /tmp/${_paket}_kd.liste
  1864. [ -f /tmp/${_paket}_ep.liste ] && rm -rf /tmp/${_paket}_ep.liste
  1865. for _temp in $(cat /var/lib/pkg/DB/${_paket}/kurulan);do
  1866. dizin=${_temp//[\']/}
  1867. if [ -d $dizin ] ;then
  1868. grep --exclude=/var/lib/pkg/DB/${_paket}/kurulan -ri "'${dizin}/" /var/lib/pkg/DB/*/kurulan \
  1869. | while read -r _isatir ; do
  1870. #echo "$_isatir"
  1871. #echo "$dizin - $_paket -"
  1872. echo "${dizin}" >> ${_kliste}
  1873. _esatir=$(echo ${_isatir} | cut -d ':' -f1)
  1874. _edosya=$(echo ${_isatir} | cut -d ':' -f2)
  1875. _ipaket=$(basename $(dirname ${_esatir}))
  1876. _ustdizin=$(dirname ${_edosya//[\']/})
  1877. #mkdir -p /tmp/${_paket}_kurtarma/${_ustdizin}
  1878. if [ ! -d ${_edosya//[\']/} ];then
  1879. [ ! -f ${_edosya//[\']/} ] && echo "${_edosya//[\']/} dosyası eksik!"
  1880. fi
  1881. # eksik dosyalar onaylı yekur yapılacak.
  1882. # /var/lib/pkg/kurtarma altına kopayalama seçimli olacak.
  1883. #\
  1884. # cp -rf ${_edosya//[\']/} /tmp/${_paket}_kurtarma/${_ustdizin}
  1885. echo "${_ipaket}" >> ${_eliste}
  1886. done
  1887. fi
  1888. done
  1889. if [ -s ${_kliste} ];then
  1890. sort -u ${_kliste} > /tmp/${_paket}_kd.liste
  1891. $_yaz "etkilenen konumlar"
  1892. cat /tmp/${_paket}_kd.liste
  1893. fi
  1894. if [ -s ${_eliste} ];then
  1895. sort -u ${_eliste} > /tmp/${_paket}_ep.liste
  1896. $_yaz "etkilenen paketler"
  1897. cat /tmp/${_paket}_ep.liste
  1898. fi
  1899. rm -rf ${_eliste} ${_kliste}
  1900. }
  1901. eski_etkilenen_kurtar(){
  1902. local dizin paket
  1903. paket=$1
  1904. if [ -f $VT/$paket/kurulan ];then
  1905. cat $VT/$paket/kurulan | cut -d '>' -f2 > /tmp/$paket.sil
  1906. for f in $(cat /tmp/$paket.sil) ; do
  1907. dizin="${f%\'}"
  1908. dizin="${dizin#\'}"
  1909. if [ -d "$dizin" ];then
  1910. for g in `ls "$dizin"` ; do
  1911. if ! grep -Fxq " '$dizin/$g'" "/tmp/$paket.sil"
  1912. then
  1913. if [ -f /tmp/$paket.kurtar ];then
  1914. rm /tmp/$paket.kurtar
  1915. fi
  1916. echo " '$dizin'" >> "/tmp/$paket.kurtar"
  1917. fi
  1918. done
  1919. fi
  1920. done
  1921. if [ -f /tmp/$paket.kurtar ];then
  1922. mv $VT/$paket/kurulan $VT/$paket/ilk.kurulan
  1923. grep -v -F -x -f "/tmp/$paket.kurtar" "/tmp/$paket.sil" > $VT/$paket/kurulan
  1924. $_yaz "$paket etkilenen dosyaları kurtarıldı."
  1925. else
  1926. $_yaz "$paket etkilenen dosyası yok."
  1927. fi
  1928. rm -f /tmp/$paket.sil
  1929. else
  1930. $_yaz_uyari "kurulan paket yok!"
  1931. hataloglama "kurulan paket yok!"
  1932. fi
  1933. }
  1934. ters_bagimli_kontrol(){
  1935. ters_bagimli_bilgi $1
  1936. cat /tmp/${1}.tb.txt | sort > tersb.liste
  1937. ls $VT/ | sed "/$1/d" | sort > simdiki.liste
  1938. comm -12 tersb.liste simdiki.liste
  1939. rm tersb.liste simdiki.liste
  1940. }
  1941. kurulu_kontrol(){
  1942. local _konum _apaket
  1943. [ -z $1 ] && hata_olustu "_paket_adi_gerekli"
  1944. _apaket=$1
  1945. cikti_renk_ayarla "--normal"
  1946. [ $2 ] && cikti_renk_ayarla "$2"
  1947. if [ -d "$kokdizin$VT/$_apaket" ];then
  1948. $_yaz "kurulu"
  1949. exit 0
  1950. fi
  1951. _konum=$(talimat_bul $_apaket)
  1952. if [ "$_konum" = "-1" ];then
  1953. $_yaz_uyari "tanimsiz"
  1954. else
  1955. $_yaz_uyari "degil"
  1956. fi
  1957. exit 1
  1958. }
  1959. sistem_kur(){
  1960. local spaket
  1961. for spaket in `cat $1`;do
  1962. ./$betikad -ik "$spaket" -kok $2;
  1963. done
  1964. }
  1965. kaynakdizin_kontrol(){
  1966. if [ ! -d $kaynak_dizin ];then
  1967. mkdir $kaynak_dizin
  1968. fi
  1969. }
  1970. logdizin_kontrol(){
  1971. if [ ! -d $kokdizin$LOGDIZIN ];then
  1972. mkdir $kokdizin$LOGDIZIN
  1973. fi
  1974. if [ ! -d $kokdizin$LOGDIZIN/derleme ];then
  1975. mkdir $kokdizin$LOGDIZIN/derleme
  1976. fi
  1977. if [ ! -f $kokdizin$LOGDIZIN/mps.log ];then
  1978. touch $kokdizin$LOGDIZIN/mps.log
  1979. fi
  1980. if [ ! -f $kokdizin$LOGDIZIN/mps-hata.log ];then
  1981. touch $kokdizin$LOGDIZIN/mps-hata.log
  1982. fi
  1983. if [ ! -f $kokdizin$LOGDIZIN/mps-git.log ];then
  1984. touch $kokdizin$LOGDIZIN/mps-git.log
  1985. fi
  1986. }
  1987. tarihce_dkontrol(){
  1988. if [ ! -d $TARIHCE_DIZIN ];then
  1989. mkdir $TARIHCE_DIZIN
  1990. fi
  1991. }
  1992. temel_tarihce_kontrol(){
  1993. if [ ! -f $TARIHCE_DIZIN/temel-pkvt.tar.lz ];then
  1994. tarihce_olustur "temel"
  1995. fi
  1996. }
  1997. tarihce_liste(){
  1998. tarihce_dkontrol
  1999. ls $TARIHCE_DIZIN/
  2000. }
  2001. tarihce_yap(){
  2002. tarihce_dkontrol
  2003. local t_isim
  2004. if [ "$temel_tarihce" = "evet" ];then
  2005. t_isim="temel"
  2006. else
  2007. t_isim=`date +%m-%d-%y.%H%M%S`
  2008. fi
  2009. tarihce_olustur "$t_isim"
  2010. }
  2011. tarihce_olustur(){
  2012. bsdtar -P -r -f $TARIHCE_DIZIN/"$1"-pkvt.tar $VT
  2013. lzip -9 $TARIHCE_DIZIN/"$1"-pkvt.tar
  2014. }
  2015. tarihce_yukle(){
  2016. tarihce_dkontrol
  2017. local islem_onay cikis
  2018. sil_onay="h"
  2019. if [ -f $TARIHCE_DIZIN/"$1-pkvt.tar.lz" ];then
  2020. bsdtar -p -o -C /tmp -xf $TARIHCE_DIZIN/"$1-pkvt.tar.lz" 2>/dev/null
  2021. ls /tmp$VT/ > hedef.pkvt
  2022. ls $VT/ > simdiki.pkvt
  2023. grep -v -F -x -f hedef.pkvt simdiki.pkvt > sil.liste
  2024. grep -v -F -x -f simdiki.pkvt hedef.pkvt > kur.liste
  2025. #rm hedef.pkvt simdiki.pkvt
  2026. rm -r /tmp/var
  2027. cikis=""
  2028. if [ -s sil.liste ];then
  2029. $_yaz "silinecekler"
  2030. $_yaz "------------"
  2031. cat sil.liste
  2032. fi
  2033. if [ -s kur.liste ];then
  2034. $_yaz "kurulacaklar"
  2035. $_yaz "------------"
  2036. cat kur.liste
  2037. fi
  2038. if [ ! -s sil.liste ] && [ ! -s kur.liste ];then
  2039. $_yaz "sistem zaten hedef durumda!"
  2040. exit 1
  2041. fi
  2042. while true; do
  2043. $_yaz_tm "otomatik geri dönüşüm başlasın mı?";read -p "e veya h-> " eh
  2044. case $eh in
  2045. [Ee]* ) islem_onay="e"; break;;
  2046. [Hh]* ) break;;
  2047. * ) echo "e veya h";;
  2048. esac
  2049. done
  2050. if [ "$islem_onay" = "e" ];then
  2051. paket_sil_oto sil.liste
  2052. mps kurul kur.liste
  2053. mv sil.liste silinenler.liste
  2054. mv kur.liste kurulanlar.liste
  2055. exit 1
  2056. fi
  2057. mv sil.liste sil_iptal.liste
  2058. mv kur.liste kur_iptal.liste
  2059. else
  2060. $_yaz_uyari "ilgili tarihce dosyası bulunamadı!"
  2061. hataloglama "ilgili tarihce dosyası bulunamadı!"
  2062. fi
  2063. [ -f $PWD/hedef.pkvt ] && rm $PWD/hedef.pkvt
  2064. [ -f $PWD/simdiki.pkvt ] && rm $PWD/simdiki.pkvt
  2065. }
  2066. tarihce_sil(){
  2067. tarihce_dkontrol
  2068. if [ -f $TARIHCE_DIZIN/"$1-pkvt.tar.lz" ];then
  2069. rm -f $TARIHCE_DIZIN/"$1-pkvt.tar.lz"
  2070. else
  2071. $_yaz_uyari "ilgili tarihce dosyası bulunamadı!"
  2072. hataloglama "ilgili tarihce dosyası bulunamadı!"
  2073. fi
  2074. }
  2075. sunucu_ayarla(){
  2076. wget -q --spider "$1/paket.vt"
  2077. yenisun="$1"
  2078. if [ $? -eq 0 ]; then
  2079. sed -i.bak 's/^\(sunucu=\).*/\1"xverix\/"/' /etc/mps.conf
  2080. sed -i "s|xverix|$1|" /etc/mps.conf
  2081. mps -sun
  2082. else
  2083. $_yaz_uyari "Tanımsız paket sunucusu!"
  2084. hataloglama "Tanımsız paket sunucusu!"
  2085. fi
  2086. }
  2087. loglama(){
  2088. logdizin_kontrol
  2089. echo "$(date +'%F %T') $1" >> "$kokdizin/$LOGDIZIN/mps.log"
  2090. }
  2091. hataloglama(){
  2092. logdizin_kontrol
  2093. echo "$(date +'%F %T') $1" >> "$kokdizin/$LOGDIZIN/mps-hata.log"
  2094. }
  2095. indir_talimat_paketle(){
  2096. local dosya _ip _talkonum _ek_talimat_link
  2097. _wget="wget --quiet --no-check-certificate"
  2098. if [ ! -z "$1" ];then dosya=$1;else $_yaz_uyari "link parametre eksik";exit 1;fi
  2099. if [ ! -z "$2" ];then _ip=$2;else $_yaz_uyari "ip tipi parametresi eksik";exit 1;fi
  2100. if [ ! -z "$3" ];then _talkonum=$3;else $_yaz_uyari "talimatname konum parametre eksik";exit 1;fi
  2101. # ek-talimatname altında ilgili talimat var mı kontrol edilir
  2102. _ek_talimat_link="${ektalimatname_repo}/raw/master/${dosya}/talimat"
  2103. wget -q --spider ${_ek_talimat_link}
  2104. [ $? -eq 0 ] && dosya=${_ek_talimat_link}
  2105. urlkont='(https?|ftp|file)://[-A-Za-z0-9\+&@#/%?=~_|!:,.;]*[-A-Za-z0-9\+&@#/%=~_|]'
  2106. if [[ $dosya =~ $urlkont ]];then
  2107. gdosya=`mktemp`
  2108. if [[ $_ip =~ "-6" ]]; then
  2109. $_yaz "talimat IPv6: ${dosya} linkinden indirildi."
  2110. $_wget $_ip $dosya -O $gdosya
  2111. else
  2112. $_yaz "talimat IPv4: ${dosya} linkinden indirildi."
  2113. $_wget $_ip $dosya -O $gdosya
  2114. fi
  2115. dosya=$gdosya
  2116. else
  2117. $_yaz_uyari "link geçersiz"
  2118. exit 1
  2119. fi
  2120. if [ ! -f $dosya ];then
  2121. $_yaz_uyari "$dosya talimat dosyasi yok!"
  2122. exit 1
  2123. fi
  2124. local _isim
  2125. _isim=`grep "^name=" $dosya | head -n1 | cut -d'=' -f 2`
  2126. [ -z "${_isim}" ] && _isim=`grep "^isim=" $dosya | head -n1 | cut -d'=' -f 2`
  2127. if [ ! -n "${_isim}" ]; then
  2128. $_yaz_uyari "paket ismi degiskeni bulunamadı!"
  2129. exit 1
  2130. fi
  2131. if [ ! -d $_talkonum/${_isim:0:1}/${_isim} ];then
  2132. mkdir -p $_talkonum/${_isim:0:1}/${_isim}
  2133. cp -f $dosya $_talkonum/${_isim:0:1}/${_isim}/talimat
  2134. talimat_degisken_cevrim $_talkonum/${_isim:0:1}/${_isim}/talimat
  2135. $_yaz "${_isim} talimatı hazırlandı."
  2136. else
  2137. $_yaz_uyari "${_isim} talimatı zaten talimatnamede var!"
  2138. fi
  2139. }
  2140. talimat_degisken_cevrim(){
  2141. _dosya=$1
  2142. if [ -f $_dosya ];then
  2143. sed -i 's/name=/isim=/g' $_dosya
  2144. sed -i 's/$name/$isim/g' $_dosya
  2145. sed -i 's/${name}/${isim}/g' $_dosya
  2146. sed -i 's/version=/surum=/g' $_dosya
  2147. sed -i 's/$version/$surum/g' $_dosya
  2148. sed -i 's/${version}/${surum}/g' $_dosya
  2149. sed -i 's/${version%.*}/${surum%.*}/g' $_dosya
  2150. sed -i 's/release=/devir=/g' $_dosya
  2151. sed -i 's/$release/$devir/g' $_dosya
  2152. sed -i 's/${release}/${devir}/g' $_dosya
  2153. sed -i 's/source=/kaynak=/g' $_dosya
  2154. sed -i 's/build()/derle()/g' $_dosya
  2155. sed -i 's/build ()/derle()/g' $_dosya
  2156. sed -i 's/Description:/Tanım:/g' $_dosya
  2157. sed -i 's/Description=/Tanım:/g' $_dosya
  2158. sed -i 's/Url=/Url:/g' $_dosya
  2159. sed -i 's/description:/Tanım:/g' $_dosya
  2160. sed -i 's/Description :/Tanım:/g' $_dosya
  2161. sed -i 's/Packager:/Paketçi:/g' $_dosya
  2162. sed -i 's/packager:/Paketçi:/g' $_dosya
  2163. sed -i 's/Packagers:/Paketçi:/g' $_dosya
  2164. sed -i 's/Packager :/Paketçi:/g' $_dosya
  2165. sed -i 's/Depends on:/Gerekler:/g' $_dosya
  2166. sed -i 's/Depends:/Gerekler:/g' $_dosya
  2167. sed -i 's/Depends on :/Gerekler:/g' $_dosya
  2168. sed -i '/Maintainer:/d' $_dosya
  2169. sed -i '/Optional:/d' $_dosya
  2170. else
  2171. $_yaz_uyari "ilgili talimat dosyası bulunamadı."
  2172. fi
  2173. }
  2174. talimat_olustur(){
  2175. if [ "$1" = '?' ];then
  2176. $_yaz_tm "kullanım : mps -to paket_ismi"
  2177. else
  2178. local isim
  2179. isim=$1
  2180. mkdir -p $isim
  2181. tee "$isim/talimat" > /dev/null <<EOF
  2182. # Tanım: paket açıklaması
  2183. # Url: paketin ilgili web sayfası
  2184. # Paketçi: paketçi
  2185. # Gerekler:
  2186. # Grup:
  2187. isim=$isim
  2188. surum=1
  2189. devir=1
  2190. kaynak=()
  2191. derle() {
  2192. cd \$isim-\$surum
  2193. ./autogen.sh
  2194. ./configure --prefix=/usr
  2195. make
  2196. make DESTDIR=\$PKG install
  2197. }
  2198. EOF
  2199. $_yaz_tm $isim "talimatı oluşturuldu."
  2200. fi
  2201. }
  2202. git_guncelle() {
  2203. kaynakdizin_kontrol
  2204. gitayar_kontrol
  2205. local _yerel
  2206. #git deponun sunucudan güncellenmesi
  2207. $_yaz_bilgi "$_git_guncelleniyor : $git_sunucu"
  2208. if [ $(sunucu_erisim ${git_repo}) = "aktif" ];then
  2209. if [ ! -d ${git_yereldepo} ];then
  2210. git clone ${git_repo} ${git_yereldepo}
  2211. #rsync -av ${git_yereldepo}/rootfs/* /
  2212. else
  2213. cd ${git_yereldepo}
  2214. git pull >& $LOGDIZIN/mps-git.log
  2215. if grep -q "Already\ up-to-date" $LOGDIZIN/mps-git.log; then
  2216. $_yaz "$_git_guncel"
  2217. else
  2218. #ryaz 32 `cat $LOGDIZIN/mps-git.log`
  2219. $_yaz "$_git_guncellendi"
  2220. fi
  2221. fi
  2222. else
  2223. $_yaz_uyari "${git_repo} erişim olumsuz.Uzaktan güncelleme alınamadı."
  2224. fi
  2225. if [ -d ${git_yereldepo} ];then
  2226. # git depodan yerel güncellemelerin yapılması
  2227. #baslangic betiklerinin guncellenmesi
  2228. #rsync -aviz -q --delete ${git_yereldepo}/rootfs/lib/services/* /lib/services/
  2229. [ -d /lib/services/ ] && cp --remove-destination -rf ${git_yereldepo}/rootfs/lib/services/* /lib/services/
  2230. # talimatname ve betiklerin güncellenmesi
  2231. _yerel=$(dirname $talimatname)
  2232. cd ${_yerel}
  2233. rm -rf $talimatname ${_yerel}/bin ${_yerel}/ayarlar
  2234. cp -rf ${git_yereldepo}/talimatname/ ${_yerel}/
  2235. cp -rf ${git_yereldepo}/bin ${_yerel}/
  2236. cp -rf ${git_yereldepo}/ayarlar ${_yerel}/
  2237. #ikili dosyaların /usr/bin altına kısayol atılması
  2238. for i in ${_yerel}/bin/*; do
  2239. j=`basename $i`
  2240. if [ ! -L /usr/bin/$j ];then
  2241. ln -sf ${_yerel}/bin/$j /usr/bin/$j
  2242. fi
  2243. done
  2244. #kırık linklerin temizlenmesi
  2245. find -L /usr/bin/* -name . -o -type d -prune -o -type l -exec rm {} +
  2246. find -L ${_yerel}/bin/* -name . -o -type d -prune -o -type l -exec rm {} +
  2247. [ -d /root/bin ] && find -L /root/bin/* -name . -o -type d -prune -o -type l -exec rm {} +
  2248. $_yaz "$_yerel_esitlendi"
  2249. else
  2250. $_yaz "$_yerel_esitlendi_olumsuz"
  2251. fi
  2252. }
  2253. git_proje_kur(){
  2254. local proje proj_dizin git_link
  2255. git_link="https://notabug.org/milisarge"
  2256. proje="$1"
  2257. proj_dizin="/opt"
  2258. mkdir -p $proj_dizin
  2259. if [ -d "$proj_dizin/$proje" ];then
  2260. cd $proj_dizin/$proje
  2261. git pull
  2262. if [ -f mops ];then
  2263. . mops
  2264. mops_gun
  2265. fi
  2266. else
  2267. git clone "$git_link/$proje" "$proj_dizin/$proje"
  2268. cd $proj_dizin/$proje
  2269. if [ -f mops ];then
  2270. . mops
  2271. mops_kur
  2272. mops_sil
  2273. mops_gun
  2274. fi
  2275. fi
  2276. }
  2277. op_kur(){
  2278. local mopsyol mops
  2279. mops=$1
  2280. mopsyol="~/mops/$mops"
  2281. # talimatnameye bak
  2282. if [ -d $mopsyol ]; then
  2283. $mopsyol/talimat kur
  2284. # yerelde ara
  2285. elif [ -f $PWD/"$mops" ]; then
  2286. ./"$mops" kur
  2287. else
  2288. $_yaz_uyari "$1 mops talimatı bulunamadı!"
  2289. fi
  2290. }
  2291. op_sil(){
  2292. local mopsyol mops
  2293. mops=$1
  2294. mopsyol="~/mops/$mops"
  2295. # talimatnameye bak
  2296. if [ -d $mopsyol ]; then
  2297. $mopsyol/talimat sil
  2298. # yerelde ara
  2299. elif [ -f $PWD/"$mops" ]; then
  2300. ./"$mops" sil
  2301. else
  2302. $_yaz_uyari "$1 mops talimatı bulunamadı!"
  2303. fi
  2304. }
  2305. servis_kur(){
  2306. cd ${git_yereldepo}/ayarlar/servisler
  2307. if make kur-$1
  2308. then
  2309. $_yaz "$1 servisi kuruldu"
  2310. else
  2311. $_yaz_uyari "$1 servisi kurulum olumsuz!!!"
  2312. hataloglama "$1 servisi kurulum olumsuz!!!"
  2313. fi
  2314. cd -
  2315. }
  2316. servis_sil(){
  2317. cd ${git_yereldepo}/ayarlar/servisler
  2318. if make sil-$1
  2319. then
  2320. $_yaz "$1 servisi silindi"
  2321. else
  2322. $_yaz_uyari "$1 servisi silme olumsuz!!!"
  2323. hataloglama "$1 servisi silme olumsuz!!!"
  2324. fi
  2325. cd -
  2326. }
  2327. servisler_kontrol(){
  2328. servisler=`ls ${git_yereldepo}/ayarlar/servisler/mbd/init.d`
  2329. for ser in $(ls /etc/init.d/) ; do
  2330. if [ ! -f ${git_yereldepo}/ayarlar/servisler/mbd/init.d/$ser ];then
  2331. printf "%12s %s\n" "$ser mbd kaydı bulunamadı!"
  2332. else
  2333. if cmp -s "${git_yereldepo}/ayarlar/servisler/mbd/init.d/$ser" "$ser"
  2334. then
  2335. printf "%12s %s\n" "$ser" "mbd uyumsuz"
  2336. else
  2337. #ryaz 32 "$ser mbd +++++"
  2338. printf "%12s %s\n" "$ser" "mbd +++++"
  2339. fi
  2340. fi
  2341. done
  2342. }
  2343. talimat_bilgi(){
  2344. local _konum _apaket
  2345. _apaket=$1
  2346. [ "$2" ] && cikti_renk_ayarla "$2"
  2347. _konum=$(talimat_bul $_apaket)
  2348. if [ "$_konum" = "-1" ];then
  2349. $_yaz_uyari "$_apaket $_paket_bulunamadi"
  2350. exit 1
  2351. else
  2352. grep "derle()" -B 12 $_konum/talimat |sed '$ d'
  2353. $_yaz "file://$_konum/talimat"
  2354. #$_yaz "https://raw.githubusercontent.com/milisarge/malfs-milis/master/$(echo $_konum | cut -d'/' -f3-6)/talimat"
  2355. $_yaz "${git_sunucu}/${hesap_repo}/raw/master/$(echo $_konum | cut -d'/' -f3-6)/talimat"
  2356. fi
  2357. }
  2358. talimat_yazdir(){
  2359. local _konum _apaket
  2360. _apaket=$1
  2361. _konum=$(talimat_bul $_apaket)
  2362. if [ "$_konum" = "-1" ];then
  2363. $_yaz_uyari "$_apaket $_paket_bulunamadi"
  2364. exit 1
  2365. else
  2366. cat $_konum/talimat
  2367. fi
  2368. }
  2369. sistem_kontrol(){
  2370. paketvt_kontrol
  2371. sunucu_kontrol
  2372. }
  2373. sunucu_erisim(){
  2374. local _sunucu
  2375. [ $1 ] && _sunucu="$1"
  2376. wget --no-check-certificate -q --spider "${_sunucu}"
  2377. if [ $? -eq 0 ]; then
  2378. echo "aktif"
  2379. else
  2380. echo "pasif"
  2381. fi
  2382. }
  2383. sunucu_kontrol(){
  2384. local _sunucular=$(echo ${sunucular} | tr " " "\n")
  2385. for _sunucu in ${_sunucular}; do
  2386. [ $(sunucu_erisim ${_sunucu}/paket.vt) = "aktif" ] && $_yaz "${_sunucu} paket sunucu aktif" \
  2387. || $_yaz_uyari "${_sunucu} sunucu erişim dışı"
  2388. done
  2389. }
  2390. gitayar_kontrol(){
  2391. if [ ! -f /root/.gitconfig ];then
  2392. [ `which git_ssl_iptal` ] && git_ssl_iptal
  2393. [ `which git_otokimlik` ] && git_otokimlik
  2394. fi
  2395. }
  2396. kirik_kontrol_sistem(){
  2397. local onek sonek
  2398. onek="'"
  2399. sonek="'"
  2400. for paket in `ls $VT/`
  2401. do
  2402. $_yaz_bilgi $paket "kontrol ediliyor."
  2403. kirik_kontrol_paket $paket
  2404. $_yaz_bilgi $paket "kontrol edildi."
  2405. done
  2406. }
  2407. kirik_kontrol_paket(){
  2408. local onek sonek
  2409. onek="'"
  2410. sonek="'"
  2411. for kdosya in `kurulum_dosya_listele $1`
  2412. do
  2413. dosya=${kdosya#$onek}
  2414. dosya=${dosya%$sonek}
  2415. #echo "${dosya}"
  2416. if [ -f $dosya ];then
  2417. if [[ $(milis-ldd -d $dosya | grep not\ found) ]] ;then
  2418. echo $kdosya
  2419. fi
  2420. fi
  2421. done
  2422. }
  2423. kurulum_dogrulama(){
  2424. for kuruland in `ls $VT`
  2425. do
  2426. if [ ! -f "$VT/$kuruland/kurulan" ]; then
  2427. $_yaz "$kuruland hasarlı kurulum tesbiti!"
  2428. rm -r $VT/$kuruland
  2429. paket_indir $kuruland
  2430. yerelden_kur "$paketdepo/$kuruland"*.mps.lz
  2431. $_yaz "$kuruland hasarlı kurulum onarıldı."
  2432. fi
  2433. done
  2434. }
  2435. paket_icerik_dogrulama(){
  2436. local dosyayol kontpaketadi tempmpslz pidanayol
  2437. kontpaketadi="$1"
  2438. if [ -f "$paketdepo/$kontpaketadi#"*.mps.lz ];then
  2439. tempmpslz=$(mktemp)
  2440. if [ -d $2 ];then
  2441. pidanayol="$2"
  2442. tar tf "$paketdepo/$kontpaketadi#"*.mps.lz > $tempmpslz
  2443. IFS=''
  2444. while read dosyayol;do
  2445. if [ ! -f $pidanayol$dosyayol ] && [ ! -d $pidanayol$dosyayol ] && [ $dosyayol != ".MTREE" ] && [ $dosyayol != ".META" ]; then
  2446. $_yaz_uyari "$pidanayol$dosyayol hasarlı"
  2447. while true; do
  2448. $_yaz_tm $kontpaketadi" paketi yenilensin mi?";read -p "e veya h-> " eh
  2449. case $eh in
  2450. [Ee]* ) tekrarkur="evet";agdan_kur "$kontpaketadi";break;;
  2451. [Hh]* ) break;;
  2452. * ) echo "e veya h";;
  2453. esac
  2454. done
  2455. fi
  2456. done < $tempmpslz
  2457. else
  2458. $_yaz_uyari "$2 kök dizini bulunamadı!"
  2459. exit 1
  2460. fi
  2461. else
  2462. $_yaz_uyari "$1 paketi bulunamadı!"
  2463. exit 1
  2464. fi
  2465. }
  2466. kurulum_dogrulama_icerik_tum(){
  2467. $_yaz_bilgi "paket veritabanı yedekleniyor"
  2468. tarihce_yap
  2469. for kurulanpak in `ls $VT`
  2470. do
  2471. if [ -f "$VT/$kurulanpak/kurulan" ]; then
  2472. kurulum_dogrulama_icerik $kurulanpak
  2473. $_yaz "$kurulanpak kurulum icerik onarıldı."
  2474. fi
  2475. done
  2476. }
  2477. chr_yordam() {
  2478. [ "$1" -lt 256 ] || return 1
  2479. printf "\\$(printf '%03o' "$1")"
  2480. }
  2481. ord_yordam() {
  2482. LC_CTYPE=C printf '%d' "'$1"
  2483. }
  2484. kurulum_dogrulama_icerik(){
  2485. paketadi="$1"
  2486. onar="hayir"
  2487. #echo $VT
  2488. #tarihce_yap
  2489. $_yaz_uyari "$paketadi içeriği kontrol ediliyor."
  2490. if [ -f "$VT/$paketadi/kurulan" ]; then
  2491. ilksatir=`head -n 1 $VT/$paketadi/kurulan`
  2492. if [[ `echo ${ilksatir}` =~ ^‘ ]] ; then
  2493. $_yaz "temel sistem paket kurulan hatası düzeltildi!"
  2494. sed -i 's/‘/'\''\//;s/’/'\''/' $VT/$paketadi/kurulan
  2495. fi
  2496. #for dosyayol in $(cat $VT/$paketadi/kurulan);do
  2497. while read dosyayol; do
  2498. #for dosyayol in $(<$VT/$paketadi/kurulan);do
  2499. dosyayol=$(echo $dosyayol | sed 's/^.\(.*\).$/\1/')
  2500. netdosyayol="${dosyayol:1:${#dosyayol}-1}"
  2501. if [ ! -f $dosyayol ] && [ ! -d $dosyayol ] ; then
  2502. $_yaz_uyari "$dosyayol hasarlı"
  2503. onar="evet"
  2504. fi
  2505. done < $VT/$paketadi/kurulan
  2506. if [ $onar = "evet" ];then
  2507. $_yaz_tm "$paketadi hasarlı dosya barındırıyor,düzeltilsin mi?";read -p "e veya h-> " eh
  2508. case $eh in
  2509. [Ee]* ) tekrarkur="evet";agdan_kur "$paketadi";;
  2510. [Hh]* ) $_yaz_uyari "$paketadi pas geçildi.";;
  2511. * ) echo "e veya h";;
  2512. esac
  2513. fi
  2514. $_yaz "$paketadi kurulum doğrulama tamamlandı."
  2515. elif [ -d "$VT/$paketadi" ]; then
  2516. cp -rf $VT $VT.yedek
  2517. $_yaz_uyari "$paketadi hasarlı kurulum tesbiti!"
  2518. #onarma
  2519. rm -r $VT/$paketadi
  2520. paket_indir $paketadi
  2521. yerelden_kur "$paketdepo/$paketadi#"*.mps.lz
  2522. $_yaz "$paketadi hasarlı kurulum onarıldı."
  2523. else
  2524. $_yaz_uyari "$paketadi $_paket_kurulu_degil"
  2525. fi
  2526. }
  2527. tamir_temel_kurulan(){
  2528. if [ ! -d $VT ] ; then
  2529. $_yaz_uyari "paket kurulum vt bulunamadı!"
  2530. exit 1
  2531. fi
  2532. for paketadi in `ls $VT`
  2533. do
  2534. sed -i 's/‘/'\''\//;s/’/'\''/' $VT/$paketadi/kurulan
  2535. done
  2536. }
  2537. depo_paketler_liste(){
  2538. ls $paketdepo*.mps.lz
  2539. }
  2540. depo_paketler_sil(){
  2541. while true; do
  2542. pktsay="0"
  2543. [[ $(ls $paketdepo*.mps.lz) ]] && pktsay=$(ls $paketdepo/*.mps.lz | wc -l)
  2544. $_yaz_tm "$paketdepo altındaki $pktsay paket silinecek?";read -p "e veya h-> " eh
  2545. case $eh in
  2546. [Ee]* ) rm $paketdepo/*.mps.lz; $_yaz "$paketdepo paketler temizlendi."; break;;
  2547. [Hh]* ) break;;
  2548. * ) echo "e veya h";;
  2549. esac
  2550. done
  2551. }
  2552. etkilenenler_sil(){
  2553. while true; do
  2554. $_yaz_tm "etkilenen önbellek silinecek?";read -p "e veya h-> " eh
  2555. case $eh in
  2556. [Ee]* ) rm -rf /var/lib/pkg/etkilenen; $_yaz "etkilenen önbellek temizlendi."; break;;
  2557. [Hh]* ) break;;
  2558. * ) echo "e veya h";;
  2559. esac
  2560. done
  2561. }
  2562. kurulum_dosya_listele(){
  2563. cat "$VT/$1/kurulan"
  2564. }
  2565. # bir dosyanın kurulmuş hangi pakette olduğunu bulur.
  2566. kurulan_dosya_bul(){
  2567. grep -rli "$1" "$VT/" | cut -d "/" -f6
  2568. }
  2569. paketvt_kontrol(){
  2570. mkdir -p /depo/paketler
  2571. if [ ! -f /depo/paketler/paket.vt ];then
  2572. touch /depo/paketler/paket.vt
  2573. fi
  2574. }
  2575. pvt_olustur(){
  2576. if [ ! -f paket.vt ];then
  2577. touch paket.vt
  2578. fi
  2579. if [ -f "paket.vt" ];then
  2580. mv "paket.vt" "paket.vt.eski"
  2581. fi
  2582. $_yaz "paket.vt oluşturuluyor...."
  2583. for paket in `ls *.mps.lz`
  2584. do
  2585. paketad="`echo $paket|cut -d "#" -f1`"
  2586. shaek=`sha1sum $paket`
  2587. echo $paketad $shaek >> paket.vt
  2588. done
  2589. $_yaz "paket.vt oluşturuldu."
  2590. }
  2591. paketvt_guncelle(){
  2592. local _bakim _sunucular _bakim _sira
  2593. _sunucular=$(echo ${sunucular} | tr " " "\n")
  2594. _bakim="yok"
  2595. _sira=0
  2596. for pktsunucu in ${_sunucular}; do
  2597. pkvt=""
  2598. let _sira=_sira+1
  2599. if [ ${_sira} = 1 ];then
  2600. pktvt="paket.vt"
  2601. else
  2602. pktvt="paket${_sira}.vt"
  2603. fi
  2604. # sunucu bakım kontrolü
  2605. [ $(sunucu_erisim "$pktsunucu""paket.vt.yeni") = "aktif" ] && _bakim="var"
  2606. if [ $_bakim = "yok" ];then
  2607. if [ $(sunucu_erisim "$pktsunucu""paket.vt") = "aktif" ]; then
  2608. $_yaz $pktsunucu
  2609. $_yaz "$_paketvt_guncelleniyor" "$paketdepo""$pktvt"
  2610. if [ -f "$paketdepo""$pktvt" ];then
  2611. mv "$paketdepo""$pktvt" "$paketdepo""$pktvt.eski"
  2612. fi
  2613. wget --no-check-certificate -q ${wget_progress} -P "$paketdepo" "$pktsunucu""paket.vt" -O "$paketdepo""$pktvt"
  2614. #rm /tmp/paket.vt*
  2615. else
  2616. $_yaz_uyari "$pktsunucu paket veritabanı erişim olumsuz."
  2617. hataloglama "paket veritabanı güncelleme olumsuz."
  2618. fi
  2619. else
  2620. $_yaz_bilgi "$pktsunucu paket veritabanı bakımı yapılıyor."
  2621. $_yaz_bilgi "5dk içinde tekrar deneyiniz."
  2622. fi
  2623. done
  2624. }
  2625. yuzdelik_filtre ()
  2626. {
  2627. local flag=false c count cr=$'\r' nl=$'\n'
  2628. while IFS='' read -d '' -rn 1 c
  2629. do
  2630. if $flag
  2631. then
  2632. printf '%c' "$c"
  2633. else
  2634. if [[ $c != $cr && $c != $nl ]]
  2635. then
  2636. count=0
  2637. else
  2638. ((count++))
  2639. if ((count > 1))
  2640. then
  2641. flag=true
  2642. fi
  2643. fi
  2644. fi
  2645. done
  2646. }
  2647. listeleri_temizle(){
  2648. [ -f gerek.liste ] && rm -rf gerek.liste
  2649. [ -f gerek.konum.liste ] && rm -rf gerek.konum.liste
  2650. }
  2651. paket_indir(){
  2652. if [ -f "$paketdepo""paket.vt" ];then
  2653. local _ipaket pkt
  2654. [ $1 ] && _ipaket="$1" || hata_olustu "_paket_adi_gerekli"
  2655. [ "$2" ] && cikti_renk_ayarla "$2"
  2656. local _sunucular _sira
  2657. _sunucular=$(echo ${sunucular} | tr " " "\n")
  2658. _sira=0
  2659. for pktsunucu in ${_sunucular}; do
  2660. pkvt=""
  2661. let _sira=_sira+1
  2662. if [ ${_sira} = 1 ];then
  2663. pktvt="paket.vt"
  2664. else
  2665. pktvt="paket${_sira}.vt"
  2666. fi
  2667. if [ -f $paketdepo$pktvt ];then
  2668. pkt=`cat "$paketdepo$pktvt" | grep "^${_ipaket} " | cut -d' ' -f3`
  2669. #ryaz 32 "${_ipaket} paketi $pktsunucu altında aranıyor"
  2670. if [ $pkt ];then
  2671. #ryaz 32 "${_ipaket} paketi $pktsunucu altında bulundu"
  2672. ekontdeg=`cat "$paketdepo$pktvt" | grep "^${_ipaket} " | cut -d' ' -f2`
  2673. cpaket="${pkt/'#'/'%23'}"
  2674. #paketin sunucuda varlık kontrolu
  2675. wget -q --spider "$pktsunucu$cpaket"
  2676. if [ $? -eq 0 ]; then
  2677. $_yaz "${_ipaket} $_indiriliyor"
  2678. if [ "$cikti" == "--normal" ];then
  2679. wget --progress=dot:force -nc --no-check-certificate -P "$paketdepo" "$pktsunucu$cpaket" 2>&1 | tee /tmp/${_ipaket}_indirme.log | sed -u -n 's/[0-9]*%/&/p'
  2680. else
  2681. wget --no-check-certificate -nc -q ${wget_progress} -P "$paketdepo" "$pktsunucu$cpaket" #2>&1 | tee /tmp/${_ipaket}_indirme.log
  2682. fi
  2683. if [[ "$?" != 0 ]]; then
  2684. $_yaz_uyari "indirme hatalı"
  2685. hataloglama "indirme hatalı"
  2686. else
  2687. mkontdeg=`sha1sum "$paketdepo$pkt" | cut -d' ' -f1`
  2688. if [ "$ekontdeg" != "$mkontdeg" ];then
  2689. $_yaz_uyari "$_shasum_uyumsuzluk,paket tekrar indiriliyor."
  2690. hataloglama "sha1sum uyusmaslik tespit edildi,paket tekrar indiriliyor."
  2691. rm -f "$paketdepo$pkt"
  2692. paket_indir "${_ipaket}" "$cikti"
  2693. #else
  2694. #$_yaz "$_zaten ${_ipaket} $_paket_onbellek_depoda_var"
  2695. fi
  2696. fi
  2697. else
  2698. $_yaz_uyari "${_ipaket} paketi bulunamadı $pktsunucu dan silinmiş olmalı!"
  2699. fi
  2700. else
  2701. $_yaz_uyari "$pktsunucu ${_ipaket} paketi bulunmuyor!"
  2702. fi
  2703. else
  2704. $_yaz_uyari "$paketdepo altında $pktvt dosyanız yok.Güncelleme yapınız!"
  2705. fi
  2706. done
  2707. else
  2708. $_yaz_uyari "$paketdepo altında paket.vt dosyanız yok.Güncelleme yapınız!"
  2709. fi
  2710. }
  2711. yerelden_kur(){
  2712. local silme _ypaket
  2713. [ $1 ] && _ypaket=$1 || hata_olustu "_yerel_paket_yok"
  2714. if [ $2 ];then
  2715. if [ "$2" == "-kok" ] && [ -d "$3" ]; then
  2716. kokdizin="$3"
  2717. tekrarkur="evet"
  2718. fi
  2719. fi
  2720. pkontrol=`basename ${_ypaket} | grep -w "mps.lz"`
  2721. if [ ! -z "$pkontrol" -a "$pkontrol" != "" ]; then
  2722. paketad=`echo "${_ypaket}" | cut -d'#' -f1`
  2723. paketad=`basename $paketad`
  2724. kkont=`kurulu_kontrol "$paketad"`
  2725. if [ "$kkont" = "degil" ];then
  2726. icerik_ekle "${_ypaket}"
  2727. elif [ "$kkont" = "kurulu" ];then
  2728. if [ "$tekrarkur" = "hayir" ];then
  2729. while true; do
  2730. $_yaz_uyari "${_ypaket} paketi zaten kurulu silinip kurulsun mu?"
  2731. read -p "e veya h -> " eh
  2732. case $eh in
  2733. [Ee]* ) silme="e"; break;;
  2734. [Hh]* ) break;;
  2735. * ) echo "e veya h";;
  2736. esac
  2737. done
  2738. fi
  2739. if [ "$silme" = "e" ];then
  2740. $_yaz_bilgi "silinecekelerin kontrolu için"
  2741. paket_sil "$paketad"
  2742. icerik_ekle "${_ypaket}"
  2743. fi
  2744. else
  2745. icerik_ekle "${_ypaket}"
  2746. #while true; do
  2747. #ryaz 31 "${_ypaket} paketi talimatname dışı.Yine de kurulsun mu? (kokdizin=$kokdizin) "
  2748. #read -p "e veya h -> " eh
  2749. #case $eh in
  2750. # [Ee]* ) icerik_ekle "${_ypaket}"; break;;
  2751. # [Hh]* ) break;;
  2752. # * ) echo "e veya h";;
  2753. #esac
  2754. #done
  2755. fi
  2756. else
  2757. $_yaz_uyari "yerelde mps paketi bulunamadı."
  2758. fi
  2759. }
  2760. agdan_kur(){
  2761. local kontroldeg _cikti _yaz _yaz_tm _yaz_uyari
  2762. _cikti="--normal"
  2763. [ $2 ] && _cikti="$2"
  2764. cikti_renk_ayarla $_cikti
  2765. kkont=$(kurulu_kontrol "$1")
  2766. if [ "$kkont" = "degil" ] || [ "$tekrarkur" = "evet" ];then
  2767. paket_indir "$1" "$2"
  2768. if [ $(find $paketdepo -name $1#* | head -1) ];then
  2769. if [ -f $(ls -1t "$paketdepo$1#"* | head -1) ];then
  2770. if [ "$kurulum_onay" = "evet" ];then
  2771. if [ "$tekrarkur" = "evet" ];then
  2772. paket_sil "$1" "evet"
  2773. fi
  2774. #depo/paketler altında birden fazla sürüm kontrolü yapılır,güncel olan seçilir.
  2775. surumler=$(ls "$paketdepo$1#"* | wc -l)
  2776. if [ $surumler = 1 ];then
  2777. icerik_ekle $(ls "$paketdepo$1#"*) $cikti
  2778. elif [ $surumler -gt 1 ];then
  2779. $_yaz_uyari "$1 paketinin birden fazla sürümü var!"
  2780. kurulacak_guncel_paket=$(ls -1t "$paketdepo$1#"* | head -1)
  2781. $_yaz "$kurulacak_guncel_paket sürümü kuruluyor"
  2782. icerik_ekle $kurulacak_guncel_paket $cikti
  2783. fi
  2784. fi
  2785. else
  2786. $_yaz_uyari "$1 indirme hatası"
  2787. fi
  2788. fi
  2789. elif [ "$kkont" = "kurulu" ];then
  2790. #ryaz 32 "$1 paketi zaten kurulu!"
  2791. printf "."
  2792. else
  2793. $_yaz_uyari "$1 tanımsız paket veya tekrar kurulum iptali var!"
  2794. fi
  2795. }
  2796. ayarlar() {
  2797. args="${@:2}"
  2798. while [ "$1" ]; do
  2799. case $1 in
  2800. ### Milis_Paket_Sistemi_Yardim
  2801. ### --------------------------
  2802. ### mps -i paketismi = sadece paketi indirir,paket kurulmaz.
  2803. -i|--indir)
  2804. kurulum_onay="olumsuz"
  2805. paket_indir $args
  2806. exit 0 ;;
  2807. ### mps -ik paketismi = ilgili paketi indirir ve kurar.
  2808. -ik|--inku)
  2809. if [ "$3" == "-kok" ] && [ -d "$4" ]; then
  2810. kokdizin="$4"
  2811. fi
  2812. agdan_kur "$2" ;;
  2813. ### mps -ikz|yekur paketismi = ilgili indirip tekrardan kurar,kurulu olmasına bakılmaz.
  2814. -ikz|yekur)
  2815. tekrarkur="evet"
  2816. agdan_kur "$2"
  2817. exit 0 ;;
  2818. ### mps -k paketismi..mps.lz = yerel dizindeki paketi kurar.
  2819. -k)
  2820. yerelden_kur $args
  2821. exit 0 ;;
  2822. ### mps sil|-s paketismi = ilgili paketi onaylı kaldırır.
  2823. -s|sil)
  2824. paket_sil $args
  2825. exit 0 ;;
  2826. ### mps zorsil|-sz paketismi = ilgili paketi onaysız kaldırır.
  2827. -sz|zorsil)
  2828. paket_sil "$2" "evet" "$3"
  2829. exit 0 ;;
  2830. ### mps gsil paketismi = ilgili paketi güvenli(ters bağımlılıklarına da bakarak) kaldırır.
  2831. gsil)
  2832. paket_sil "$2" "hayir" "evet"
  2833. exit 0 ;;
  2834. ### mps -S paketismi = ilgili paketi altbağımlılıklarını da sorarak kaldırır.
  2835. ### mps -S paketismi = ve oto eklenirse ilgili paketi altbağımlılıklarını da sormadan sırayla kaldırır.
  2836. -S)
  2837. paket_sil_gereklerle $args
  2838. exit 0 ;;
  2839. ### mps ara aranan = paket isimleri ve açıklamalarında anahtar kelime arar.
  2840. -pa|ara)
  2841. paket_ara "$2"
  2842. exit 0 ;;
  2843. ### mps bul aranan = talimat dosyaları içinde anahtar kelimeyi arar.
  2844. bul)
  2845. kelime_bul "$2"
  2846. exit 0 ;;
  2847. ### mps -d paketisimi = sadece paketi bağımlıksız derler.Genelde bağımlılığı olmayan paketler için kullanılır.
  2848. -d|--pkde)
  2849. zorla_derle="yok"
  2850. kurulum_onay="olumsuz"
  2851. paket_derle "$2"
  2852. exit 0 ;;
  2853. ### mps -zd paketismi = Pake kurulu olsa bile derleme yapılır.Bağımlıksız derleme için kullanılır.
  2854. -zd|--pkzde)
  2855. zorla_derle="evet"
  2856. kurulum_onay="olumsuz"
  2857. paket_derle "$2"
  2858. exit 0 ;;
  2859. ### mps odkp paketismi = bir paketi bağımlılık zinciri çıkarıp gereklileri önce kurar gerekli olanları derler,paketler ve kurar.
  2860. odkp)
  2861. if [ -d "$talimatname/temel/$2" ] ; then
  2862. $_yaz_uyari "temel paket için odkp kullanılamaz!"
  2863. exit 1
  2864. fi
  2865. oto_derle_kur_paketle "$2"
  2866. exit 0 ;;
  2867. ### mps god paketismi = mps guncelle && mps odkp paketismi.
  2868. god)
  2869. git_guncelle
  2870. oto_derle_kur_paketle "$2"
  2871. exit 0 ;;
  2872. -dk|--pkdk)
  2873. paket_derle "$2" ;;
  2874. ### mps -derlist liste = verilen liste dosyasındaki paketleri derler.Alt alta yazılı olmalıdır.
  2875. -derlist)
  2876. paket_derle_liste "$2"
  2877. exit 0;;
  2878. ### mps derle paketismi = paketismi için bağımlılık zinciri çıkarıp gerekli tüm paketleri derler,paketler ve kurar.
  2879. derle)
  2880. paket_derle_kur "$2"
  2881. exit 0 ;;
  2882. -ok|--pkok)
  2883. paket_kur_oto "$2" ;;
  2884. -okz)
  2885. paket_kur_oto_zorla "$2" ;;
  2886. -okl|--pkokl)
  2887. paket_kur_liste "$2" ;;
  2888. -oklz)
  2889. paket_kur_liste_zorla "$2" ;;
  2890. ### mps -kh . = mevcut dizindeki mps.lz uzantılı paketleri onaysız kurar.
  2891. -kh)
  2892. local templist
  2893. templist=`mktemp`
  2894. ls *.mps.lz > $templist
  2895. paket_kur_oto_zorla $templist
  2896. exit 0 ;;
  2897. -ko|--pkko)
  2898. paket_kur_oto2 "$2" ;;
  2899. -kuruld)
  2900. paket_inkur_liste_direk "$2" ;;
  2901. ### mps kurul liste = verilen liste dosyasındaki paketleri kurar.Alt alta yazılı olmalıdır.
  2902. kurul)
  2903. if [ -f $PWD/mps-liste ]; then
  2904. paket_inkur_liste mps-liste
  2905. else
  2906. paket_inkur_liste "$2"
  2907. fi ;;
  2908. -kur)
  2909. paket_inkur_oto "$2" ;;
  2910. ### mps gkur paketismi = git-paketvt günceller ve yerelde mps.lz varsa yereldekini yoksa sunucudan paketi indirip kurar.
  2911. gkur)
  2912. git_guncelle && paketvt_guncelle && paket_inkur_oto "$2"
  2913. exit 0 ;;
  2914. ### mps kur paketismi = yerelde mps.lz varsa yereldekini yoksa sunucudan paketi indirip kurar.
  2915. kur)
  2916. if [[ "$2" == *"mps.lz"* ]]; then
  2917. if [ "$3" == "-kok" ] && [ -d "$4" ]; then
  2918. kokdizin="$4"
  2919. tekrarkur="evet"
  2920. fi
  2921. yerelden_kur "$2" "$3"
  2922. else
  2923. paket_inkur_oto "$2" "$3"
  2924. fi
  2925. exit 0 ;;
  2926. ### mps kaynak paketismi = ilgili paketin kaynak kodunu indirir.
  2927. kaynak)
  2928. if [ ! "$2" ]; then
  2929. $_yaz_uyari "paket ismi eksik"
  2930. exit 1
  2931. fi
  2932. kaynak_kod_indir "$2"
  2933. exit 0 ;;
  2934. # özel git projesi kurmak için
  2935. gitkur)
  2936. git_proje_kur "$2" ;;
  2937. # otomatik proje sistemi
  2938. # özel git projesi kurmak için
  2939. opk)
  2940. op_kur "$2" ;;
  2941. # özel git projesi silmek için
  2942. ops)
  2943. op_sil "$2" ;;
  2944. ### mps serkur paketismi = ilgili paketin servisini kurar
  2945. serkur)
  2946. servis_kur "$2"
  2947. exit 0 ;;
  2948. ### mps sersil paketismi = ilgili paketin servisini siler
  2949. sersil)
  2950. servis_sil "$2"
  2951. exit 0 ;;
  2952. ### mps serkon paketismi = servislerin değişmemezlik kontrolünü yapar.
  2953. serkon)
  2954. servisler_kontrol
  2955. exit 0 ;;
  2956. ### mps kurkos paketismi = ilgili paketin kurulumdan sonraki çalışması gereken betiğini çalıştırır.
  2957. kurkos)
  2958. local pkt
  2959. pkt=$(talimat_bul $2)
  2960. if [ -f $pkt/$2.kur-kos ];then
  2961. bash $pkt/$2.kur-kos
  2962. exit 0
  2963. else
  2964. $_yaz_uyari "$2 kur-kos yok!"
  2965. hataloglama "$2 kur-kos yok!"
  2966. exit 1
  2967. fi;;
  2968. ### mps koskur paketismi = ilgili paketin kurulumdan önceki çalışması gereken betiğini çalıştırır.
  2969. koskur)
  2970. local pkt
  2971. pkt=$(talimat_bul $2)
  2972. if [ -f $pkt/$2.kos-kur ];then
  2973. bash $pkt/$2.kos-kur
  2974. exit 0
  2975. else
  2976. $_yaz_uyari "$2 kos-kur yok!"
  2977. hataloglama "$2 kos-kur yok!"
  2978. exit 1
  2979. fi ;;
  2980. ### mps silkos paketismi = ilgili paketin silindikten sonraki çalışması gereken betiğini çalıştırır.
  2981. silkos)
  2982. local pkt
  2983. pkt=$(talimat_bul $2)
  2984. if [ -f $pkt/$2.sil-kos ];then
  2985. bash $pkt/$2.sil-kos
  2986. exit 0
  2987. else
  2988. $_yaz_uyari "$2 sil-kos yok!"
  2989. hataloglama "$2 sil-kos yok!"
  2990. exit 1
  2991. fi ;;
  2992. ### mps kossil paketismi = ilgili paketin silindikten önceki çalışması gereken betiğini çalıştırır.
  2993. kossil)
  2994. local pkt
  2995. pkt=$(talimat_bul $2)
  2996. if [ -f $pkt/$2.kos-sil ];then
  2997. bash $pkt/$2.kos-sil
  2998. exit 0
  2999. else
  3000. $_yaz_uyari "$2 kos-sil yok!"
  3001. hataloglama "$2 kos-sil yok!"
  3002. exit 1
  3003. fi ;;
  3004. ### mps -kdl paketismi = ilgili paketin sistemdeki kurulmuş olması gereken dosyalarını gösterir.
  3005. -kdl)
  3006. if [ ! "$2" ]; then
  3007. $_yaz_uyari "paket ismi eksik"
  3008. hataloglama "(-kdl) paket ismi eksik"
  3009. exit 1
  3010. fi
  3011. kurulu_kontrol_test "$2" "$3"
  3012. kurulum_dosya_listele "$2" "$3"
  3013. exit 0 ;;
  3014. ### mps -kkp paketismi = ilgili paketin çalışması için eksik olan dosyaları tespit eder.
  3015. -kkp)
  3016. if [ ! "$2" ]; then
  3017. $_yaz_uyari "paket ismi eksik"
  3018. hataloglama "(-kkp) paket ismi eksik"
  3019. exit 1
  3020. fi
  3021. kirik_kontrol_paket "$2"
  3022. exit 0 ;;
  3023. ### mps kirma paketismi = ilgili paketin sistemde kırdığı paketler tespit edilir.
  3024. kirma)
  3025. if [ ! "$2" ]; then
  3026. $_yaz_uyari "paket ismi eksik"
  3027. hataloglama "(kirma) paket ismi eksik"
  3028. exit 1
  3029. fi
  3030. kirik_ters_bagimli_bilgi "$2"
  3031. exit 0 ;;
  3032. ### mps -kks . = sistemde kurulu tüm paketlerin kırık kontrolünü yapar.Eksik dosyaları tespit eder.
  3033. -kks)
  3034. revdep-rebuild
  3035. #kirik_kontrol_sistem
  3036. exit 0 ;;
  3037. ### mps -sdk paketismi = bir paketin güncel sürüm numarasını denetler.
  3038. -sdk)
  3039. if [ ! "$2" ]; then
  3040. $_yaz_uyari "paket ismi eksik"
  3041. exit 1
  3042. fi
  3043. surum_devir_kontrol "$2" "$3"
  3044. exit 0 ;;
  3045. ### mps -dk paketismi = bir paketin güncel devir numarasını denetler.
  3046. -devk)
  3047. if [ ! "$2" ]; then
  3048. $_yaz_uyari "paket ismi eksik"
  3049. exit 1
  3050. fi
  3051. devir_kontrol_durum "$2"
  3052. exit 0 ;;
  3053. -pak|--paketle)
  3054. if [ ! "$2" ]; then
  3055. $_yaz_uyari "paketlenecek dizin ismi eksik"
  3056. hataloglama "paketlenecek dizin ismi eksik"
  3057. exit 1
  3058. fi
  3059. yeniden_paketle "$2"
  3060. exit 0 ;;
  3061. -psk|--paksiskur)
  3062. if [ ! "$2" ]; then
  3063. $_yaz_uyari "paket liste yok"
  3064. hataloglama "paket liste yok"
  3065. exit 1
  3066. fi
  3067. if [ ! "$3" ]; then
  3068. $_yaz_uyari "hedef dizin yok"
  3069. hataloglama "hedef dizin yok"
  3070. exit 1
  3071. fi
  3072. sistem_kur "$2" "$3"
  3073. exit 0 ;;
  3074. ## mps -po . = mps paketlerinin olduğu dizinde paket.vt oluşturur.
  3075. -po)
  3076. pvt_olustur
  3077. exit 0 ;;
  3078. ## mps sildos dosya = ilgili dosyadaki altalta sıralı paketleri onaysız siler.
  3079. sildos)
  3080. if [ ! "$2" ]; then
  3081. $_yaz_uyari "silme listesi yok"
  3082. hataloglama "silme listesi yok"
  3083. exit 1
  3084. fi
  3085. paket_sil_oto "$2"
  3086. exit 0 ;;
  3087. ### mps gitsurum . = milis git deposunun güncel git numarasını verir.
  3088. gitsurum)
  3089. cat ${git_yereldepo}/.git/refs/heads/master
  3090. exit 0 ;;
  3091. ### mps liste . = sistemde kurulu olan paket listesini verir.
  3092. -kl|liste)
  3093. ls ${kokdizin}${VT}
  3094. exit 0 ;;
  3095. ### mps dliste . = sistemde kurulu olan ama talimatnamede yer almayan paket listesini verir.
  3096. -dkl|dliste)
  3097. ls ${kokdizin}${VT} | sort > /tmp/mps_krl_pkt.txt
  3098. paket_liste | sort > /tmp/mps_tum_pkt.txt
  3099. comm -23 "/tmp/mps_krl_pkt.txt" "/tmp/mps_tum_pkt.txt"
  3100. rm -rf /tmp/mps_krl_pkt.txt
  3101. rm -rf /tmp/mps_tum_pkt.txt
  3102. exit 0 ;;
  3103. ### mps paketler grup_ismi = paket deposundaki paket listesini verir.(grup_ismi verilmezse tüm paketler)
  3104. -ptl|paketler)
  3105. paket_liste "$2" "$3"
  3106. exit 0 ;;
  3107. ### mps gruplar . = paket deposundaki paket grup listesini verir.
  3108. -pgl|gruplar)
  3109. paket_grup_liste "$2"
  3110. exit 0 ;;
  3111. ### mps -dly paketismi = ilgili paketin genel ve tüm bağımlılık listesini verir,oluşturur.
  3112. -dly|dliste)
  3113. derleme_listyap $args
  3114. exit 0 ;;
  3115. ### mps -ykp paketismi = ilgili paketin kurulmak istenirse,kurulacak yeni paketleri listeler.
  3116. -ykp)
  3117. #yeni_kurulacak_paketler "$2"
  3118. derleme_listyap "$2" "--kurulu_atla"
  3119. listeleri_temizle
  3120. exit 0 ;;
  3121. #sunucu bilgisi alma
  3122. -sun2|sunucu)
  3123. $_yaz $sunucu ;;
  3124. ### mps sunucular . = paket sunucularını verir.
  3125. -sun|sunucular)
  3126. #ryaz 32 ${sunucular} ;;
  3127. echo ${sunucular} | tr " " "\n"
  3128. exit 0 ;;
  3129. sun)
  3130. if [ ! "$2" ]; then
  3131. $_yaz_uyari "sunucu bilgi eksik"
  3132. hataloglama "sunucu bilgi eksik"
  3133. exit 1
  3134. fi
  3135. sunucu_ayarla "$2" ;;
  3136. ### mps -bb paketismi = ilgili paketin gereklerinin durumunu listeler.
  3137. -bb|bagbil)
  3138. bagimli_bilgi "$2" | column -t
  3139. exit 0;;
  3140. -bbdog|bdogrula)
  3141. bagimli_bilgi "$2" "dogrula";;
  3142. -bbd)
  3143. bagimli_bilgi_dosyala $args
  3144. exit 0 ;;
  3145. ### mps -tb talimatismi = ilgili talimata gerek duyan(ters-gerekler) talimatları listeler.
  3146. -tb|tersbag)
  3147. ters_bagimli_bilgi "$2"
  3148. exit 0;;
  3149. -tbb)
  3150. ters_bagimli_bilgi "$2" "bilgi" | column -t
  3151. exit 0;;
  3152. -tbk)
  3153. ters_bagimli_kontrol "$2" ;;
  3154. ### mps pka paketismi = ilgili paketin depo-gitdepo uyumluluğunu kontrol eder.
  3155. pka)
  3156. paket_analiz "$2"
  3157. exit 0;;
  3158. ### mps pda paketdepo = paketlerin olduğu dizindeki paketlerin depo-gitdepo uyumluluğunu kontrol eder.
  3159. pda)
  3160. paketdepo_analiz "$2"
  3161. exit 0 ;;
  3162. ### mps tbilgi paketismi = ilgili paketin talimat bilgilerini verir.
  3163. tbilgi)
  3164. talimat_bilgi $args
  3165. exit 0 ;;
  3166. ### mps talimat paketismi = ilgili paketin talimatını yazdırır.
  3167. talimat)
  3168. talimat_yazdir "$2"
  3169. exit 0 ;;
  3170. ### mps -b paketismi = ilgili paketin kurulum bilgilerini verir.
  3171. -b)
  3172. if [ $2 ];then
  3173. touch "/tmp/mps_paket_bilgi_$2"
  3174. paket_bilgi "$2" "$3" | tee "/tmp/mps_paket_bilgi_$2"
  3175. if [ $3 ];then
  3176. [ $3 == "--html" ] && paket_bilgi_html "/tmp/mps_paket_bilgi_$2"
  3177. fi
  3178. else
  3179. $_yaz_uyari "paket ismi eksik"
  3180. exit 1
  3181. fi
  3182. exit 0 ;;
  3183. bil)
  3184. if [ $2 ];then
  3185. if [ $3 ];then
  3186. [ $2 == "surum" ] && paket_bilgi "$3" "--normal" | sed -n 6p | cut -d':' -f2 | sed 's/^ *//;s/ *$//'
  3187. [ $2 == "devir" ] && paket_bilgi "$3" "--normal" | sed -n 7p | cut -d':' -f2 | sed 's/^ *//;s/ *$//'
  3188. else
  3189. $_yaz_uyari "paket ismi eksik"
  3190. exit 1
  3191. fi
  3192. else
  3193. $_yaz_uyari "islev ismi eksik"
  3194. exit 1
  3195. fi
  3196. exit 0 ;;
  3197. phtml)
  3198. paketler_depo_html
  3199. exit 0 ;;
  3200. ### mps bilgi paketismi = ilgili paketin talimat ve kurulum bilgilerini verir.
  3201. bilgi)
  3202. paket_bilgi "$2"
  3203. talimat_bilgi "$2"
  3204. exit 0 ;;
  3205. ### mps -to talimat_ismi = ilgili talimat ismine göre talimat şablonu oluşturur.
  3206. -to)
  3207. if [ ! "$2" ]; then
  3208. $_yaz_uyari "talimat ismi eksik"
  3209. hataloglama "talimat ismi eksik"
  3210. exit 1
  3211. fi
  3212. talimat_olustur "$2"
  3213. exit 0 ;;
  3214. ### mps log yyyy-aa-gg olay = mps.log verisi çekmek için (ör: mps log 2017-01-01 silindi)
  3215. log)
  3216. local logyardim
  3217. logyardim="mps log zaman durum (ör: mps log 2017-01-01 silindi)"
  3218. if [ ! "$2" ]; then
  3219. $_yaz_uyari "zaman parametresi eksik"
  3220. hataloglama "zaman parametresi eksik"
  3221. $_yaz $logyardim
  3222. exit 1
  3223. fi
  3224. if [ ! "$3" ]; then
  3225. $_yaz_uyari "durum parametresi eksik"
  3226. hataloglama "durum parametresi eksik"
  3227. $_yaz $logyardim
  3228. exit 1
  3229. fi
  3230. log_analiz "$2" "$3" ;;
  3231. ### mps guncelle . = paket veritabanı ve git güncellemesi-talimatname bilgilerini günceller.
  3232. guncelle)
  3233. [ "$2" ] && cikti_renk_ayarla "$2"
  3234. git_guncelle && paketvt_guncelle && kurulum_dogrulama
  3235. exit 0 ;;
  3236. ### mps -GG . = git güncellemelerini ve talimatname bilgilerini günceller.
  3237. -Ggit|-GG)
  3238. [ "$2" ] && cikti_renk_ayarla "$2"
  3239. git_guncelle
  3240. exit 0 ;;
  3241. ### mps -G . = paket veritabanı bilgilerini günceller.
  3242. -G|--pvtg)
  3243. [ "$2" ] && cikti_renk_ayarla "$2"
  3244. paketvt_guncelle
  3245. kurulum_dogrulama
  3246. exit 0 ;;
  3247. ### mps tespit . = tüm sistemin güncellemesi için güncellenecek paket listesini gösterir.
  3248. tespit)
  3249. [ "$2" ] && cikti_renk_ayarla "$2"
  3250. guncelleme_tespit
  3251. exit 0 ;;
  3252. ### mps gun . = güncellenmesi gereken ve depoya yeni eklenen paketleri gösterir.
  3253. gun)
  3254. guncellemeler
  3255. exit 0 ;;
  3256. ### mps yukselt . = tüm sistemin güncellemesini gerçekleştirir.
  3257. -GS|yukselt)
  3258. sistem_guncelle $args
  3259. exit 0 ;;
  3260. ### mps yukselt2 . = tüm sistemin güncellemesini gerçekleştirir.
  3261. -GS2|yukselt2)
  3262. sistem_guncelle_eski
  3263. exit 0 ;;
  3264. #tekil temel paket guncelleme-single base package updating
  3265. -tg)
  3266. paket_sil "$2" "evet" && mps -ik $2 ;;
  3267. ### mps -g paketismi = ilgili paketi tekil günceller.
  3268. -g|--pkgu)
  3269. git_guncelle && paketvt_guncelle
  3270. if [ ! "$2" ]; then
  3271. $_yaz_uyari "paket ismi eksik"
  3272. hataloglama "paket ismi eksik"
  3273. exit 1
  3274. fi
  3275. local durum
  3276. durum=`kurulu_kontrol "$2"`
  3277. if [ "$durum" = "kurulu" ]; then
  3278. paket_guncelle "$2"
  3279. elif [ "$durum" = "degil" ]; then
  3280. $_yaz_uyari "$2 $_paket_kurulu_degil"
  3281. hataloglama "$2 $_paket_kurulu_degil"
  3282. else
  3283. $_yaz_uyari "$2 $_paket_tanimsiz"
  3284. hataloglama "$_paket_tanimsiz"
  3285. fi
  3286. exit 0 ;;
  3287. #bagimliliklariyla beraber paket guncelleme-package updating with depencies
  3288. -go|--pkgo)
  3289. if [ ! "$2" ]; then
  3290. $_yaz_uyari "$_paket_adi_gerekli"
  3291. exit 1
  3292. fi
  3293. paket_guncelle_oto "$2";;
  3294. ### mps -kk paketismi = ilgili paketin kurulu olma durumunu gösterir.
  3295. -kk)
  3296. kurulu_kontrol $args
  3297. exit 0 ;;
  3298. -kudo)
  3299. kurulum_dogrulama
  3300. exit 0 ;;
  3301. -kdi|dogrula)
  3302. if [ ! "$2" ]; then
  3303. $_yaz_uyari "$_paket_adi_gerekli"
  3304. exit 1
  3305. fi
  3306. kurulum_dogrulama_icerik "$2" ;;
  3307. -pid|pdogrula)
  3308. kokdzn=""
  3309. if [ ! "$2" ]; then
  3310. $_yaz_uyari "$_paket_adi_gerekli"
  3311. exit 1
  3312. elif [ ! "$3" ]; then
  3313. kokdzn="/"
  3314. else
  3315. kokdzn="$3"
  3316. fi
  3317. paket_icerik_dogrulama "$2" "$kokdzn";;
  3318. -kdit|tumdogrula)
  3319. kurulum_dogrulama_icerik_tum
  3320. exit 0 ;;
  3321. ### mps -set paketismi = ilgili paket silindiğinde etkilenen paketleri ve konumları tespit eder.
  3322. -set)
  3323. silme_etkilenme $args
  3324. exit 0 ;;
  3325. ### mps -suko . = sunucuların erişim kontrolünü yapar.
  3326. -suko)
  3327. sunucu_kontrol
  3328. exit 0 ;;
  3329. ### mps -pot . = talimatı olup ta paketi henüz depoda yer almayan talimatları listeler.
  3330. -pot)
  3331. paketsiz_talimatlar
  3332. exit 0 ;;
  3333. -dpl|deplist)
  3334. depo_paketler_liste
  3335. exit 0 ;;
  3336. ### mps depsil . = depo/paketler altındaki paket önbelleğini temizler.
  3337. -dps|depsil)
  3338. depo_paketler_sil
  3339. exit 0 ;;
  3340. ### mps etksil . = /var/lib/pkg/etkilenen altındaki kurtarılmış paket önbelleğini temizler.
  3341. -etks|etksil)
  3342. etkilenenler_sil
  3343. exit 0 ;;
  3344. ### mps link url_adres = verilen url adresindeki talimatı ektalimatname/topluluk altına indirir.
  3345. link)
  3346. mkdir -p $ektalimatname/topluluk
  3347. indir_talimat_paketle $2 "-4" "$ektalimatname/topluluk"
  3348. exit 0 ;;
  3349. ### mps ti url_adres = verilen url adresindeki talimatı talimatname/genel altına indirir.
  3350. ti)
  3351. indir_talimat_paketle $2 "-4" "$talimatname/genel"
  3352. exit 0 ;;
  3353. -cf|--config-file)
  3354. if [ ! "$2" ]; then
  3355. echo "ayardosyası gerek $1"
  3356. exit 1
  3357. fi
  3358. ayar_dosyasi="$2"
  3359. shift ;;
  3360. ### mps -hp aranan = ilgili aranan ifadenin hangi paketlerde olabileceğini listeler.
  3361. -hp)
  3362. if [ ! "$2" ]; then
  3363. $_yaz_uyari "paket ismi eksik"
  3364. exit 1
  3365. fi
  3366. kurulan_dosya_bul "$2"
  3367. exit 0 ;;
  3368. ### mps tgs talimat = ilgili talimatın kaynak kodunun yeni sürümü olup olmadığını kontrol eder.
  3369. tgs)
  3370. if [ ! "$2" ]; then
  3371. $_yaz_uyari "talimat ismi eksik"
  3372. exit 1
  3373. fi
  3374. talimat_surum_takip "$2"
  3375. exit 0 ;;
  3376. ### mps -tro . = tarihçe noktası oluşturur.
  3377. -tro)
  3378. tarihce_yap
  3379. exit 0 ;;
  3380. ### mps -trot . = temel tarihçe noktası oluşturur.
  3381. -trot)
  3382. temel_tarihce="evet"
  3383. tarihce_yap
  3384. exit 0 ;;
  3385. ### mps -try tarihce_nokta = tarihçe noktasına göre paketleri yükler-siler.
  3386. -try)
  3387. if [ ! "$2" ]; then
  3388. $_yaz_uyari "tarihce dosyasi eksik $1"
  3389. hataloglama "tarihce dosyasi eksik $1"
  3390. exit 1
  3391. fi
  3392. tarihce_yukle "$2"
  3393. exit 1 ;;
  3394. ### mps -trl . = tarihçe noktalarını listeler.
  3395. -trl)
  3396. tarihce_liste ;;
  3397. ### mps tdc talimat_dosyası = ilgili talimat dosyasının Türkçe değişken çevrimini yapar.
  3398. tdc)
  3399. talimat_degisken_cevrim $2
  3400. exit 0 ;;
  3401. -tamir-tk)
  3402. tamir_temel_kurulan ;;
  3403. ### mps dos . = derleme ortamını sıfırlar.temel tarihçeye geri döner.
  3404. dos)
  3405. tarihce_yukle "temel"
  3406. exit 0 ;;
  3407. -trs)
  3408. if [ ! "$2" ]; then
  3409. $_yaz_uyari "parametre eksik $1"
  3410. hataloglama "parametre eksik $1"
  3411. exit 1
  3412. fi
  3413. tarihce_sil "$2"
  3414. exit 1 ;;
  3415. ### mps itest islev_ismi = mps içindeki işlevlerin testi için kullanılmaktadır.
  3416. itest)
  3417. if [ $2 ];then
  3418. _islev="$2"
  3419. if [ "`type -t $_islev`" == "function" ];then
  3420. shift;shift
  3421. $_islev $@
  3422. else
  3423. echo "$_islev işlevi bulunamadı"
  3424. fi
  3425. else
  3426. echo "test edilecek işlev parametresi eksik"
  3427. fi
  3428. exit 0 ;;
  3429. ### mps -v . = mps sürüm bilgisini gösterir.
  3430. -v)
  3431. $_yaz_bilgi "$betikad $versiyon $iletisim $shelltip"
  3432. #echo "$betikad $versiyon $iletisim $shelltip" | bilgi_kutusu
  3433. exit 0 ;;
  3434. -y|-h|yardim)
  3435. yardim_icerik
  3436. exit 0 ;;
  3437. *)
  3438. $_yaz_uyari "Geçersiz Parametre! --> mps yardim "
  3439. exit 0 ;;
  3440. esac
  3441. done
  3442. }
  3443. yardim_icerik(){
  3444. cat $betikyol | sed -e 's/^[ \t]*//' | sed -n '/^###/p' | sed '/ /s/^###//g' | awk '{split($0,a,"="); printf "%-6s %-13s %-18s %-40s \n",$1,$2,$3,a[2]}'
  3445. }
  3446. bilgi_kutusu() {
  3447. : ${title='Bilgi'}
  3448. : ${icon=dialog-information}
  3449. yad --title="$title" --window-icon="$icon" \
  3450. --geometry='600x220+0-24' --fore='#ffffff' --back='#000033' \
  3451. --text-info --fontname=monospace --wrap $opts \
  3452. --button='gtk-close:1'
  3453. }
  3454. ana(){
  3455. if [ `id -u` = 0 ] ; then
  3456. ayarlar "$@"
  3457. else
  3458. sudo mps "$@"
  3459. fi
  3460. }
  3461. ana "$@"
  3462. #31 kirmizi
  3463. #32 yesil
  3464. #33 sari
  3465. #34 mavi
  3466. #34 mor