2017-03-13 23:18:27 +01:00
|
|
|
|
#!/usr/bin/python3
|
|
|
|
|
# Milis Linux Konsol / Grafik Kurulum Betiği
|
|
|
|
|
# Commit tarihi: 25.09.2016-03.2017
|
|
|
|
|
# Dialog rehberi için: http://pythondialog.sourceforge.net/doc/
|
|
|
|
|
# Yazarlar: milisarge,geekdinazor
|
|
|
|
|
|
|
|
|
|
import sys
|
|
|
|
|
import subprocess
|
|
|
|
|
import re
|
|
|
|
|
import crypt
|
|
|
|
|
import os
|
|
|
|
|
import time
|
|
|
|
|
import sys
|
|
|
|
|
import site
|
|
|
|
|
import json
|
|
|
|
|
|
|
|
|
|
kontrol=True
|
|
|
|
|
|
|
|
|
|
if kontrol:
|
|
|
|
|
#talimatname-paket güncellemeleri
|
|
|
|
|
os.system("clear")
|
|
|
|
|
os.system("mps -GG")
|
|
|
|
|
os.system("mps -G")
|
|
|
|
|
|
|
|
|
|
#lsb-release tamiri
|
|
|
|
|
os.system("mps -g lsb-release")
|
|
|
|
|
|
|
|
|
|
#gereklerin kontrolü-kurulumu
|
|
|
|
|
paketd=site.getsitepackages()
|
|
|
|
|
yukluler=os.listdir(paketd[0])
|
|
|
|
|
kur="pip3 install "
|
|
|
|
|
mpskur="mps kur "
|
2017-03-14 23:21:49 +01:00
|
|
|
|
kontrol=[""]
|
|
|
|
|
mpskontrol=["python3-pip","python-yaml","python3-yaml","python3-pythondialog"]
|
2017-03-13 23:18:27 +01:00
|
|
|
|
|
|
|
|
|
for mpsk in mpskontrol:
|
|
|
|
|
if os.path.exists("/var/lib/pkg/DB/"+mpsk) is False:
|
|
|
|
|
os.system("mps kur "+mpsk)
|
|
|
|
|
else:
|
|
|
|
|
print(mpsk,"zaten kurulu")
|
|
|
|
|
|
|
|
|
|
for yuklu in yukluler:
|
|
|
|
|
for kont in kontrol:
|
|
|
|
|
if kont in yuklu:
|
|
|
|
|
print (kont,"kurulu")
|
|
|
|
|
kontrol.remove(kont)
|
|
|
|
|
for kont in kontrol:
|
|
|
|
|
os.system(kur+kont)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
from dialog import Dialog
|
|
|
|
|
import yaml
|
|
|
|
|
|
|
|
|
|
d = Dialog(dialog="dialog")
|
|
|
|
|
f = open("/tmp/kurulum.log","w")
|
|
|
|
|
|
2017-03-14 23:21:49 +01:00
|
|
|
|
_kurulum_dosya="/root/ayarlar/kurulum.yml"
|
|
|
|
|
kurulum_dosya=""
|
2017-03-13 23:18:27 +01:00
|
|
|
|
|
2017-03-14 23:21:49 +01:00
|
|
|
|
if not os.path.exists(_kurulum_dosya):
|
|
|
|
|
d.infobox(text=_kurulum_dosya+" bulunamadı!")
|
2017-03-13 23:18:27 +01:00
|
|
|
|
sys.exit()
|
2017-03-14 23:21:49 +01:00
|
|
|
|
else:
|
|
|
|
|
os.system("cp "+_kurulum_dosya+" /opt/kurulum.yml")
|
|
|
|
|
kurulum_dosya="/opt/kurulum.yml"
|
2017-03-13 23:18:27 +01:00
|
|
|
|
|
|
|
|
|
def komutCalistir(c):
|
|
|
|
|
out = subprocess.check_output(c,stderr=subprocess.STDOUT,shell=True,universal_newlines=True)
|
|
|
|
|
return out.replace("\b","") #byte-string çevrim
|
|
|
|
|
|
|
|
|
|
def kurulum_oku(kurulumdos):
|
|
|
|
|
with open(kurulumdos, 'r') as f:
|
|
|
|
|
param = yaml.load(f)
|
|
|
|
|
return param
|
|
|
|
|
|
|
|
|
|
def kurulum_yaz(param,kurulumdos):
|
|
|
|
|
with open(kurulumdos, 'w') as outfile:
|
|
|
|
|
yaml.dump(param, outfile, default_flow_style=False,allow_unicode=True)
|
|
|
|
|
|
|
|
|
|
def paramEkran(param,indent=0):
|
|
|
|
|
yazi=""
|
|
|
|
|
'''for key, value in param.iteritems():
|
|
|
|
|
yazi+='\t' * indent + str(key)+"\n"
|
|
|
|
|
if isinstance(value, dict):
|
|
|
|
|
paramEkran(value, indent+1)
|
|
|
|
|
else:
|
|
|
|
|
yazi+='\t' * (indent+1) + str(value)
|
|
|
|
|
return yazi
|
|
|
|
|
'''
|
|
|
|
|
return json.dumps(param,sort_keys=True, indent=4)
|
|
|
|
|
|
|
|
|
|
kurparam=kurulum_oku(kurulum_dosya)
|
|
|
|
|
|
|
|
|
|
def karsilamaEkrani():
|
|
|
|
|
status = d.yesno(title="Milis Linux Atilla 1.0 Kurulum Ekranı",
|
|
|
|
|
text="Milis Linux (Milli İşletim Sistemi) sıfır kaynak koddan üretilen,kendine has paket yöneticisine sahip,\
|
|
|
|
|
bağımsız tabanlı yerli linux işletim sistemi projesidir.\
|
|
|
|
|
Genel felsefe olarak ülkemizdeki bilgisayar kullanıcıları için linuxu kolaylaştırıp\
|
2017-06-24 15:55:54 +02:00
|
|
|
|
Milis İşletim Sisteminin sorunsuz bir işletim sistemi olmasını sağlamayı ve yazılımsal\
|
2017-03-13 23:18:27 +01:00
|
|
|
|
olarak dışa bağımlı olmaktan kurtarmayı esas alır. Ayrıca her türlü katkıda bulunmak\
|
2017-06-24 15:55:54 +02:00
|
|
|
|
isteyenler için bulunmaz bir Türkçe açık kaynak projesidir.\
|
2017-03-13 23:18:27 +01:00
|
|
|
|
\n\n\nKuruluma devam etmek istiyor musunuz ?",width=80,height=12)
|
|
|
|
|
if status == "ok":
|
|
|
|
|
kullaniciKontrol()
|
|
|
|
|
else:
|
|
|
|
|
sys.exit()
|
|
|
|
|
|
|
|
|
|
def kullaniciKontrol():
|
|
|
|
|
|
|
|
|
|
#status ok ya da cancel gibi durumları çekiyor.
|
|
|
|
|
status,kullisim = d.inputbox(text="Lütfen kullanıcı adı giriniz")
|
|
|
|
|
|
|
|
|
|
#NAME_REGEX bkz. man 5 adduser.conf
|
|
|
|
|
if bool(re.compile(r'^[a-z][-a-z0-9]*$').match(kullisim)):
|
|
|
|
|
sifreKontrol(kullisim)
|
|
|
|
|
else:
|
|
|
|
|
status=d.msgbox(text="Hatalı kullanıcı adı girdiniz.\n\n\
|
|
|
|
|
Kullanıcı adları alfanümerik karakterle başlamalıdır\
|
|
|
|
|
ve alfanümerik (A-Z), nümerik (0-9) ve tire (-) \
|
|
|
|
|
harici bir karakter içermemelidir.",width=60)
|
|
|
|
|
if status == "ok":
|
|
|
|
|
kullaniciKontrol()
|
|
|
|
|
|
|
|
|
|
def kullaniciTanimla(isim,kullisim,kullsifre):
|
|
|
|
|
#encPass = crypt.crypt(kullsifre,"22")
|
|
|
|
|
#os.system("useradd -p "+encPass+ " -s "+ "/bin/bash "+ "-d "+ "/home/" + kullisim+ " -m "+ " -c \""+ name+"\" " + kullisim)
|
|
|
|
|
kurparam["kullanici"]["isim"]=kullisim
|
|
|
|
|
kurparam["kullanici"]["sifre"]=kullsifre
|
|
|
|
|
###os.system("kopar milis-"+isim+" "+kullisim)
|
|
|
|
|
###os.system('echo -e "'+kullsifre+'\n'+kullsifre+'" | passwd '+kullisim)
|
|
|
|
|
|
|
|
|
|
def kullaniciOlustur(isim,kullisim,kullsifre):
|
|
|
|
|
#encPass = crypt.crypt(kullsifre,"22")
|
|
|
|
|
#os.system("useradd -p "+encPass+ " -s "+ "/bin/bash "+ "-d "+ "/home/" + kullisim+ " -m "+ " -c \""+ name+"\" " + kullisim)
|
2017-03-15 00:26:00 +01:00
|
|
|
|
os.system("kopar milislinux-"+isim+" "+kullisim)
|
2017-03-13 23:18:27 +01:00
|
|
|
|
os.system('echo -e "'+kullsifre+'\n'+kullsifre+'" | passwd '+kullisim)
|
2017-03-15 00:26:00 +01:00
|
|
|
|
#masaustu ve diğer ayarların aktarılması
|
2017-03-14 11:31:06 +01:00
|
|
|
|
ayar_komut="cp -r /root/.config /home/"+kullisim+"/"
|
|
|
|
|
os.system(ayar_komut)
|
2017-04-22 19:41:27 +02:00
|
|
|
|
ayar_komut2="cp -r /root/.xinitrc /home/"+kullisim+"/"
|
|
|
|
|
os.system(ayar_komut2)
|
2017-08-24 05:52:48 +02:00
|
|
|
|
ayar_komut3="chown "+kullisim+":"+kullisim+" -R /home/"+kullisim
|
|
|
|
|
os.system(ayar_komut3)
|
2017-03-15 00:26:00 +01:00
|
|
|
|
saat_komut="saat_ayarla_tr"
|
|
|
|
|
os.system(saat_komut)
|
|
|
|
|
d.infobox(text=kullisim+" kullanıcısı başarıyla oluşturuldu.")
|
2017-03-13 23:18:27 +01:00
|
|
|
|
time.sleep(1)
|
|
|
|
|
|
|
|
|
|
def sifreKontrol(kullisim):
|
|
|
|
|
#insecure=True parolanın yıldız şeklinde gözükmesini sağlar,
|
|
|
|
|
#root şifresi sorarken belki bunu silebiliriz normal sudo şifresi
|
|
|
|
|
#girer gibi gözükmez.
|
|
|
|
|
status,kullsifre = d.passwordbox(text="Lütfen {} kullanıcısı için şifrenizi giriniz".format(kullisim),insecure=True)
|
|
|
|
|
if len(kullsifre) > 0:
|
|
|
|
|
kullaniciTanimla(kullisim,kullisim,kullsifre)
|
|
|
|
|
d.infobox(text=kullisim+" kullanıcısı başarıyla tanımlandı.")
|
|
|
|
|
time.sleep(1)
|
2017-04-09 02:37:08 +02:00
|
|
|
|
diskSecim()
|
2017-03-13 23:18:27 +01:00
|
|
|
|
else:
|
|
|
|
|
status=d.msgbox(text="Şifreniz boş olamaz")
|
|
|
|
|
sifreKontrol(kullisim)
|
|
|
|
|
|
|
|
|
|
def diskSecim():
|
|
|
|
|
diskSecimler = []
|
|
|
|
|
diskIsımler = komutCalistir("lsblk -nS -o NAME").split('\n')
|
|
|
|
|
diskModeller = komutCalistir("lsblk -nS -o MODEL").split('\n')
|
|
|
|
|
for i in range(len(diskIsımler)):
|
|
|
|
|
diskSecimler.append((diskIsımler[i],diskModeller[i]))
|
|
|
|
|
status,seciliDisk = d.menu(text="Lütfen bölümleme yapmak istediğiniz diski seçiniz:",choices=diskSecimler)
|
2017-04-09 02:37:08 +02:00
|
|
|
|
os.system("cfdisk /dev/" + seciliDisk)
|
2017-03-13 23:18:27 +01:00
|
|
|
|
bolumSec()
|
|
|
|
|
|
|
|
|
|
def bolumSec():
|
|
|
|
|
bolumSecimler = []
|
|
|
|
|
uygunBolumler = ['sd','hd','mmcblk0p']
|
|
|
|
|
#Şimdilik Parted kütüphanesine gerek kalmadı, lsblk istediğimiz bütün değerleri alıyor.
|
|
|
|
|
diskBolumler = komutCalistir("lsblk -ln -o NAME | awk '{print $1}'").split('\n')
|
|
|
|
|
bolumBoyutlar = komutCalistir("lsblk -ln -o SIZE | awk '{print $1}'").split('\n')
|
|
|
|
|
bolumDs = komutCalistir("lsblk -ln -o FSTYPE | awk '{print $1}'").split('\n')
|
|
|
|
|
bolumMajmin = komutCalistir("lsblk -ln -o MAJ:MIN | awk '{print $1}'").split('\n')
|
|
|
|
|
bolumEtiket = komutCalistir("lsblk -ln -o LABEL").split('\n') #Bunda awk yok çünkü arada boşluk olabilir.
|
|
|
|
|
for i in range(len(diskBolumler)-1):
|
|
|
|
|
if bolumMajmin[i].split(":")[1] != "0": # partition olmayanları ele (sda/sdb seçince grub bozuluyor.)
|
|
|
|
|
for uygunBolum in uygunBolumler:
|
|
|
|
|
if uygunBolum in diskBolumler[i]:
|
2017-04-14 17:35:35 +02:00
|
|
|
|
bolumSecimler.append((diskBolumler[i],bolumEtiket[i]+ "\t" +bolumBoyutlar[i]+"\t"+bolumDs[i]))
|
2017-03-13 23:18:27 +01:00
|
|
|
|
status,seciliBolum = d.menu(text="Sistemin kurulacağı diski seçiniz",choices=bolumSecimler)
|
|
|
|
|
if status == "ok":
|
|
|
|
|
print("{} seçildi !".format(seciliBolum))
|
|
|
|
|
kurparam["disk"]["bolum"]="/dev/"+seciliBolum
|
2017-03-14 10:27:58 +01:00
|
|
|
|
formatDialog(seciliBolum)
|
2017-03-13 23:18:27 +01:00
|
|
|
|
|
|
|
|
|
def formatDialog(part):
|
|
|
|
|
status = d.yesno(title="Uyarı !",
|
|
|
|
|
text="/dev/{} bölümü ext4 türünde formatlanacak. Emin misiniz ?".format(part))
|
|
|
|
|
if status == "ok":
|
2017-03-14 10:27:58 +01:00
|
|
|
|
kurparam["disk"]["format"]="evet"
|
2017-03-13 23:18:27 +01:00
|
|
|
|
else:
|
2017-03-14 10:27:58 +01:00
|
|
|
|
kurparam["disk"]["format"]="hayir"
|
|
|
|
|
takasSec(part)
|
2017-03-13 23:18:27 +01:00
|
|
|
|
|
|
|
|
|
def bolumFormatla(hedef):
|
|
|
|
|
komut="umount -l "+hedef
|
|
|
|
|
print (komut)
|
|
|
|
|
if os.path.exists(hedef):
|
|
|
|
|
os.system(komut)
|
|
|
|
|
komut2="mkfs.ext4 -F " + hedef
|
|
|
|
|
try:
|
|
|
|
|
os.system(komut2)
|
|
|
|
|
except OSError as e:
|
|
|
|
|
d.infobox(text=str(e))
|
|
|
|
|
time.sleep(1)
|
|
|
|
|
sys.exit()
|
|
|
|
|
d.infobox(text=hedef+" disk bölümü formatlandı.")
|
|
|
|
|
time.sleep(1)
|
|
|
|
|
else:
|
|
|
|
|
d.infobox(text="disk bölümü bulunamadı!")
|
|
|
|
|
time.sleep(1)
|
|
|
|
|
sys.exit()
|
|
|
|
|
|
|
|
|
|
def bolumBagla(hedef,baglam):
|
|
|
|
|
komut="mount "+hedef+" "+baglam
|
|
|
|
|
try:
|
|
|
|
|
os.system(komut)
|
|
|
|
|
except OSError as e:
|
|
|
|
|
d.infobox(text=str(e))
|
|
|
|
|
time.sleep(1)
|
|
|
|
|
sys.exit()
|
|
|
|
|
|
|
|
|
|
d.infobox(text=hedef+" "+baglam+" altına bağlandı.")
|
|
|
|
|
time.sleep(1)
|
|
|
|
|
|
|
|
|
|
def bolumCoz(hedef):
|
|
|
|
|
komut="umount -l "+hedef
|
|
|
|
|
try:
|
|
|
|
|
os.system(komut)
|
|
|
|
|
except OSError as e:
|
|
|
|
|
d.infobox(text=str(e))
|
|
|
|
|
time.sleep(1)
|
|
|
|
|
sys.exit()
|
|
|
|
|
|
|
|
|
|
d.infobox(text=hedef+" çözüldü.")
|
|
|
|
|
time.sleep(1)
|
|
|
|
|
|
|
|
|
|
def sistemKopyala(baglam):
|
|
|
|
|
os.system("clear")
|
|
|
|
|
komut=""
|
2017-06-15 07:28:30 +02:00
|
|
|
|
# kurulum.desktop silinmesi
|
|
|
|
|
komut1="rm /root/Masaüstü/kurulum.desktop"
|
|
|
|
|
komut2="rm /root/Desktop/kurulum.desktop"
|
|
|
|
|
os.system(komut1)
|
|
|
|
|
os.system(komut2)
|
2017-03-13 23:18:27 +01:00
|
|
|
|
#bazı dizinleri atlamak için ve hız rsync
|
|
|
|
|
dizinler=["bin","boot","home","lib","sources","usr","depo","etc","include","lib64","opt","root","sbin","var"]
|
|
|
|
|
yenidizinler=["srv","proc","tmp","mnt","sys","run","dev","media"]
|
|
|
|
|
i=0
|
|
|
|
|
mikdiz=len(dizinler)
|
|
|
|
|
for dizin in dizinler:
|
|
|
|
|
i+=1
|
|
|
|
|
print (i,"/",mikdiz,dizin,"kopyalanıyor.....")
|
2017-07-19 00:59:41 +02:00
|
|
|
|
#komut="rsync --delete -a --info=progress2 /"+dizin+" "+baglam+" --exclude /proc"
|
|
|
|
|
komut="rsync --delete -axHAWX --info=progress2 --numeric-ids /"+dizin+" "+baglam+" --exclude /proc"
|
2017-03-13 23:18:27 +01:00
|
|
|
|
print (dizin,"kopyalandı.")
|
|
|
|
|
os.system(komut)
|
|
|
|
|
for ydizin in yenidizinler:
|
|
|
|
|
print (ydizin,"oluşturuluyor.....")
|
|
|
|
|
komut="mkdir -p "+baglam+"/"+ydizin
|
|
|
|
|
os.system(komut)
|
|
|
|
|
print (ydizin,"oluşturuldu.")
|
2017-06-15 07:28:30 +02:00
|
|
|
|
|
2017-03-13 23:18:27 +01:00
|
|
|
|
#yükleme akışı için acp
|
|
|
|
|
#os.system("acp -g -axnu / "+baglam)
|
|
|
|
|
#normal cp
|
|
|
|
|
#os.system("cp -axvnu / "+baglam)
|
|
|
|
|
|
|
|
|
|
d.infobox(text="sistem kopyalandı.")
|
|
|
|
|
time.sleep(1)
|
|
|
|
|
|
|
|
|
|
def initrdOlustur(hedef):
|
|
|
|
|
os.system("mount --bind /dev "+hedef+"/dev")
|
|
|
|
|
os.system("mount --bind /sys "+hedef+"/sys")
|
|
|
|
|
os.system("mount --bind /proc "+hedef+"/proc")
|
|
|
|
|
os.system('chroot '+hedef+' dracut --no-hostonly --add-drivers "ahci" -f /boot/initramfs')
|
|
|
|
|
|
|
|
|
|
d.infobox(text="initrd kuruldu.")
|
|
|
|
|
time.sleep(1)
|
|
|
|
|
|
|
|
|
|
def grubKurTespit():
|
|
|
|
|
if d.yesno(text="Grub kurmak istiyor musunuz ?") == "ok":
|
|
|
|
|
kurparam["grub"]["kur"]="evet"
|
|
|
|
|
else:
|
|
|
|
|
kurparam["grub"]["kur"]="hayir"
|
|
|
|
|
kurulumBilgi()
|
|
|
|
|
|
|
|
|
|
def kurulumBilgi():
|
|
|
|
|
kurulum_yaz(kurparam,kurulum_dosya)
|
|
|
|
|
d.infobox(text="Kurulum ayarlarınız başarıyla kayıt edildi.")
|
|
|
|
|
time.sleep(1)
|
|
|
|
|
kurulumUygula(kurulum_dosya)
|
|
|
|
|
|
|
|
|
|
def grubKur(hedef,baglam):
|
|
|
|
|
hedef = hedef[:-1]
|
|
|
|
|
if hedef == "/dev/mmcblk0": #SD kart'a kurulum fix
|
|
|
|
|
os.system("grub-install --boot-directory="+baglam+"/boot /dev/mmcblk0")
|
|
|
|
|
else:
|
|
|
|
|
os.system("grub-install --boot-directory="+baglam+"/boot " + hedef)
|
|
|
|
|
os.system("chroot "+baglam+" grub-mkconfig -o /boot/grub/grub.cfg")
|
|
|
|
|
|
|
|
|
|
d.infobox(text="grub kuruldu.")
|
|
|
|
|
time.sleep(1)
|
|
|
|
|
|
|
|
|
|
def kurulumUygula(dosya):
|
|
|
|
|
#ayarların alınması
|
|
|
|
|
kurulum=kurulum_oku(dosya)
|
|
|
|
|
yazi=""
|
|
|
|
|
yazi+=paramEkran(kurulum)+"\n\n"
|
|
|
|
|
yazi+="Kurulum Ayarlarını onaylıyor musunuz?"
|
|
|
|
|
if d.yesno(text=yazi,width=50,height=70) == "ok":
|
|
|
|
|
#kurulum işlemi
|
|
|
|
|
kbolum=kurulum["disk"]["bolum"]
|
|
|
|
|
kformat=kurulum["disk"]["format"]
|
|
|
|
|
kbaglam=kurulum["disk"]["baglam"]
|
|
|
|
|
ktakas=kurulum["disk"]["takasbolum"]
|
|
|
|
|
kisim=kurulum["kullanici"]["isim"]
|
|
|
|
|
ksifre=kurulum["kullanici"]["sifre"]
|
|
|
|
|
kgrubkur=kurulum["grub"]["kur"]
|
|
|
|
|
#ayarların uygulanması
|
|
|
|
|
#formatlama
|
|
|
|
|
if kformat == "evet":
|
|
|
|
|
bolumFormatla(kbolum)
|
2017-03-17 23:33:46 +01:00
|
|
|
|
if ktakas !="":
|
|
|
|
|
takasAyarla(ktakas)
|
2017-03-13 23:18:27 +01:00
|
|
|
|
#kurulacak bölümün bağlanması
|
|
|
|
|
bolumBagla(kbolum,kbaglam)
|
|
|
|
|
#kullanıcı oluşturma
|
|
|
|
|
kullaniciOlustur(kisim,kisim,ksifre)
|
|
|
|
|
#sistemin kopyalanması
|
|
|
|
|
sistemKopyala(kbaglam)
|
|
|
|
|
#initrd oluşturulması
|
|
|
|
|
initrdOlustur(kbaglam)
|
2017-03-17 23:33:46 +01:00
|
|
|
|
#grub kurulması
|
2017-03-13 23:18:27 +01:00
|
|
|
|
if kgrubkur == "evet":
|
|
|
|
|
grubKur(kbolum,kbaglam)
|
|
|
|
|
bolumCoz(kbolum)
|
|
|
|
|
d.infobox(text="Milis İşletim Sistemi başarıyla kuruldu.")
|
|
|
|
|
else:
|
|
|
|
|
if d.yesno(text="Kurulumdan Çıkış?") == "ok":
|
|
|
|
|
sys.exit()
|
|
|
|
|
else:
|
|
|
|
|
karsilamaEkrani()
|
|
|
|
|
|
|
|
|
|
def takasSec(kbolum):
|
|
|
|
|
if d.yesno(text="Takas alanı kullanmak istiyor musunuz ?") == "ok":
|
|
|
|
|
takasSecimler = []
|
|
|
|
|
uygunBolumler = ['sd','hd','mmcblk0p']
|
|
|
|
|
#Şimdilik Parted kütüphanesine gerek kalmadı, lsblk istediğimiz bütün değerleri alıyor.
|
|
|
|
|
diskBolumler = komutCalistir("lsblk -ln -o NAME | awk '{print $1}'").split('\n')
|
|
|
|
|
bolumBoyutlar = komutCalistir("lsblk -ln -o SIZE | awk '{print $1}'").split('\n')
|
|
|
|
|
bolumDs = komutCalistir("lsblk -ln -o FSTYPE | awk '{print $1}'").split('\n')
|
|
|
|
|
bolumMajmin = komutCalistir("lsblk -ln -o MAJ:MIN | awk '{print $1}'").split('\n')
|
|
|
|
|
bolumEtiket = komutCalistir("lsblk -ln -o LABEL").split('\n') #Bunda awk yok çünkü arada boşluk olabilir.
|
|
|
|
|
for i in range(len(diskBolumler)-1):
|
|
|
|
|
if bolumMajmin[i].split(":")[1] != "0": # partition olmayanları ele (sda/sdb swap için uygun değil)
|
|
|
|
|
if diskBolumler[i] != kbolum:
|
|
|
|
|
for uygunBolum in uygunBolumler:
|
|
|
|
|
if uygunBolum in diskBolumler[i]: #loop partlar gibi swap kurulamayacak alanları ele
|
2017-03-14 13:16:45 +01:00
|
|
|
|
if bolumDs[i] == "swap":
|
|
|
|
|
takasSecimler.append((diskBolumler[i],bolumEtiket[i]+ "\t" +bolumBoyutlar[i]+"\t"+bolumDs[i]))
|
2017-05-26 01:04:00 +02:00
|
|
|
|
if takasSecimler:
|
2017-05-26 01:05:39 +02:00
|
|
|
|
status,seciliBolum = d.menu(text="Takas alanının yer alacağı disk bölümünü seçiniz",choices=takasSecimler)
|
2017-05-26 01:04:00 +02:00
|
|
|
|
if status == "ok":
|
|
|
|
|
print("{} seçildi !".format(seciliBolum))
|
|
|
|
|
kurparam["disk"]["takasbolum"]="/dev/"+seciliBolum
|
|
|
|
|
else:
|
|
|
|
|
kurparam["disk"]["takasbolum"]=""
|
2017-03-13 23:18:27 +01:00
|
|
|
|
else:
|
|
|
|
|
kurparam["disk"]["takasbolum"]=""
|
|
|
|
|
grubKurTespit()
|
|
|
|
|
|
2017-03-17 23:33:46 +01:00
|
|
|
|
def takasAyarla(bolum):
|
2017-03-13 23:18:27 +01:00
|
|
|
|
os.system("mkswap "+"/dev/"+bolum)
|
|
|
|
|
os.system('echo "`lsblk -ln -o UUID /dev/' + bolum + '` none swap sw 0 0" | tee -a /etc/fstab')
|
|
|
|
|
|
2017-03-14 10:27:58 +01:00
|
|
|
|
def main():
|
2017-03-13 23:18:27 +01:00
|
|
|
|
if len(sys.argv) == 1:
|
|
|
|
|
karsilamaEkrani()
|
|
|
|
|
else:
|
|
|
|
|
dosya=sys.argv[1]
|
|
|
|
|
if os.path.exists(dosya):
|
|
|
|
|
kurulumUygula(dosya)
|
|
|
|
|
else:
|
|
|
|
|
d.infobox(text=dosya+" bulunamadı!")
|
|
|
|
|
time.sleep(1)
|
2017-03-14 10:27:58 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
|
|
|
|
|
|
main()
|
|
|
|
|
|
|
|
|
|
|