Ejemplo n.º 1
0
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."
Ejemplo n.º 2
0
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 *")