Game ve DB Source Build -SBCP

arcface

Âyinesi iştir kişinin lafa bakılmaz
Kayıtlı Kullanıcı
Katılım
25 Eyl 2020
Mesajlar
216
Tepkime puanı
162
Puanları
48
Konum
istanbul
Web sitesi
www.arcface.net
Merhabalar,

Metin 2 adlı oyun için yazdığım bir game ve db source build scripti build işlemlerinizi 7 adımda gerçekleştirmenizi sağlıyor.

Kısaca bir özet geçeyim bu normalde oyunu cd /usr/game dedikten sonra sh baslat.sh olarak başlattığınız da nasıl sizin yerinize başlatma işlemini yapıyor ise buda onun gibi size normal de elle tek tek gmake clean,gmake dep,gmake -j20 çektikten sonra oluşan dosyayı strip -s den geçirip küçülttükten sonra bunun adını değiştirip files'in olduğu klasöre aktarıp izin verme işini size sadece 7 adım da vereceğiniz basit bir kaç komut ile gerçekleştiriyor yani dosya taşıma derdi yok sizin yerinize yedekte alıyor dosya izinlerini veriyor tüm işlemler bitince eski derlenen dosyayı yeni oluşan source'deki dosyayı da kullandıktan sonra siliyor kısaca size 5-10 dakikalık bir zaman kazandırıyor sürekli source üzerinde çalışıyorsanız işinizi nasıl rahatlatacağını anlıyorsunuzdur.


Adına kısaca SBCP(Source Build Control Panel) dedim yani kaynağı derlerken kontrol edebileceğiniz bir panel diyebiliriz. Konu içeriğini anlatırken sistem hakkında SBCP diye bahsedeceğim.


SBCP Nedir?
SBCP normal şartlarda bash(terminal) üzerinde source build(Kaynak dosyaları derleme) yaparken işinizi kolaylaştıran bir plugin(eklenti) tam plugin denmese de kısaca kullanıcının girdiği değerlere göre source build işlemini gerçekleştiren, yedek alma işlemini yapan, game, db veya ikisini birden aktarıp dosya izinlerini veren bir plugin. Yazalı 2-3 gün oluyor open source(açık kaynaklı) olduğu için geliştirmek isteyenler alıp üzerinde çeşitli fanteziler yapabilir konu altına da yaptığı güncellemeyi ekler ise konuya dahil ederim.


SBCP İşlevleri Özellikleri Neler?

Özellikleri herhangi bir ek program veya component(bileşen) gerek duymadan kullanıcıdan gelen girdilere göre kendini derleyip belirtilen hususlar doğrultusunda build(yapı,inşa etme,derleme) işlemini gerçekleştirir.
4 adet işlevi bulunmakta bunlar; build etme, yedek alma, sıkıştırma ve dosyaları aktarma



SBCP Kullanımı

Öncelikle SBCP dosyasını kullanmak için kullanacağınız sunucu build etmeye uygun olmalıdır. Aksi takdir de çalışmayacaktır sunucu da makefile ve işlevleri kurulu olarak kabul edip devam ediyorum. Sunucu da usr/src dizine bu dosyayı aktarmalısınız path(yol) olarak orayı kâle aldım farklı bir yol üzerinde yapacak iseniz path girdilerini düzeltmelisiniz. Bu kısımdan sonrasını görseller ile destekleyerek anlatacağım.
öncelikle usr/src dizinine build.sh dosyasını aktarın.


GAME BUİLD

1 )
Terminal'i açın.
Bash:
cd /usr/src
sh build.sh

va9bk6.jpg


2 ) 3 Farklı seçenek gelecek 1 sadece GAME build eder, 2 sadece DB build eder ve 3 GAME ve DB build eder.
İlk olarak GAME build etmeyi göstereceğim. 1 Seçiyoruz.


LvrykG.jpg


3 ) Yedekleme işlemi bu işlem eğer yedekle olarak seçerseniz eski game dosyanızı yedekleyip .tar.gz olarak source adı ve tarihi isim olarak atayıp oluşturacaktır.
Eğer yedekleme yapma seçeneğini seçerseniz yedekleme aşamasını boş geçecektir. Ben örnekte o alanı da görmeniz için yedekle seçeneğini seçeceğim.

P7908N.jpg


4 ) Build edilecek dosyayı seçme SBCP size src klasörün de bulunan tüm klasörleri listeleyecektir.
Bu alanda build etmek istediğiniz source klasörünü seçeceksiniz. Adını büyük küçük harflere dikkat ederek eksiksiz girmelisiniz.
Ben Vectors_Source klasörünü seçeceğim bu örneği bu source üzerinden göstereceğim.

gPaqdR.jpg


5 ) game src yolunu girmeniz gerekiyor bunu otomatik yapmayı düşündüm ama bir çok arkadaş bunu değiştiriyor
örneğin; source/game/src,server/game/src veya direkt game/src bu yüzden bunu seçilebilir olarak sundum.

Gelen ekranda seçtiğiniz source adı ile beraber örnekte gösterecektir.

9YyQM3.jpg


Build işlemi başlayacaktır. Bitene kadar bekleyin...

qALb6D.jpg


6 ) Build işlemi tamamlandıktan sonra oluşan game dosyasını seçmeniz gerekiyor. Bunu da otomatik yapmayı düşündüm ama herkes kafasına göre derlenmiş game dosyasına isim atıyor bu yüzden bunu da seçtirmek zorundayım yoksa hata verecektir.
Size oluşan dosyaları görebilmeniz için liste olarak veriyorum arasından oluşan dosyanın adını girmenizi istiyorum.
Vectors_Source'de oluşan game dosyasının adı game_r_55170_32 olduğu için adını giriyorum.

M170NQ.jpg


7 ) Bir kaç saniye seçtiğiniz dosyayı sıkıştırmak ve yeniden adlandırmak için bekletecektir.
Daha sonra nereye taşınmasını istediğinizi belirtmeniz gerekiyor. Size dizin listesini veriyorum burada yapmanız gereken şey game dosyanızın hangi dizinde olduğunu belirtmeniz benim kullandığım oyunun game dosyası share/bin dizinin de bu yüzden share/bin olarak giriyorum.

XbA0VR.jpg


SON ) İşlem bu kadar eğer yedekleme seçti iseniz eski game dosyanız yedeklenecektir.
Daha sonra eski game dosyası silinip yerine yeni game dosyası taşınıp daha sonra da dosya izinleri verilecektir.
Son olarakta build işlemi tamamlandı diye uyarı alacaksınız ve işlem tamamlanmış olacaktır.

bv3rqd.jpg


DB BUİLD

1 ) terminal'i açın.

Bash:
cd /usr/src
sh build.sh

va9bk6.jpg


2 ) 3 Farklı seçenek gelecek 1 sadece GAME build eder, 2 sadece DB build eder ve 3 GAME ve DB build eder.
İkinci olarak DB build etmeyi göstereceğim. 2 Seçiyoruz.

r0r3WN.jpg


3 ) Yedekleme işlemi bu işlem eğer yedekle olarak seçerseniz eski db dosyanızı yedekleyip .tar.gz olarak source adı ve tarihi isim olarak atayıp oluşturacaktır.
Eğer yedekleme yapma seçeneğini seçerseniz yedekleme aşamasını boş geçecektir. Ben örnekte o alanı da görmeniz için yedekle seçeneğini seçeceğim.

P7908N.jpg


4 ) Build edilecek dosyayı seçme SBCP size src klasörün de bulunan tüm klasörleri listeleyecektir.
Bu alanda build etmek istediğiniz source klasörünü seçeceksiniz. Adını büyük küçük harflere dikkat ederek eksiksiz girmelisiniz.
Ben Vectors_Source klasörünü seçeceğim bu örneği bu source üzerinden göstereceğim.

gPaqdR.jpg


5 ) db src yolunu girmeniz gerekiyor bunu otomatik yapmayı düşündüm ama bir çok arkadaş bunu değiştiriyor
örneğin; source/db/src,server/db/src veya direkt db/src bu yüzden bunu seçilebilir olarak sundum.
Gelen ekranda seçtiğiniz source adı ile beraber örnekte gösterecektir.

dLpPQV.jpg


Build işlemi başlayacaktır. Bitene kadar bekleyin...

AOaL4p.jpg


6 ) Build işlemi tamamlandıktan sonra oluşan db dosyasını seçmeniz gerekiyor. Bunu da otomatik yapmayı düşündüm ama herkes kafasına göre derlenmiş db dosyasına isim atıyor bu yüzden bunu da seçtirmek zorundayım yoksa hata verecektir.
Size oluşan dosyaları görebilmeniz için liste olarak veriyorum arasından oluşan dosyanın adını girmenizi istiyorum.
Vectors_Source'de oluşan db dosyasının adı db_r55170 olduğu için adını giriyorum.

00d1v9.jpg


7 ) Bir kaç saniye seçtiğiniz dosyayı sıkıştırmak ve yeniden adlandırmak için bekletecektir.
Daha sonra nereye taşınmasını istediğinizi belirtmeniz gerekiyor. Size dizin listesini veriyorum burada yapmanız gereken şey db dosyanızın hangi dizinde olduğunu belirtmeniz benim kullandığım oyunun db dosyası share/bin dizinin de bu yüzden share/bin olarak giriyorum.

4p4P74.jpg


SON ) İşlem bu kadar eğer yedekleme seçti iseniz eski db dosyanız yedeklenecektir.
Daha sonra eski db dosyası silinip yerine yeni db dosyası taşınıp daha sonra da dosya izinleri verilecektir.
Son olarakta build işlemi tamamlandı diye uyarı alacaksınız ve işlem tamamlanmış olacaktır.

JV1aRo.jpg


GAME VE DB BUILD

Burda uzun uzun anlatılacak bir şey yok 3 seçiyorsunuz ve yukarıda yaptığımız 2 işlemi art arda yapıyorsunuz.

7Bzq9W.jpg


1,2 veya 3 seçtiniz işlemi tamamladınız ve yedeklemeyi seçtiniz diyelim.
Yedeklenen dosyaları game ve db dosyasının bulunduğu dizine aktarılır oradan bulabilirsiniz.
Yedekler source dosyanızın adı ve build ettiğiniz tarihi baz alarak isim atar ve tar.gz olarak sıkıştırır.


va9ppD.jpg


Son olarak herhangi bir işlem yapmanız gerekmiyor oyunu yeniden başlatarak build edilen dosyaları kullanabilirsiniz.
Kod:
#!/bin/sh
# SBCP [Source Build Control Panel]
# ARCFACE
# 03.01.2020
# www.arcface.net | onlinepvpservers.com
clear
echo
echo -e "\033[32m METIN 2 \033[0m"
echo
echo -e "\033[31m SBCP(SOURCE BUİLD CONTROL PANEL)! \033[0m"
echo -e "\033[31m KAYNAK DERLEME KONTROL PANELİ! \033[0m"
echo
echo -e "\033[32m Neler BUİLD edilecek seçin; \033[0m"

echo -e "\033[36m
 1 - GAME \n
 2 - DB \n
 3 - GAME + DB \033[0m"
echo
echo -e "\033[32m Seçmek için rakamı girip ENTER yapmanız yeterli. \033[0m"
echo
read build_file_cont
while ! [ "${build_file_cont}" =  "${build_file_cont#*[^0-9]}" ] || [ $build_file_cont -lt 1 ] || [ $build_file_cont -gt  3 ]; do
    clear
    echo
    echo "Hatalı tuşlama yaptın tekrar seçim yapın;"
    echo
    echo -e "\033[32m Neler BUİLD edilecek seçin; \033[0m"
    echo -e "\033[36m
     1 - GAME \n
     2 - DB \n
     3 - GAME + DB \033[0m"
    echo -e "\033[32m Seçmek için rakamı girip ENTER yapmanız yeterli. \033[0m"
    echo
    read build_file_cont
done

clear
echo
echo -e "\033[32m Eski dosyaların yedeklenmesini istiyor musunuz? Seçin; \033[0m"
echo
echo -e "\033[36m
 1 - Yedekleme Yap \n
 2 - Yedekleme Yapma \033[0m"
echo
echo -e "\033[32m Seçmek için rakamı girip ENTER yapmanız yeterli. \033[0m"
echo
read backup_cont
while ! [ "${backup_cont}" =  "${backup_cont#*[^0-9]}" ] || [ $backup_cont -lt 1 ] || [ $backup_cont -gt  2 ]; do
    clear
    echo
    echo "Hatalı tuşlama yaptın tekrar seçim yapın;"
    echo
    echo -e "\033[36m
     1 - Yedekleme Yap \n
     2 - Yedekleme Yapma \033[0m"
    echo
    echo -e "\033[32m Seçmek için rakamı girip ENTER yapmanız yeterli. \033[0m"
    echo
    read backup_cont
done

clear

echo -e "\033[32m Kaynak klasörünü seçin; \033[0m"
echo
ls
echo
echo -e "\033[36m Kaynak klasörünün adını eksiksiz şekilde girmelisiniz \n
büyük küçük harflere dikkat ederek hangi kaynak dosyasını seçecek iseniz \n
onu eksiksiz yazın. \033[0m"
echo
echo -e "\033[32m Dosya adını yazdıktan sonra ENTER yapmanız yeterli. \033[0m"
echo
read build_source_dir

while [ ! -d "$build_source_dir" ]; do
    clear
    echo
    echo -e "\033[31m  Klasör Bulunamadı. \033[0m Lütfen tekrar seçim yapın;"
    echo
    ls
    echo
    echo -e "\033[32m Klasör adını tekrar girin; \033[0m"
    read build_source_dir
done

case $build_file_cont in
1*)
clear
echo
echo -e "\033[36m Farklı yollara sahip sourceler olduğundan dolayı \n
game src alanınızın yolunu girmeniz gerekiyor; \n
\033[31m
Örneğin; \n
$build_source_dir/source/game/src \n
$build_source_dir/game/src
\033[0m

 \033[0m"
echo
echo -e "\033[32m $build_source_dir Dizin içeriğiniz altta listelenmektedir. \033[0m"
ls $build_source_dir
echo
echo -e "\033[32m Dizin yolunu örneklerde verildiği gibi girin. \033[0m"
echo
read build_source_dir_game

while [ ! -f "$build_source_dir/$build_source_dir_game/input.cpp" ]; do
    clear
    echo
    echo -e "\033[31m  Dizin yolunu doğru girmedin \033[0m Lütfen tekrar yolu yazın;"
    echo
    echo -e "\033[36m Farklı yollara sahip sourceler olduğundan dolayı game src alanınızın yolunu girmeniz gerekiyor; \n
    \033[31m Örneğin; \n $build_source_dir/source/game/src \n $build_source_dir/game/src \033[0m"
    echo
    ls $build_source_dir
    echo
    echo -e "\033[32m Klasör yolunu tekrar girin; \033[0m"
    read build_source_dir_game
done
clear

echo -e "\033[32m Build işlemi başlatılıyor... \033[0m"
sleep 2

echo -e "\033[32m Kaynak temiz duruma getiriliyor... \033[0m"
sleep 2

cd /usr/src/$build_source_dir/$build_source_dir_game

gmake clean

echo -e "\033[32m Kaynak derleniyor... \033[0m"
sleep 2
gmake dep
gmake -j20

clear
echo -e "\033[33m GAME Source build işlemi tamamlandı. \033[0m"
    echo
    echo -e "\033[36m Oluşan game dosyasını sıkıştırmak için yeni oluşan dosyanın adını girin. \033[0m"
    echo
    ls /usr/src/$build_source_dir/$build_source_dir_game/../
    echo
    echo -e "\033[32m Üstte listelenenler içinden seçmeniz gerekiyor; \033[0m"

    cd /usr/src/$build_source_dir/$build_source_dir_game/../

    read build_source_dir_game_file

    while [ ! -f "$build_source_dir_game_file" ]; do
        clear
        echo
        echo -e "\033[31m  Hatalı dosya adı girdin \033[0m Lütfen tekrar yazın;"
        echo
        ls /usr/src/$build_source_dir/$build_source_dir_game/../
        echo
        echo -e "\033[32m Üstte listelenenler içinden seçmeniz gerekiyor; \033[0m"
        cd /usr/src/$build_source_dir/$build_source_dir_game/../

        read build_source_dir_game_file
    done

    clear

    cd /usr/src/$build_source_dir/$build_source_dir_game/../

    strip -s $build_source_dir_game_file

    echo -e "\033[33m Dosya sıkıştırıldı. \033[0m"

    echo -e "\033[32m Seçilen dosya yeniden adlandırılıyor... \033[0m"

    sleep 2

    cd /usr/src/$build_source_dir/$build_source_dir_game/../
    mv $build_source_dir_game_file game

    echo -e "\033[33m Dosya adı değiştirildi. \033[0m"

    sleep 2
    clear
    echo
    echo -e "\033[36m Build edilen dosyayı taşımak için game yolunu girin; \033[0m"
    echo -e "\033[36m Örneğin; \n
    share \n
    share/bin \n share/game veya share/bin/game yapmayın sadece game dosyasının bulunduğu dizini girmeniz yeterlidir.
     \033[0m"
    echo
    ls /usr/game/
    echo
    echo -e "\033[32m Üstte listelenenler içinden devam ederek dizin yolunu girin; \033[0m"

    cd /usr/game/

    read files_game_dir

    while [ ! -f "$files_game_dir/game" ]; do
        clear
        echo
        echo -e "\033[31m Girdiğiniz yolda game bulunamadı.\033[0m \033[36m Tekrar deneyin; \033[0m"
        echo
    echo -e "\033[36m Örneğin; \n
    share \n
    share/bin \n share/game veya share/bin/game yapmayın sadece game dosyasının bulunduğu dizini girmeniz yeterlidir.
     \033[0m"
    echo
        ls /usr/game/
        echo
        echo -e "\033[32m Üstte listelenenler içinden devam ederek dizin yolunu girin; \033[0m"

        cd /usr/game/

        read files_game_dir
    done
    if [ $backup_cont = 1 ]
    then
    clear
    
    echo -e "\033[32m Eski game dosyası yedekleniyor... \033[0m"

    sleep 2
    cd /usr/game/$files_game_dir && tar cvzf $build_source_dir"_game_"`date +"%Y_%m_%d_%H_%M_%S"`.tar.gz game
    echo -e "\033[33m Yedek oluşturuldu. /usr/game/$files_game_dir üzerinden yedeğe ulaşabilirsiniz.  \033[0m"
    sleep 2
    fi

    clear
    echo -e "\033[32m Eski game siliniyor... \033[0m"
    sleep 2
    rm /usr/game/$files_game_dir/game
    echo -e "\033[32m Eski game silindi. Yeni dosya aktarılıyor... \033[0m"
    sleep 2
    cp /usr/src/$build_source_dir/$build_source_dir_game/../game /usr/game/$files_game_dir
    echo -e "\033[33m Dosya aktarıldı. Dosya izinleri veriliyor... \033[0m"
    rm /usr/src/$build_source_dir/$build_source_dir_game/../game
    sleep 2
    chmod 0777 /usr/game/$files_game_dir/game
    clear
    echo -e "\033[33m Dosya aktarıldı. Dosya izinleri Verildi. \033[0m"
;;
2*)
clear
echo
echo -e "\033[36m Farklı yollara sahip sourceler olduğundan dolayı \n
db src alanınızın yolunu girmeniz gerekiyor; \n
\033[31m
Örneğin; \n
$build_source_dir/source/db/src \n
$build_source_dir/db/src
\033[0m

 \033[0m"
echo
echo -e "\033[32m $build_source_dir Dizin içeriğiniz altta listelenmektedir. \033[0m"
ls $build_source_dir
echo
echo -e "\033[32m Dizin yolunu örneklerde verildiği gibi girin. \033[0m"
echo
read build_source_dir_db

while [ ! -f "$build_source_dir/$build_source_dir_db/Main.cpp" ]; do
    clear
    echo
    echo -e "\033[31m  Dizin yolunu doğru girmedin \033[0m Lütfen tekrar yolu yazın;"
    echo
    echo -e "\033[36m Farklı yollara sahip sourceler olduğundan dolayı DB src alanınızın yolunu girmeniz gerekiyor; \n
    \033[31m Örneğin; \n $build_source_dir/source/db/src \n $build_source_dir/db/src \033[0m"
    echo
    ls $build_source_dir
    echo
    echo -e "\033[32m Klasör yolunu tekrar girin; \033[0m"
    read build_source_dir_db
done
clear

echo -e "\033[32m Build işlemi başlatılıyor... \033[0m"
sleep 2

echo -e "\033[32m Kaynak temiz duruma getiriliyor... \033[0m"
sleep 2

cd /usr/src/$build_source_dir/$build_source_dir_db

gmake clean

echo -e "\033[32m Kaynak derleniyor... \033[0m"
sleep 2
gmake dep
gmake -j20

clear
echo -e "\033[33m DB Source build işlemi tamamlandı. \033[0m"
    echo
    echo -e "\033[36m Oluşan DB dosyasını sıkıştırmak için yeni oluşan dosyanın adını girin. \033[0m"
    echo
    ls /usr/src/$build_source_dir/$build_source_dir_db/../
    echo
    echo -e "\033[32m Üstte listelenenler içinden seçmeniz gerekiyor; \033[0m"

    cd /usr/src/$build_source_dir/$build_source_dir_db/../

    read build_source_dir_game_file

    while [ ! -f "$build_source_dir_game_file" ]; do
        clear
        echo
        echo -e "\033[31m  Hatalı dosya adı girdin \033[0m Lütfen tekrar yazın;"
        echo
        ls /usr/src/$build_source_dir/$build_source_dir_db/../
        echo
        echo -e "\033[32m Üstte listelenenler içinden seçmeniz gerekiyor; \033[0m"
        cd /usr/src/$build_source_dir/$build_source_dir_db/../

        read build_source_dir_game_file
    done

    clear

    echo -e "\033[32m Seçilen dosya yeniden adlandırılıyor... \033[0m"
    sleep 2

    cd /usr/src/$build_source_dir/$build_source_dir_db/../
    mv $build_source_dir_game_file db
    echo
    echo -e "\033[33m Dosya adı değiştirildi. \033[0m"

    sleep 2
    clear
    echo
    echo -e "\033[36m Build edilen dosyayı taşımak için DB yolunu girin; \033[0m"
    echo -e "\033[36m Örneğin; \n
    share \n
    share/bin \n share/db veya share/bin/db yapmayın sadece DB dosyasının bulunduğu dizini girmeniz yeterlidir.
     \033[0m"
    echo
    ls /usr/game/
    echo
    echo -e "\033[32m Üstte listelenenler içinden devam ederek dizin yolunu girin; \033[0m"

    cd /usr/game/

    read files_db_dir

    while [ ! -f "$files_db_dir/db" ]; do
        clear
        echo
        echo -e "\033[31m Girdiğiniz yolda DB bulunamadı.\033[0m \033[36m Tekrar deneyin; \033[0m"
        echo
    echo -e "\033[36m Örneğin; \n
    share \n
    share/bin \n share/db veya share/bin/db yapmayın sadece DB dosyasının bulunduğu dizini girmeniz yeterlidir.
     \033[0m"
    echo
        ls /usr/game/
        echo
        echo -e "\033[32m Üstte listelenenler içinden devam ederek dizin yolunu girin; \033[0m"

        cd /usr/game/

        read files_db_dir
    done
    if [ $backup_cont = 1 ]
    then
    clear
    
    echo -e "\033[32m Eski DB dosyası yedekleniyor... \033[0m"
    
    sleep 2
    cd /usr/game/$files_db_dir && tar cvzf $build_source_dir"_db_"`date +"%Y_%m_%d_%H_%M_%S"`.tar.gz game
    
    clear
    echo -e "\033[33m Yedek oluşturuldu. /usr/game/$files_db_dir üzerinden yedeğe ulaşabilirsiniz.  \033[0m"
    sleep 2
    fi

    echo -e "\033[32m Eski DB siliniyor... \033[0m"
    sleep 2
    echo
    rm /usr/game/$files_db_dir/db
    echo -e "\033[32m Eski DB silindi. Yeni dosya aktarılıyor... \033[0m"
    sleep 2
    echo
    cp /usr/src/$build_source_dir/$build_source_dir_db/../db /usr/game/$files_db_dir
    echo -e "\033[33m DB aktarıldı. Dosya izinleri veriliyor... \033[0m"
    rm /usr/src/$build_source_dir/$build_source_dir_db/../db
    sleep 2
    clear
    chmod 0777 /usr/game/$files_db_dir/db
    echo -e "\033[33m DB aktarıldı. Dosya izinleri Verildi. \033[0m"
;;

3*)

clear
echo
echo -e "\033[36m Farklı yollara sahip sourceler olduğundan dolayı \n
game src alanınızın yolunu girmeniz gerekiyor; \n
\033[31m
Örneğin; \n
$build_source_dir/source/game/src \n
$build_source_dir/game/src
\033[0m

 \033[0m"
echo
echo -e "\033[32m $build_source_dir Dizin içeriğiniz altta listelenmektedir. \033[0m"
ls $build_source_dir
echo
echo -e "\033[32m Dizin yolunu örneklerde verildiği gibi girin. \033[0m"
echo
read build_source_dir_game

while [ ! -f "$build_source_dir/$build_source_dir_game/input.cpp" ]; do
    clear
    echo
    echo -e "\033[31m  Dizin yolunu doğru girmedin \033[0m Lütfen tekrar yolu yazın;"
    echo
    echo -e "\033[36m Farklı yollara sahip sourceler olduğundan dolayı game src alanınızın yolunu girmeniz gerekiyor; \n
    \033[31m Örneğin; \n $build_source_dir/source/game/src \n $build_source_dir/game/src \033[0m"
    echo
    ls $build_source_dir
    echo
    echo -e "\033[32m Klasör yolunu tekrar girin; \033[0m"
    read build_source_dir_game
done
clear

echo -e "\033[32m Build işlemi başlatılıyor... \033[0m"
sleep 2

echo -e "\033[32m Kaynak temiz duruma getiriliyor... \033[0m"
sleep 2

cd /usr/src/$build_source_dir/$build_source_dir_game

gmake clean

echo -e "\033[32m Kaynak derleniyor... \033[0m"
sleep 2
gmake dep
gmake -j20

clear
echo -e "\033[33m GAME Source build işlemi tamamlandı. \033[0m"
    echo
    echo -e "\033[36m Oluşan game dosyasını sıkıştırmak için yeni oluşan dosyanın adını girin. \033[0m"
    echo
    ls /usr/src/$build_source_dir/$build_source_dir_game/../
    echo
    echo -e "\033[32m Üstte listelenenler içinden seçmeniz gerekiyor; \033[0m"

    cd /usr/src/$build_source_dir/$build_source_dir_game/../

    read build_source_dir_game_file

    while [ ! -f "$build_source_dir_game_file" ]; do
        clear
        echo
        echo -e "\033[31m  Hatalı dosya adı girdin \033[0m Lütfen tekrar yazın;"
        echo
        ls /usr/src/$build_source_dir/$build_source_dir_game/../
        echo
        echo -e "\033[32m Üstte listelenenler içinden seçmeniz gerekiyor; \033[0m"
        cd /usr/src/$build_source_dir/$build_source_dir_game/../

        read build_source_dir_game_file
    done

    clear

    cd /usr/src/$build_source_dir/$build_source_dir_game/../

    strip -s $build_source_dir_game_file

    echo -e "\033[33m Dosya sıkıştırıldı. \033[0m"

    echo -e "\033[32m Seçilen dosya yeniden adlandırılıyor... \033[0m"

    sleep 2

    cd /usr/src/$build_source_dir/$build_source_dir_game/../
    mv $build_source_dir_game_file game

    echo -e "\033[33m Dosya adı değiştirildi. \033[0m"

    sleep 2
    clear
    echo
    echo -e "\033[36m Build edilen dosyayı taşımak için game yolunu girin; \033[0m"
    echo -e "\033[36m Örneğin; \n
    share \n
    share/bin \n share/game veya share/bin/game yapmayın sadece game dosyasının bulunduğu dizini girmeniz yeterlidir.
     \033[0m"
    echo
    ls /usr/game/
    echo
    echo -e "\033[32m Üstte listelenenler içinden devam ederek dizin yolunu girin; \033[0m"

    cd /usr/game/

    read files_game_dir

    while [ ! -f "$files_game_dir/game" ]; do
        clear
        echo
        echo -e "\033[31m Girdiğiniz yolda game bulunamadı.\033[0m \033[36m Tekrar deneyin; \033[0m"
        echo
    echo -e "\033[36m Örneğin; \n
    share \n
    share/bin \n share/game veya share/bin/game yapmayın sadece game dosyasının bulunduğu dizini girmeniz yeterlidir.
     \033[0m"
    echo
        ls /usr/game/
        echo
        echo -e "\033[32m Üstte listelenenler içinden devam ederek dizin yolunu girin; \033[0m"

        cd /usr/game/

        read files_game_dir
    done
    if [ $backup_cont = 1 ]
    then
    clear
    
    echo -e "\033[32m Eski game dosyası yedekleniyor... \033[0m"

    sleep 2
    cd /usr/game/$files_game_dir && tar cvzf $build_source_dir"_game_"`date +"%Y_%m_%d_%H_%M_%S"`.tar.gz game
    echo -e "\033[33m Yedek oluşturuldu. /usr/game/$files_game_dir üzerinden yedeğe ulaşabilirsiniz.  \033[0m"
    sleep 2
    fi

    clear
    echo -e "\033[32m Eski game siliniyor... \033[0m"
    sleep 2
    rm /usr/game/$files_game_dir/game
    echo -e "\033[32m Eski game silindi. Yeni dosya aktarılıyor... \033[0m"
    sleep 2
    cp /usr/src/$build_source_dir/$build_source_dir_game/../game /usr/game/$files_game_dir
    echo -e "\033[33m Dosya aktarıldı. Dosya izinleri veriliyor... \033[0m"
    rm /usr/src/$build_source_dir/$build_source_dir_game/../game
    sleep 2
    chmod 0777 /usr/game/$files_game_dir/game
    clear
    echo -e "\033[33m GAME aktarıldı. Dosya izinleri Verildi. \033[0m"
    echo
    echo -e "\033[33m DB Build edilmek için hazırlanıyor... \033[0m"
    sleep 3
clear
cd /usr/src
echo
echo -e "\033[36m Farklı yollara sahip sourceler olduğundan dolayı \n
db src alanınızın yolunu girmeniz gerekiyor; \n
\033[31m
Örneğin; \n
$build_source_dir/source/db/src \n
$build_source_dir/db/src
\033[0m

 \033[0m"
echo
echo -e "\033[32m $build_source_dir Dizin içeriğiniz altta listelenmektedir. \033[0m"
ls $build_source_dir
echo
echo -e "\033[32m Dizin yolunu örneklerde verildiği gibi girin. \033[0m"
echo
read build_source_dir_db

while [ ! -f "$build_source_dir/$build_source_dir_db/Main.cpp" ]; do
    clear
    echo
    echo -e "\033[31m  Dizin yolunu doğru girmedin \033[0m Lütfen tekrar yolu yazın;"
    echo
    echo -e "\033[36m Farklı yollara sahip sourceler olduğundan dolayı DB src alanınızın yolunu girmeniz gerekiyor; \n
    \033[31m Örneğin; \n $build_source_dir/source/db/src \n $build_source_dir/db/src \033[0m"
    echo
    ls $build_source_dir
    echo
    echo -e "\033[32m Klasör yolunu tekrar girin; \033[0m"
    read build_source_dir_db
done
clear

echo -e "\033[32m Build işlemi başlatılıyor... \033[0m"
sleep 2

echo -e "\033[32m Kaynak temiz duruma getiriliyor... \033[0m"
sleep 2

cd /usr/src/$build_source_dir/$build_source_dir_db

gmake clean

echo -e "\033[32m Kaynak derleniyor... \033[0m"
sleep 2
gmake dep
gmake -j20

clear
echo -e "\033[33m DB Source build işlemi tamamlandı. \033[0m"
    echo
    echo -e "\033[36m Oluşan DB dosyasını sıkıştırmak için yeni oluşan dosyanın adını girin. \033[0m"
    echo
    ls /usr/src/$build_source_dir/$build_source_dir_db/../
    echo
    echo -e "\033[32m Üstte listelenenler içinden seçmeniz gerekiyor; \033[0m"

    cd /usr/src/$build_source_dir/$build_source_dir_db/../

    read build_source_dir_game_file

    while [ ! -f "$build_source_dir_game_file" ]; do
        clear
        echo
        echo -e "\033[31m  Hatalı dosya adı girdin \033[0m Lütfen tekrar yazın;"
        echo
        ls /usr/src/$build_source_dir/$build_source_dir_db/../
        echo
        echo -e "\033[32m Üstte listelenenler içinden seçmeniz gerekiyor; \033[0m"
        cd /usr/src/$build_source_dir/$build_source_dir_db/../

        read build_source_dir_game_file
    done

    clear

    echo -e "\033[32m Seçilen dosya yeniden adlandırılıyor... \033[0m"
    sleep 2

    cd /usr/src/$build_source_dir/$build_source_dir_db/../
    mv $build_source_dir_game_file db
    echo
    echo -e "\033[33m Dosya adı değiştirildi. \033[0m"

    sleep 2
    clear
    echo
    echo -e "\033[36m Build edilen dosyayı taşımak için DB yolunu girin; \033[0m"
    echo -e "\033[36m Örneğin; \n
    share \n
    share/bin \n share/db veya share/bin/db yapmayın sadece DB dosyasının bulunduğu dizini girmeniz yeterlidir.
     \033[0m"
    echo
    ls /usr/game/
    echo
    echo -e "\033[32m Üstte listelenenler içinden devam ederek dizin yolunu girin; \033[0m"

    cd /usr/game/

    read files_db_dir

    while [ ! -f "$files_db_dir/db" ]; do
        clear
        echo
        echo -e "\033[31m Girdiğiniz yolda DB bulunamadı.\033[0m \033[36m Tekrar deneyin; \033[0m"
        echo
    echo -e "\033[36m Örneğin; \n
    share \n
    share/bin \n share/db veya share/bin/db yapmayın sadece DB dosyasının bulunduğu dizini girmeniz yeterlidir.
     \033[0m"
    echo
        ls /usr/game/
        echo
        echo -e "\033[32m Üstte listelenenler içinden devam ederek dizin yolunu girin; \033[0m"

        cd /usr/game/

        read files_db_dir
    done
    if [ $backup_cont = 1 ]
    then
    clear
    
    echo -e "\033[32m Eski DB dosyası yedekleniyor... \033[0m"
    
    sleep 2
    cd /usr/game/$files_db_dir && tar cvzf $build_source_dir"_db_"`date +"%Y_%m_%d_%H_%M_%S"`.tar.gz game
    
    clear
    echo -e "\033[33m Yedek oluşturuldu. /usr/game/$files_db_dir üzerinden yedeğe ulaşabilirsiniz.  \033[0m"
    sleep 2
    fi

    echo -e "\033[32m Eski DB siliniyor... \033[0m"
    sleep 2
    echo
    rm /usr/game/$files_db_dir/db
    echo -e "\033[32m Eski DB silindi. Yeni dosya aktarılıyor... \033[0m"
    sleep 2
    echo
    cp /usr/src/$build_source_dir/$build_source_dir_db/../db /usr/game/$files_db_dir
    echo -e "\033[33m DB aktarıldı. Dosya izinleri veriliyor... \033[0m"
    rm /usr/src/$build_source_dir/$build_source_dir_db/../db
    sleep 2
    clear
    chmod 0777 /usr/game/$files_db_dir/db
    echo -e "\033[33m DB aktarıldı. Dosya izinleri Verildi. \033[0m"
;;
esac
echo
echo -e "\033[33m Build işlemi tamamlandı. \033[0m"
 
5,683Konular
16,874Mesajlar
9,750Kullanıcılar
obbproSon üye
Üst