From 4d9513a556cae84536679f722c08833baea16205 Mon Sep 17 00:00:00 2001 From: Furkan Kalkan Date: Sun, 25 Sep 2016 14:48:54 +0300 Subject: [PATCH] =?UTF-8?q?Milis=20Konsol/Grafiksel=20kurulum=20beti=C4=9F?= =?UTF-8?q?i=20eklendi?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ilk commit, eksik fonksiyonlar var yakında düzeltilecek. --- bin/miliskur-test.py | 74 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 bin/miliskur-test.py diff --git a/bin/miliskur-test.py b/bin/miliskur-test.py new file mode 100644 index 000000000..8362f4505 --- /dev/null +++ b/bin/miliskur-test.py @@ -0,0 +1,74 @@ +# Milis Linux Konsol / Grafik Kurulum Betiği +# Not: Bu betik henüz tamamlanmış değil. +# Commit tarihi: 25.09.2016 +# Dialog manuali için: http://pythondialog.sourceforge.net/doc/ + + +from dialog import Dialog +import re,sys,subprocess + +d = Dialog(dialog="dialog") +f = open("/tmp/log.txt","w") + +def runShellCommand(c): + out = subprocess.check_output(c,stderr=subprocess.STDOUT,shell=True,universal_newlines=True) + return out.replace("\b","") #encode byte format to string, ugly hack + +def greetingDialog(): + status = d.yesno(title="Milis Linux'a hoş geldiniz !", + text="Tanıtım yazısı buraya gelecek...\n\n\n\nKuruluma devam etmek istiyor musunuz ?",width=70,height=10) + if status == "ok": + checkUsername() + else: + sys.exit() + +def checkUsername(): + #NAME_REGEX bkz. man 5 adduser.conf + pattern = re.compile("/^([A-Z][0-9]+)*$/") + + #status ok ya da cancel gibi durumları çekiyor. + status,username = d.inputbox(text="Lütfen kullanıcı adı giriniz") + + if bool(re.compile(r'^[a-z][-a-z0-9]*$').match(username)): + checkUserPassword(username) + 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": + checkUsername() + +def checkUserPassword(username): + #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,password = d.passwordbox(text="Lütfen {} kullanıcısı için şifrenizi giriniz".format(username),insecure=True) + if len(password) > 0: + #buraya kullanıcı ekleme kodu eklenecek. Şuan kendi sistemimde yazıyorum sıkıntı çıkmasın diye implemente etmedim. + f.write("[+] Kullanıcı eklendi") + if d.yesno(text="Yeni kullanıcı eklemek istiyor musunuz ?") == "ok": + checkUsername() + else: + chooseDisk() + + + else: + status=d.msgbox(text="Şifreniz boş olamaz") + checkUserPassword(username) + +def chooseDisk(): + choice = [] + #Burayı parted kütüphanesi ile yapmayı düşünüyorum. (Partition title, boyut ve dosya türünü de gösterecek) + diskParts = runShellCommand("cat /proc/partitions | awk '{print $NF}'|\ + sed s'/name//g;'/^\s*$/d''| sed '/[0-9]/!d'") + diskParts = diskParts.split('\n') + for partition in diskParts: + choice.append((partition,partition)) + status,selectedPart = d.menu(text="Sistemin kurulacağı diski seçiniz",choices=choice) + if status == "ok": + f.write("{} seçildi !".format(selectedPart)) #burası da düzeltilcek şimdilik böyle commitliyorum :D + print("{} seçildi !".format(selectedPart)) + + +greetingDialog()