Example #1
0
def kontrol(paket_adi):

    alt.dizine_gec("/usr/share/paketci/kayit/debian/" + paket_adi)

    # Geçici değişkenleri oluşturuyoruz
    deger = ""
    md5 = ""
    dosya = ""

    # md5sum kayıtlarını açıyor ve tek tek kontrol ediyoruz.
    kontroller = open("kontroller", "r")
    while 1:
        satir = kontroller.readline()
        if not satir:  # Başka satır kalmadıysa çık.
            break

        # O anki satırın değerini md5sum ve dosya olarak ikiye bölüyor ve kontrolü yapıyoruz.
        deger = satir.split(" ")
        md5 = deger[0]
        dosya = deger[1][:-1]

        if alt.dosyami(dosya):

            if os.popen("md5sum " + dosya).readline()[0:32] == md5:
                print dosya + "   ... " + "\033[01;32mOK\033[0m"
            else:
                print dosya + "... " + "\033[01;31mCONTAINS ERRORS\033[0m"
        else:
            print dosya + "   ... " + "\033[01;31mDELETED\033[0m"

            # İşimiz bitti, kontroller dosyasını kapatıyoruz.
    kontroller.close()

    # Son olarak kullanıcıyı bilgilendiriyoruz.
    alt.yap("echo -e '\E[0;32m'\"\033[1mControl of the installed files has done.\033[0m\"")
    print 'Please control the files that tagged with: "OK" or "DELETED"'
    alt.yap("echo -e '\E[0;32m'\"\033[1mAll done!\033[0m\"")
Example #2
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."
Example #3
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 *")