CihatAltiparmak / A-BASIC-AUTOUPDATER-MECHANISM

A basic autoupdater mechanism that use github platform
4 stars 0 forks source link

A BASIC AUTOUPDATER MECHANISM

Merhaba, kendimce uygulama açılınca güncelleme olup olmadığını kontrol eden, eğer uygulamamız güncel değilse uygulamamızı güncelleyen bir mekanizma yazdım.

Şimdi bizim temelde iki tane bileşenimiz var. Birincisi, uygulamayı başlatan script, diğeri de uygulamanın ta kendisi.

Öncelikle uygulamayı başlatacak olan scriptten uygulamanın güncel olup olmadığını kontrol ediyoruz (Bu iş için localimizde bulunan uygulama dizinindeki version.json u kullanıyoruz, version.json daki version bilgisiyle githubdaki version.json un bilgilerini karşılaştırıyoruz. Eğer iki bilgi de aynıysa uygulamamız zaten günceldir).

Eğer uygulama güncel ise uygulamayı direkt açıyoruz.

Eğer uygulamamız güncel değil ise önce main.py (uygulamayı açan script) dosyası dışındaki bütün dosya ve dizini siliyoruz.

Sonra github repomuzdan güncel uygulamayı zip şeklinde çekiyoruz ve bunu .cache adlı bir dizin oluşturarak bu zipi o dizine koyuyoruz. Sonra da zipi orada çıkarıyoruz.

Sonra bu .cache dizininde bulunan dosyaları vs. bizim kendi uygulama dizinimize taşıyoruz. Böylelikle uygulamamız güncellenmiş oluyor.

En son gereksiz cache dosyaları siliyoruz.

Bu arada neden main.py dosyası silinmiyor diye soranlar olabilir. main.py dosyası bizim çalışan dosyamız. Bu yüzden silinemez (en azında Windows'da, Linux'da silinebilir*)