def kaldir(): paket_listesi = {} art = 1 alt.dizine_gec("/usr/share/paketci/kayit/debian") for kok, dizinler, dosyalar in alt.dizin_listele("/usr/share/paketci/kayit/debian"): if dizinler != []: for k in dizinler: paket_listesi[art] = k art = art + 1 else: pass # Kaldırılabilecek paket yoksa hata veriyoruz. if paket_listesi == {}: print "Error." alt.cik() alt.yap("echo -e '\E[0;32m'\"\033[1mInstalled packages:\033[0m\"") print "\n".join("%s) %s" % (k, v) for k, v in paket_listesi.items()) paket_adi = "" paket_no = input("Please input the number of the package: ") try: paket_adi = paket_listesi[paket_no] except: print "Error" alt.cik() # Eğer varsa prerm script'i çalıştırılacak. alt.dizine_gec("/usr/share/paketci/kayit/debian/" + paket_adi) if alt.dosyami("prerm"): alt.yap("echo -e '\E[0;32m'\"\033[1mRunning prerm.sh\033[0m\"") alt.yap("./prerm remove") alt.yap("echo -e '\E[0;32m'\"\033[1mPre-Remove operations has done.\033[0m\"") # "kur" ile oluşturduğumuz "silme_kaydi" dosyasındaki tüm dosyalara "rm -rf" uygulayacağız. if not alt.dizin_varmi("/usr/share/paketci/kayit/debian/" + paket_adi): print "Error!" alt.cik() alt.dizine_gec("/usr/share/paketci/kayit/debian/" + paket_adi) silme = open("silme_kaydi", "r") while 1: satir = silme.readline() if not satir: # Başka satır kalmadıysa çık. break alt.yap("rm -rf " + satir) silme.close() # Eğer varsa postrm script'i çalıştırılacak. alt.dizine_gec("/usr/share/paketci/kayit/debian/" + paket_adi) if alt.dosyami("postrm"): alt.yap("echo -e '\E[0;32m'\"\033[1mRunning postrm.sh\033[0m\"") alt.yap("./postrm remove") alt.yap("echo -e '\E[0;32m'\"\033[1mPost-Remove operations has done.\033[0m\"") # Kaldırma tamamlandı Kullanıcıyı bilgilendiriyoruz. alt.yap("echo -e '\E[0;31m'\"\033[1m------------------------\033[0m\"") alt.yap("echo -e '\E[0;32m'\"\033[1mPackage removed successfully!\033[0m\"") alt.yap("echo -e '\E[0;31m'\"\033[1m------------------------\033[0m\"") # Son olarak "kayit/debian" altındaki paketimize ait klasörü siliyoruz. alt.dizine_gec("/usr/share/paketci/kayit/debian/") alt.dizin_sil(paket_adi) print "Package removed from database."
def kur(paket_adi): alt.dizine_gec("/usr/share/paketci/kayit/debian") if alt.dizin_varmi(paket_adi): alt.yap("rm -rf " + paket_adi) # Paketin adıyla bir dizin oluşturuyoruz, buraya silme kaydı gelecek. alt.dizine_gec("/usr/share/paketci/kayit/debian") alt.yap("mkdir " + paket_adi) print "---------------------------------" print "Uninstall data succesfully written" print "---------------------------------" # Varsa preinst script'ini çalıştırıyoruz. alt.dizine_gec("/usr/share/paketci/gecici/" + paket_adi + "/control") if alt.dosyami("preinst"): alt.yap("echo -e '\E[0;32m'\"\033[1mRunning preinst.sh\033[0m\"") alt.yap("./preinst install") alt.yap("echo -e '\E[0;32m'\"\033[1mPre-Installation operateions has done.\033[0m\"") # Dosyaları kopyalıyoruz. print "Installing..." alt.dizine_gec("/usr/share/paketci/gecici/" + paket_adi + "/data") alt.yap("cp * / -r") # Varsa postinst script'ini çalıştırıyoruz alt.dizine_gec("/usr/share/paketci/gecici/" + paket_adi + "/control") if alt.dosyami("postinst"): alt.yap("echo -e '\E[0;32m'\"\033[1mRunning postinst.sh\033[0m\"") alt.yap("./postinst configure") alt.yap("echo -e '\E[0;32m'\"\033[1mPost-Installation operations has done.\033[0m\"") print "Creating remove scripts." # Eğer varlarsa prerm ve postrm scriptlerini kaydediyoruz. alt.dizine_gec("/usr/share/paketci/gecici/" + paket_adi + "/control") if alt.dosyami("prerm"): alt.yap("echo -e '\E[0;32m'\"\033[1mRecording prerm.sh\033[0m\"") alt.yap("cp prerm " + "/usr/share/paketci/kayit/debian/" + paket_adi) if alt.dosyami("postrm"): alt.yap("echo -e '\E[0;32m'\"\033[1mRecording postrm.sh\033[0m\"") alt.yap("cp postrm " + "/usr/share/paketci/kayit/debian/" + paket_adi) # Kopyalamadan sonra ileride paketin kaldırılabilmesi için "kayit" dizini altına yukarıdaki komut ile kopyalanmış # dosyaların listesini kaydediyoruz. alt.dizine_gec("/usr/share/paketci/kayit/debian/" + paket_adi) kayit = open("silme_kaydi", "w") # İleride dosyaların sağlamlığının kontrol edilebilmesi için tüm dosyaların md5sum değerlerini topluyoruz. kontrol = open("kontroller", "w") # "silme_kaydi" dosyasındaki tüm satırlar, paket kaldırılmak istenirse "rm -rf [satir]" komutundan geçirilecek for kok, dizinler, dosyalar in alt.dizin_listele("/usr/share/paketci/gecici/" + paket_adi + "/data"): for isim in dosyalar: # HemenKur'a ait dizin parçalarını kayda geçirmiyoruz. uzunluk = len("/usr/share/paketci/gecici/" + paket_adi + "/data") kayit.write(os.path.join(kok, isim)[uzunluk:]) kayit.write("\n") # Burada kurulum sırasında sisteme yerleştirilen her dosyanın md5sum değerini kaydediyoruz. # İleride dosyaların bozuk olup olmadığı bu sayede kontrol edilebilecek. if os.path.isfile(os.path.join(kok, isim)): temp = 0 metin = "" while temp != len(os.path.join(kok, isim)): if os.path.join(kok, isim)[temp] == " ": metin = metin + "\\" + os.path.join(kok, isim)[temp] else: metin = metin + os.path.join(kok, isim)[temp] temp = temp + 1 md5_degeri = os.popen("md5sum " + metin).readline() # Dosyaların yolundan paketci/gecici kısımlarını çıkarıyoruz. md5_yaz = md5_degeri.split(" ")[0] dosya_yolu = md5_degeri.split(" ")[2][uzunluk:] kontrol.write(md5_yaz + " " + dosya_yolu) metin = "" # "silme_kaydi"nı ve kontrol'ü kapatıyoruz kayit.close() kontrol.close() # "gecici" dizinindeki paketimizi kaldırıyoruz. alt.dizine_gec("/usr/share/paketci/gecici") alt.yap("rm -rf " + paket_adi) print "\nUninstallation script has created." # İşimiz bittiğine göre "gecici" dizinindeki herşeyi kaldırıyoruz. alt.dizine_gec("/usr/share/paketci/gecici") alt.yap("rm -rf *")