Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 7.95 KB | None | 0 0
  1. #! /usr/bin/python
  2.  
  3. import sys
  4. import os.path
  5. import pygtk
  6. import gtk
  7. import os
  8.  
  9. from threading import Thread
  10. import time
  11. import gobject
  12. gtk.gdk.threads_init()
  13.  
  14.  
  15. gtk.gdk.threads_init()
  16.  
  17.  
  18. class App (gtk.Window):
  19.         def __init__(self):
  20.                 super(App, self).__init__()
  21.  
  22.                 #print sys.argv,
  23.                 if len(sys.argv)<4 or len(sys.argv)>5:
  24.                         sys.exit()
  25.                 self.lista_parametri=sys.argv
  26.  
  27. ###########################################################################################################
  28. ###### Verificarea fisierelor err. ########################################################################
  29. ###########################################################################################################
  30.         listOfDirs_filename = "/tmp/CEVA"
  31.         listOfFiles = ""
  32.         dirName = ""
  33.         errFile = ""
  34.         partitionsNames = ""
  35.         unexpectedError = 0
  36.         try:
  37.             f = open(listOfDirs_filename)
  38.             lines = f.readlines()
  39.            
  40.             for dirName in lines:
  41.                 dirName = dirName.replace("\n","")
  42.                 listOfFiles = os.listdir(dirName)
  43.                 #print listOfFiles, "\n",
  44.                 for fileOrDirName in listOfFiles:
  45.                     errFile = os.path.join(dirName,fileOrDirName)
  46.                     if((fileOrDirName.rfind(".err") != -1) and (os.path.isfile(errFile))):
  47.                         #print "Fisier gasit: ", errFile, "\n",
  48.                         fisier = open(errFile)
  49.                         l1 = fisier.readlines()
  50.                         if(len(l1)>=2):
  51.                             if(l1[0].split("+")[0] != l1[1].split("+")[0]):
  52.                                 partitionsNames = partitionsNames + fileOrDirName.split(".err")[0] + ", "
  53.         except IOError:
  54.             print "IO error on file ", listOfDirs_filename, "!\n",
  55.             unexpectedError = 1
  56.         except OSError:
  57.             print "OS error on file ", dirName, "!\n",
  58.             unexpectedError = 2
  59. ###########################################################################################################
  60. ###########################################################################################################
  61.  
  62.                 self.set_size_request(520, 320)
  63.                 self.set_position(gtk.WIN_POS_CENTER)
  64.                 self.set_title(' ')
  65.                 self.fixed = gtk.Fixed()
  66.  
  67.                 txt = sys.argv[1]
  68.                 self.label = gtk.Label("The process is now finished! There were " + txt + " copied.")
  69.                 txt = sys.argv[2]
  70.                 self.label0 = gtk.Label("There are "+txt+" left on the destination drive.")
  71.                 self.label1 = gtk.Label("Please enter a password now to secure the data.")
  72.                 self.label2 = gtk.Label("***DO NOT FORGET THIS PASSWORD***")
  73.                 self.labelPWE = gtk.Label("")
  74.                 if(unexpectedError == 0):
  75.                         if(len(partitionsNames)>1):
  76.                                 self.labelPWE = gtk.Label("Device "+partitionsNames+" contained corrupt sectors!")
  77.                         else:
  78.                                 self.labelPWE = gtk.Label("No Corrupt Sectors were found.")
  79.  
  80.                 self.pswlabel1=gtk.Label("Password:")
  81.                 self.pswlabel2=gtk.Label("Verify Password:")
  82.                 self.pswentry1 = gtk.Entry()
  83.                 self.pswentry1.set_max_length(30)
  84.                 self.pswentry1.set_visibility(0)
  85.  
  86.                 self.pswentry2 = gtk.Entry()
  87.                 self.pswentry2.set_max_length(30)
  88.                 self.pswentry2.set_visibility(0)
  89.  
  90.                 self.btn = gtk.Button("ENTER")
  91.                 self.btn.set_size_request(100, 30)
  92.                 self.btn.connect("clicked", self.onclick,self.pswentry1,self.pswentry2)
  93.  
  94.                 self.label3 = gtk.Label("")
  95.                 self.label4 = gtk.Label("")
  96.  
  97.  
  98.                 testf = os.path.isfile("/tmp/FALSE")
  99.                 if(testf==False):
  100.                         try:
  101.                                 f = open("/tmp/LOG","r+")
  102.                                 l = f.readlines()
  103.                                 loe = ""
  104.                                 for s in l:
  105.                                         lw=s.split()
  106.                                         if(s.find("failed")!=-1):
  107.                                                 loe=loe+lw[3]+", ";
  108.                                 if(loe==""):
  109.                                         self.label3 = gtk.Label("Image Verification is successful.")
  110.                                 else:
  111.                                         self.label3 = gtk.Label("Image verification was not successful for "+loe)
  112.                                         self.label4 = gtk.Label("please refer to the logs for more detail.")
  113.                         except IOError:
  114.                                 print "Eroare",
  115.  
  116.  
  117.  
  118.                 self.fixed.put(self.btn, 400, 270)
  119.                 self.fixed.put(self.labelPWE,50,10)
  120.                 self.fixed.put(self.label, 50,30)
  121.                 self.fixed.put(self.label0, 50,50)
  122.                 self.fixed.put(self.label3, 50,80)
  123.                 self.fixed.put(self.label4, 50,100)
  124.                 self.fixed.put(self.label1,100,130)
  125.                 self.fixed.put(self.label2,100,150)
  126.                 self.fixed.put(self.pswlabel1,40,190)
  127.                 self.fixed.put(self.pswlabel2,40,220)
  128.                 self.fixed.put(self.pswentry1,170,190)
  129.                 self.fixed.put(self.pswentry2,170,220)
  130.  
  131.                 #self.connect("destroy", gtk.main_quit)
  132.  
  133.  
  134.                 self.add(self.fixed)
  135.                 self.show_all()
  136.  
  137.  
  138.         def onclick (self, widget,pswe1,pswe2):
  139.                 if(len(pswe1.get_text())==0 or len(pswe2.get_text())==0):
  140.                         mess="An entry is empty"
  141.                         if len(pswe1.get_text())==0 and len(pswe2.get_text())==0:
  142.                                 mess="Please, enter the passwords"
  143.                         md=gtk.MessageDialog(self, gtk.DIALOG_MODAL, gtk.MESSAGE_INFO, gtk.BUTTONS_OK, mess)
  144.                         md.run()
  145.                         md.destroy()
  146.                         return
  147.  
  148.                 if pswe1.get_text()==pswe2.get_text():
  149.                         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'
  150.                         comanda2=''
  151.  
  152.                         self.label2.set_text("Please wait...")
  153.                         self.labelPWE.destroy()
  154.                         self.label1.destroy()
  155.                         self.label0.destroy()
  156.                         self.label3.destroy()
  157.                         self.label4.destroy()
  158.                         self.label.destroy()
  159.                         self.btn.destroy()
  160.                         self.pswlabel1.destroy()
  161.                         self.pswlabel2.destroy()
  162.                         self.pswentry1.destroy()
  163.                         self.pswentry2.destroy()
  164.  
  165.                         if(len(self.lista_parametri)==4):
  166.                                 self.thread_start(comanda1)
  167.                         else:
  168.                                 if(len(self.lista_parametri)==5):
  169.                                         comanda2='/usr/bin/truecrypt --password=SKOUT2010 -k "" -C '+self.lista_parametri[4]+' --new-password=$mypsw --new-keyfiles="" --random-source=/scripts/local'
  170.                                         self.thread_start(comanda1+';'+comanda2)
  171.                         return
  172.                 md=gtk.MessageDialog(self, gtk.DIALOG_MODAL, gtk.MESSAGE_INFO, gtk.BUTTONS_OK, "Passwords do not match")
  173.                 md.run()
  174.                 md.destroy()
  175.  
  176.         def thread_start(self,argument):
  177.                 Thread(target=self.start_job, args=(argument,)).start()
  178.  
  179.         def start_job(self,argument):
  180.                 import subprocess
  181.                 #print "Iaca ce se duce la shell:\n"+argument+"\n"
  182.                 subprocess.call(argument,shell=True)
  183.                 gtk.main_quit()
  184.  
  185.  
  186.         def main (self, argv):
  187.                 gtk.main()
  188.  
  189. if __name__ ==  "__main__":
  190.         app = App()
  191.         app.main(sys.argv)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement