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