Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #! /usr/bin/python
- import sys
- import os.path
- import pygtk
- import gtk
- import os
- from threading import Thread
- import time
- import gobject
- gtk.gdk.threads_init()
- gtk.gdk.threads_init()
- class App (gtk.Window):
- def __init__(self):
- super(App, self).__init__()
- #print sys.argv,
- if len(sys.argv)<4 or len(sys.argv)>5:
- sys.exit()
- self.lista_parametri=sys.argv
- ###########################################################################################################
- ###### Verificarea fisierelor err. ########################################################################
- ###########################################################################################################
- listOfDirs_filename = "/tmp/CEVA"
- listOfFiles = ""
- dirName = ""
- errFile = ""
- partitionsNames = ""
- unexpectedError = 0
- try:
- f = open(listOfDirs_filename)
- lines = f.readlines()
- for dirName in lines:
- dirName = dirName.replace("\n","")
- listOfFiles = os.listdir(dirName)
- #print listOfFiles, "\n",
- for fileOrDirName in listOfFiles:
- errFile = os.path.join(dirName,fileOrDirName)
- if((fileOrDirName.rfind(".err") != -1) and (os.path.isfile(errFile))):
- #print "Fisier gasit: ", errFile, "\n",
- fisier = open(errFile)
- l1 = fisier.readlines()
- if(len(l1)>=2):
- if(l1[0].split("+")[0] != l1[1].split("+")[0]):
- partitionsNames = partitionsNames + fileOrDirName.split(".err")[0] + ", "
- except IOError:
- print "IO error on file ", listOfDirs_filename, "!\n",
- unexpectedError = 1
- except OSError:
- print "OS error on file ", dirName, "!\n",
- unexpectedError = 2
- ###########################################################################################################
- ###########################################################################################################
- self.set_size_request(520, 320)
- self.set_position(gtk.WIN_POS_CENTER)
- self.set_title(' ')
- self.fixed = gtk.Fixed()
- txt = sys.argv[1]
- self.label = gtk.Label("The process is now finished! There were " + txt + " copied.")
- txt = sys.argv[2]
- self.label0 = gtk.Label("There are "+txt+" left on the destination drive.")
- self.label1 = gtk.Label("Please enter a password now to secure the data.")
- self.label2 = gtk.Label("***DO NOT FORGET THIS PASSWORD***")
- self.labelPWE = gtk.Label("")
- if(unexpectedError == 0):
- if(len(partitionsNames)>1):
- self.labelPWE = gtk.Label("Device "+partitionsNames+" contained corrupt sectors!")
- else:
- self.labelPWE = gtk.Label("No Corrupt Sectors were found.")
- self.pswlabel1=gtk.Label("Password:")
- self.pswlabel2=gtk.Label("Verify Password:")
- self.pswentry1 = gtk.Entry()
- self.pswentry1.set_max_length(30)
- self.pswentry1.set_visibility(0)
- self.pswentry2 = gtk.Entry()
- self.pswentry2.set_max_length(30)
- self.pswentry2.set_visibility(0)
- self.btn = gtk.Button("ENTER")
- self.btn.set_size_request(100, 30)
- self.btn.connect("clicked", self.onclick,self.pswentry1,self.pswentry2)
- self.label3 = gtk.Label("")
- self.label4 = gtk.Label("")
- testf = os.path.isfile("/tmp/FALSE")
- if(testf==False):
- try:
- f = open("/tmp/LOG","r+")
- l = f.readlines()
- loe = ""
- for s in l:
- lw=s.split()
- if(s.find("failed")!=-1):
- loe=loe+lw[3]+", ";
- if(loe==""):
- self.label3 = gtk.Label("Image Verification is successful.")
- else:
- self.label3 = gtk.Label("Image verification was not successful for "+loe)
- self.label4 = gtk.Label("please refer to the logs for more detail.")
- except IOError:
- print "Eroare",
- self.fixed.put(self.btn, 400, 270)
- self.fixed.put(self.labelPWE,50,10)
- self.fixed.put(self.label, 50,30)
- self.fixed.put(self.label0, 50,50)
- self.fixed.put(self.label3, 50,80)
- self.fixed.put(self.label4, 50,100)
- self.fixed.put(self.label1,100,130)
- self.fixed.put(self.label2,100,150)
- self.fixed.put(self.pswlabel1,40,190)
- self.fixed.put(self.pswlabel2,40,220)
- self.fixed.put(self.pswentry1,170,190)
- self.fixed.put(self.pswentry2,170,220)
- #self.connect("destroy", gtk.main_quit)
- self.add(self.fixed)
- self.show_all()
- def onclick (self, widget,pswe1,pswe2):
- if(len(pswe1.get_text())==0 or len(pswe2.get_text())==0):
- mess="An entry is empty"
- if len(pswe1.get_text())==0 and len(pswe2.get_text())==0:
- mess="Please, enter the passwords"
- md=gtk.MessageDialog(self, gtk.DIALOG_MODAL, gtk.MESSAGE_INFO, gtk.BUTTONS_OK, mess)
- md.run()
- md.destroy()
- return
- if pswe1.get_text()==pswe2.get_text():
- comanda1='mypsw='+pswe1.get_text()+';/usr/bin/truecrypt --password=SKOUT2010 -k "" -C '+self.lista_parametri[3]+' --new-password=$mypsw --new-keyfiles="" --random-source=/scripts/local'
- comanda2=''
- self.label2.set_text("Please wait...")
- self.labelPWE.destroy()
- self.label1.destroy()
- self.label0.destroy()
- self.label3.destroy()
- self.label4.destroy()
- self.label.destroy()
- self.btn.destroy()
- self.pswlabel1.destroy()
- self.pswlabel2.destroy()
- self.pswentry1.destroy()
- self.pswentry2.destroy()
- if(len(self.lista_parametri)==4):
- self.thread_start(comanda1)
- else:
- if(len(self.lista_parametri)==5):
- comanda2='/usr/bin/truecrypt --password=SKOUT2010 -k "" -C '+self.lista_parametri[4]+' --new-password=$mypsw --new-keyfiles="" --random-source=/scripts/local'
- self.thread_start(comanda1+';'+comanda2)
- return
- md=gtk.MessageDialog(self, gtk.DIALOG_MODAL, gtk.MESSAGE_INFO, gtk.BUTTONS_OK, "Passwords do not match")
- md.run()
- md.destroy()
- def thread_start(self,argument):
- Thread(target=self.start_job, args=(argument,)).start()
- def start_job(self,argument):
- import subprocess
- #print "Iaca ce se duce la shell:\n"+argument+"\n"
- subprocess.call(argument,shell=True)
- gtk.main_quit()
- def main (self, argv):
- gtk.main()
- if __name__ == "__main__":
- app = App()
- app.main(sys.argv)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement