##// END OF EJS Templates
***
ralonso -
r36:37
parent child
Show More
@@ -1,495 +1,496
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2
2
3 """
3 """
4 Module implementing MainWindow.
4 Module implementing MainWindow.
5 """
5 """
6
6
7 from PyQt4.QtGui import QMainWindow
7 from PyQt4.QtGui import QMainWindow
8 from PyQt4.QtCore import pyqtSignature
8 from PyQt4.QtCore import pyqtSignature
9 from Ui_MainWindow import Ui_MainWindow
9 from Ui_MainWindow import Ui_MainWindow
10 from PyQt4 import QtGui
10 from PyQt4 import QtGui
11 from subprocess import *
11 from subprocess import *
12 import sys
12 import sys
13 import os
13 import os
14 import subprocess
14 import subprocess
15 import commands
15 import commands
16
16
17 class MainWindow(QMainWindow, Ui_MainWindow):
17 class MainWindow(QMainWindow, Ui_MainWindow):
18 """
18 """
19 Class documentation goes here.
19 Class documentation goes here.
20 """
20 """
21
21
22 def __init__(self, parent = None):
22 def __init__(self, parent = None):
23 QMainWindow.__init__(self, parent)
23 QMainWindow.__init__(self, parent)
24 self.setupUi(self)
24 self.setupUi(self)
25 self.setupUi2()
25 self.setupUi2()
26
26
27 #redirige salida estandar
27 #redirige salida estandar
28 sys.stdout = self
28 sys.stdout = self
29
29
30
30
31 def setupUi2(self):
31 def setupUi2(self):
32 """
32 """
33 Se usa para inicializar ciertos parametros para pruebas
33 Se usa para inicializar ciertos parametros para pruebas
34 """
34 """
35 self.txtDpath.setText('/home/ricardoar/optional/STORAGE/Data/RAW_EXP/JASMET/')
35 self.txtDpath.setText('/home/ricardoar/optional/STORAGE/Data/RAW_EXP/JASMET/')
36 self.txtRpath.setText('/home/ricardoar/optional/STORAGE/prueba1_jro_backup_manager')
36 self.txtRpath.setText('/home/ricardoar/optional/STORAGE/prueba1_jro_backup_manager')
37 self.txtElabel.setText('JASMET')
37 self.txtElabel.setText('JASMET')
38 self.statusDpath = True
38 self.statusDpath = True
39 self.statusRpath = True
39 self.statusRpath = True
40 # self.statusDpath = False
40 # self.statusDpath = False
41 # self.statusRpath = False
41 # self.statusRpath = False
42
42
43
43
44 #
44 #
45 #Deteccion de los dispositvos de grabacion
45 #Deteccion de los dispositvos de grabacion
46 #
46 #
47 #var_cmd="wodim --devices | grep /dev/ | awk -F\' '{print $2}'" #Funciona en consola pero no en python ΒΏ?
47 #var_cmd="wodim --devices | grep /dev/ | awk -F\' '{print $2}'" #Funciona en consola pero no en python ΒΏ?
48 var_cmd="wodim --devices | grep /dev/ | awk '{print $2}' | awk -F= '{print $2}'"
48 var_cmd="wodim --devices | grep /dev/ | awk '{print $2}' | awk -F= '{print $2}'"
49 var_output = commands.getstatusoutput(var_cmd)
49 var_output = commands.getstatusoutput(var_cmd)
50 if var_output[0] != 0:
50 if var_output[0] != 0:
51 self.txtInfo.setText("No se pudo encontrar los dispositivos de grabacion, output_error:" + str(var_output))
51 self.txtInfo.setText("No se pudo encontrar los dispositivos de grabacion, output_error:" + str(var_output))
52 else:
52 else:
53 self.txtInfo.append("dispositivos encontrados")
53 self.txtInfo.append("dispositivos encontrados")
54 var_devices = var_output[1].split('\n')
54 var_devices = var_output[1].split('\n')
55
55
56 var_tmp=[]
56 var_tmp=[]
57 for i in range(0, 4):
57 for i in range(0, 4):
58 if i < len(var_devices):
58 if i < len(var_devices):
59 var_len = len(var_devices[i])
59 var_len = len(var_devices[i])
60 var_tmp.append(var_devices[i][1:var_len - 1])
60 var_tmp.append(var_devices[i][1:var_len - 1])
61 else:
61 else:
62 var_tmp.append('')
62 var_tmp.append('')
63
63
64 #Se escriben los dispostivos correspodientes, si existen
64 #Se escriben los dispostivos correspodientes, si existen
65 self.txtDeviceA.setText(str(var_tmp[0]))
65 self.txtDeviceA.setText(str(var_tmp[0]))
66 self.txtDeviceB.setText(str(var_tmp[1]))
66 self.txtDeviceB.setText(str(var_tmp[1]))
67 self.txtDeviceC.setText(str(var_tmp[2]))
67 self.txtDeviceC.setText(str(var_tmp[2]))
68 self.txtDeviceD.setText(str(var_tmp[3]))
68 self.txtDeviceD.setText(str(var_tmp[3]))
69 #Se desactivan los que no existen
69 #Se desactivan los que no existen
70 if len(var_tmp[0]) == 0 :
70 if len(var_tmp[0]) == 0 :
71 self.chkDevA.setChecked(False)
71 self.chkDevA.setChecked(False)
72 self.chkDevA.setEnabled(False)
72 self.chkDevA.setEnabled(False)
73 if len(var_tmp[1]) == 0 :
73 if len(var_tmp[1]) == 0 :
74 self.chkDevB.setChecked(False)
74 self.chkDevB.setChecked(False)
75 self.chkDevB.setEnabled(False)
75 self.chkDevB.setEnabled(False)
76 if len(var_tmp[2]) == 0 :
76 if len(var_tmp[2]) == 0 :
77 self.chkDevC.setChecked(False)
77 self.chkDevC.setChecked(False)
78 self.chkDevC.setEnabled(False)
78 self.chkDevC.setEnabled(False)
79 if len(var_tmp[3]) == 0 :
79 if len(var_tmp[3]) == 0 :
80 self.chkDevD.setChecked(False)
80 self.chkDevD.setChecked(False)
81 self.chkDevD.setEnabled(False)
81 self.chkDevD.setEnabled(False)
82
82
83
83
84 def write(self, txt):
84 def write(self, txt):
85 """
85 """
86 Escribe la salida estandar eb txtInfo
86 Escribe la salida estandar eb txtInfo
87 """
87 """
88 self.txtInfo.append(str(txt))
88 self.txtInfo.append(str(txt))
89
89
90
90
91 @pyqtSignature("")
91 @pyqtSignature("")
92 def on_btnDpath_clicked(self):
92 def on_btnDpath_clicked(self):
93 """
93 """
94 Permite seleccionar graficamente el direcorio de los datos a grabar
94 Permite seleccionar graficamente el direcorio de los datos a grabar
95 """
95 """
96 var_Dpath= QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly)
96 var_Dpath= QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly)
97 self.txtDpath.setText(var_Dpath)
97 self.txtDpath.setText(var_Dpath)
98
98
99 #llamada a funcion
99 #llamada a funcion
100 self.on_txtDpath_editingFinished()
100 self.on_txtDpath_editingFinished()
101
101
102
102
103 @pyqtSignature("")
103 @pyqtSignature("")
104 def on_btnRpath_clicked(self):
104 def on_btnRpath_clicked(self):
105 """
105 """
106 Permite seleccionar graficamente el direcorio del proyecto
106 Permite seleccionar graficamente el direcorio del proyecto
107 """
107 """
108 var_Rpath = QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly)
108 var_Rpath = QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly)
109 self.txtRpath.setText(var_Rpath)
109 self.txtRpath.setText(var_Rpath)
110
110
111 #llamada a funcion
111 #llamada a funcion
112 self.on_txtRpath_editingFinished()
112 self.on_txtRpath_editingFinished()
113
113
114
114
115 @pyqtSignature("")
115 @pyqtSignature("")
116 def on_txtDpath_editingFinished(self):
116 def on_txtDpath_editingFinished(self):
117 """
117 """
118 Permite buscar los archivos de extension seleccionada en la ruta de de datos
118 Permite buscar los archivos de extension seleccionada en la ruta de de datos
119 y cargar los valores para el rango de tiempo a ser grabado
119 y cargar los valores para el rango de tiempo a ser grabado
120 """
120 """
121
121
122 #Usando el modulo "subprocess", eric4 pide seleccion del tipo de subproceso (padre o hijo)
122 #Usando el modulo "subprocess", eric4 pide seleccion del tipo de subproceso (padre o hijo)
123 #por ello se prefiere usar el modulo "commands"
123 #por ello se prefiere usar el modulo "commands"
124 #p1= Popen(['find', var_Dpath, '-name', '*.r'], stdout=PIPE)
124 #p1= Popen(['find', var_Dpath, '-name', '*.r'], stdout=PIPE)
125 #p2= Popen(['awk', '-F/', '{print substr($NF,2,7)}'], stdin=p1.stdout, stdout=PIPE)
125 #p2= Popen(['awk', '-F/', '{print substr($NF,2,7)}'], stdin=p1.stdout, stdout=PIPE)
126 #output_p2= p2.communicate()[0]
126 #output_p2= p2.communicate()[0]
127 #self.txtInfo.setText(output_p2)
127 #self.txtInfo.setText(output_p2)
128
128
129 #Se carga la variable con la ruta de datos
129 #Se carga la variable con la ruta de datos
130 var_Dpath=self.txtDpath.text()
130 var_Dpath=self.txtDpath.text()
131
131
132 #Se verifica que la ruta exista y sea un directorio
132 #Se verifica que la ruta exista y sea un directorio
133 var_cmd="test -d "+str(var_Dpath)
133 var_cmd="test -d "+str(var_Dpath)
134 var_output=commands.getstatusoutput(var_cmd)[0]
134 var_output=commands.getstatusoutput(var_cmd)[0]
135 if var_output != 0:
135 if var_output != 0:
136 self.statusDpath = False
136 self.statusDpath = False
137 self.txtInfo.setText("Ruta no valida, output_error:" + str(var_output))
137 self.txtInfo.setText("Ruta no valida, output_error:" + str(var_output))
138 return
138 return
139 else:
139 else:
140 self.statusDpath = True
140 self.statusDpath = True
141 self.txtInfo.append("Ruta valida, sin error:" + str(var_Dpath))
141 self.txtInfo.append("Ruta valida, sin error:" + str(var_Dpath))
142
142
143 #Se buscan los archivos del tipo especificado
143 #Se buscan los archivos del tipo especificado
144 var_Dtype=self.txtDtype.text()
144 var_Dtype=self.txtDtype.text()
145 var_cmd="find " + str(var_Dpath) + " -name *."+ str(var_Dtype) +" | awk -F/ '{print substr($NF,2,7)}' | sort| uniq"
145 var_cmd="find " + str(var_Dpath) + " -name *."+ str(var_Dtype) +" | awk -F/ '{print substr($NF,2,7)}' | sort| uniq"
146 output_p2=commands.getstatusoutput(var_cmd)[1]
146 output_p2=commands.getstatusoutput(var_cmd)[1]
147
147
148 #Se cargan las listas para seleccionar StartDay y StopDay (QComboBox)
148 #Se cargan las listas para seleccionar StartDay y StopDay (QComboBox)
149 self.var_list=[]
149 self.var_list=[]
150 for i in range(0, (len(output_p2)+1)/8):
150 for i in range(0, (len(output_p2)+1)/8):
151 self.var_list.append(output_p2[8*i:8*(i+1)-1])
151 self.var_list.append(output_p2[8*i:8*(i+1)-1])
152
152
153 self.lstStartDay.clear()
153 self.lstStartDay.clear()
154 self.lstStopDay.clear()
154 self.lstStopDay.clear()
155
155
156 for i in self.var_list:
156 for i in self.var_list:
157 self.lstStartDay.addItem(i)
157 self.lstStartDay.addItem(i)
158 self.lstStopDay.addItem(i)
158 self.lstStopDay.addItem(i)
159
159
160 self.lstStopDay.setCurrentIndex(self.lstStartDay.count()-1)
160 self.lstStopDay.setCurrentIndex(self.lstStartDay.count()-1)
161
161
162
162
163 @pyqtSignature("")
163 @pyqtSignature("")
164 def on_txtRpath_editingFinished(self):
164 def on_txtRpath_editingFinished(self):
165 """
165 """
166 Valida la ruta del proyecto
166 Valida la ruta del proyecto
167 """
167 """
168 #Se carga la variable con la ruta del proyecto
168 #Se carga la variable con la ruta del proyecto
169 var_Rpath=self.txtRpath.text()
169 var_Rpath=self.txtRpath.text()
170
170
171 #Se verifica que la ruta exista y sea un directorio
171 #Se verifica que la ruta exista y sea un directorio
172 var_cmd="test -d "+str(var_Rpath)
172 var_cmd="test -d "+str(var_Rpath)
173 var_output=commands.getstatusoutput(var_cmd)[0]
173 var_output=commands.getstatusoutput(var_cmd)[0]
174 if var_output != 0:
174 if var_output != 0:
175 self.statusRpath = False
175 self.statusRpath = False
176 self.txtInfo.append("Ruta no valida, output_error:" + str(var_output))
176 self.txtInfo.append("Ruta no valida, output_error:" + str(var_output))
177 return
177 return
178 else:
178 else:
179 self.statusRpath = True
179 self.statusRpath = True
180 self.txtInfo.append("Ruta valida, sin error:" + str(var_Rpath))
180 self.txtInfo.append("Ruta valida, sin error:" + str(var_Rpath))
181
181
182
182
183 @pyqtSignature("int")
183 @pyqtSignature("int")
184 def on_lstDtype_activated(self, index):
184 def on_lstDtype_activated(self, index):
185 """
185 """
186 Permite elegir entre los tipos de archivos
186 Permite elegir entre los tipos de archivos
187 """
187 """
188 if index == 0:
188 if index == 0:
189 var_type='r'
189 var_type='r'
190 elif index == 1:
190 elif index == 1:
191 var_type='pdata'
191 var_type='pdata'
192 elif index == 2:
192 elif index == 2:
193 var_type='sswma'
193 var_type='sswma'
194
194
195 if index != 3:
195 if index != 3:
196 self.txtDtype.setText(var_type)
196 self.txtDtype.setText(var_type)
197 self.txtDtype.setReadOnly(True)
197 self.txtDtype.setReadOnly(True)
198 self.on_txtDpath_editingFinished()
198 self.on_txtDpath_editingFinished()
199 else:
199 else:
200 self.txtDtype.setText('')
200 self.txtDtype.setText('')
201 self.txtDtype.setReadOnly(False)
201 self.txtDtype.setReadOnly(False)
202
202
203
203
204 @pyqtSignature("")
204 @pyqtSignature("")
205 def on_txtDtype_editingFinished(self):
205 def on_txtDtype_editingFinished(self):
206 """
206 """
207 Se activa cuando el tipo de archivo es ingresado manualmente
207 Se activa cuando el tipo de archivo es ingresado manualmente
208 """
208 """
209 #llamada a funcion
209 #llamada a funcion
210 self.on_txtDpath_editingFinished()
210 self.on_txtDpath_editingFinished()
211
211
212
212
213 @pyqtSignature("int") #CLOSED
213 @pyqtSignature("int") #CLOSED
214 def on_lstStartDay_activated(self, index):
214 def on_lstStartDay_activated(self, index):
215 """
215 """
216 Cambia la lista de opciones en lstStopDay
216 Cambia la lista de opciones en lstStopDay
217 """
217 """
218 var_StopDay_index=self.lstStopDay.count() - self.lstStopDay.currentIndex()
218 var_StopDay_index=self.lstStopDay.count() - self.lstStopDay.currentIndex()
219 self.lstStopDay.clear()
219 self.lstStopDay.clear()
220
220
221 for i in self.var_list[index:]:
221 for i in self.var_list[index:]:
222 self.lstStopDay.addItem(i)
222 self.lstStopDay.addItem(i)
223
223
224 self.lstStopDay.setCurrentIndex(self.lstStopDay.count() - var_StopDay_index)
224 self.lstStopDay.setCurrentIndex(self.lstStopDay.count() - var_StopDay_index)
225
225
226
226
227 @pyqtSignature("int") #CLOSED
227 @pyqtSignature("int") #CLOSED
228 def on_lstStopDay_activated(self, index):
228 def on_lstStopDay_activated(self, index):
229 """
229 """
230 Cambia la lista de opciones en lstStartDay
230 Cambia la lista de opciones en lstStartDay
231 """
231 """
232 var_StartDay_index=self.lstStartDay.currentIndex()
232 var_StartDay_index=self.lstStartDay.currentIndex()
233 var_end_index = self.lstStopDay.count() - index
233 var_end_index = self.lstStopDay.count() - index
234 self.lstStartDay.clear()
234 self.lstStartDay.clear()
235
235
236 for i in self.var_list[:len(self.var_list) - var_end_index + 1]:
236 for i in self.var_list[:len(self.var_list) - var_end_index + 1]:
237 self.lstStartDay.addItem(i)
237 self.lstStartDay.addItem(i)
238
238
239 self.lstStartDay.setCurrentIndex(var_StartDay_index)
239 self.lstStartDay.setCurrentIndex(var_StartDay_index)
240
240
241
241
242 @pyqtSignature("int") #CLOSED
242 @pyqtSignature("int") #CLOSED
243 def on_lstDcapacity_activated(self, index):
243 def on_lstDcapacity_activated(self, index):
244 """
244 """
245 Permite elegir el tamaΓ±o del disco
245 Permite elegir el tamaΓ±o del disco
246 """
246 """
247 if index == 0:
247 if index == 0:
248 var_size=25.0
248 var_size=25.0
249 elif index == 1:
249 elif index == 1:
250 var_size=8.5
250 var_size=8.5
251 elif index == 2:
251 elif index == 2:
252 var_size=4.7
252 var_size=4.7
253 elif index == 3:
253 elif index == 3:
254 var_size=0.7
254 var_size=0.7
255
255
256 if index != 4:
256 if index != 4:
257 self.txtDcapacity.setText(str(var_size*10**9/1024**2))
257 self.txtDcapacity.setText(str(var_size*10**9/1024**2))
258 self.txtDcapacity.setReadOnly(True)
258 self.txtDcapacity.setReadOnly(True)
259 else:
259 else:
260 self.txtDcapacity.setText('')
260 self.txtDcapacity.setText('')
261 self.txtDcapacity.setReadOnly(False)
261 self.txtDcapacity.setReadOnly(False)
262
262
263
263
264 @pyqtSignature("")
264 @pyqtSignature("")
265 def on_btnGbkp_clicked(self):
265 def on_btnGbkp_clicked(self):
266 """
266 """
267 Cuando se presiona el boton btnGbkp
267 Cuando se presiona el boton btnGbkp
268 """
268 """
269
269
270 #Verifica que las rutas sean validas
270 #Verifica que las rutas sean validas
271 if self.statusDpath == False or self.statusRpath == False:
271 if self.statusDpath == False or self.statusRpath == False:
272 if self.statusDpath == False:
272 if self.statusDpath == False:
273 self.txtInfo.append("Ruta de datos no valida")
273 self.txtInfo.append("Ruta de datos no valida")
274 if self.statusRpath == False:
274 if self.statusRpath == False:
275 self.txtInfo.append("Ruta de proyecto no valida")
275 self.txtInfo.append("Ruta de proyecto no valida")
276 return
276 return
277
277
278 #Crea las carpetas en la ruta del proyecto y verifica que se crearon correctamente
278 #Crea las carpetas en la ruta del proyecto y verifica que se crearon correctamente
279 var_Rpath=self.txtRpath.text()
279 var_Rpath=self.txtRpath.text()
280 var_dirs='/{gpath,iso,ppath}'
280 var_dirs='/{gpath,iso,ppath}'
281 var_cmd="mkdir -p "+str(var_Rpath)+str(var_dirs)
281 var_cmd="mkdir -p "+str(var_Rpath)+str(var_dirs)
282 var_output=commands.getstatusoutput(var_cmd)[0]
282 var_output=commands.getstatusoutput(var_cmd)[0]
283 if var_output != 0:
283 if var_output != 0:
284 self.txtInfo.append("No se pudieron crear los directorios, output_error:" + str(var_output))
284 self.txtInfo.append("No se pudieron crear los directorios, output_error:" + str(var_output))
285 return
285 return
286 else:
286 else:
287 self.txtInfo.append('Carpetas creadas correctamente')
287 self.txtInfo.append('Carpetas creadas correctamente')
288
288
289 #Cargando variables con los parametros
289 #Cargando variables con los parametros
290 var_Dpath=self.txtDpath.text()
290 var_Dpath=self.txtDpath.text()
291 var_Rpath=self.txtRpath.text()
291 var_Rpath=self.txtRpath.text()
292 var_Rpath_ppath=var_Rpath+"/ppath" #Ruta de los archivos a grabar
292 var_Rpath_ppath=var_Rpath+"/ppath" #Ruta de los archivos a grabar
293 var_sublist=[]
293 var_sublist=[]
294 for i in self.var_list[self.lstStartDay.currentIndex():self.lstStartDay.currentIndex() + self.lstStopDay.currentIndex()+1]:
294 for i in self.var_list[self.lstStartDay.currentIndex():self.lstStartDay.currentIndex() + self.lstStopDay.currentIndex()+1]:
295 var_sublist.append(i)
295 var_sublist.append(i)
296 if len(var_sublist) == 0:
296 if len(var_sublist) == 0:
297 self.txtInfo.append("No existen archivos encontrados")
297 self.txtInfo.append("No existen archivos encontrados")
298 return
298 return
299 #self.txtInfo.append('elementos: '+str(len(var_sublist)))
299 #self.txtInfo.append('elementos: '+str(len(var_sublist)))
300
300
301
301
302 var_Dtype=self.txtDtype.text()
302 var_Dtype=self.txtDtype.text()
303 var_Dcapacity=float(self.txtDcapacity.text())*1024 #tamaΓ±o en KB
303 var_Dcapacity=float(self.txtDcapacity.text())*1024 #tamaΓ±o en KB
304
304
305 #Busca los archivos con los parametros de busqueda
305 #Busca los archivos con los parametros de busqueda
306 var_files_list=[]
306 var_files_list=[]
307 for var_doy in var_sublist:
307 for var_doy in var_sublist:
308 var_cmd="find " + str(var_Dpath) + " -name ?"+var_doy+"???."+ str(var_Dtype) + " |sort"
308 var_cmd="find " + str(var_Dpath) + " -name ?"+var_doy+"???."+ str(var_Dtype) + " |sort"
309 var_output=commands.getstatusoutput(var_cmd)[1]
309 var_output=commands.getstatusoutput(var_cmd)[1]
310 for var_file in var_output.split():
310 for var_file in var_output.split():
311 var_files_list.append(var_file) #Almacena cada archivo en la lista
311 var_files_list.append(var_file) #Almacena cada archivo en la lista
312
312
313 #
313 #
314 #Genera la lista de archivos .dat que contienen los archivos a grabar en cada DVD
314 #Genera la lista de archivos .dat que contienen los archivos a grabar en cada DVD
315 #
315 #
316 var_n=0 #Numero del DVD actual
316 var_n=0 #Numero del DVD actual
317 var_tmp=0 #Se usa para acumulanr el tamaΓ±o de los archivos de la lista
317 var_tmp=0 #Se usa para acumulanr el tamaΓ±o de los archivos de la lista
318 var_files_list_2=[] #Se usa para almacenar la lista de archivos agrbar en cada DVD
318 var_files_list_2=[] #Se usa para almacenar la lista de archivos agrbar en cada DVD
319
319
320 for i in var_files_list: #Se asignan en i los archivos de la lista
320 for i in var_files_list: #Se asignan en i los archivos de la lista
321 var_size_i=os.path.getsize(i)/1024+1 #tamaΓ±o en KB del archivo de la lista, se suma 1 KB para evitar problemas al momento de sumar
321 var_size_i=os.path.getsize(i)/1024+1 #tamaΓ±o en KB del archivo de la lista, se suma 1 KB para evitar problemas al momento de sumar
322 var_tmp += var_size_i #Se acumulan el tamaΓ±o de los archivos de la lista
322 var_tmp += var_size_i #Se acumulan el tamaΓ±o de los archivos de la lista
323
323
324 #Si el tamaΓ±o acumulado es mayor que el de el DVD
324 #Si el tamaΓ±o acumulado es mayor que el de el DVD
325 if var_tmp > var_Dcapacity:
325 if var_tmp > var_Dcapacity:
326 var_tmp -= var_size_i #se quita el tamaΓ±o sumado para mostrar el tamaΓ±o real
326 var_tmp -= var_size_i #se quita el tamaΓ±o sumado para mostrar el tamaΓ±o real
327 #se agregan los ceros necesarios
327 #se agregan los ceros necesarios
328 if len(str(var_n)) < 4:
328 if len(str(var_n)) < 4:
329 var_n2=""
329 var_n2=""
330 for k in range(0, 4-len(str(var_n))):
330 for k in range(0, 4-len(str(var_n))):
331 var_n2 = var_n2+"0"
331 var_n2 = var_n2+"0"
332 #se crea un archivo con numeral en el sufijo y extension .dat
332 #se crea un archivo con numeral en el sufijo y extension .dat
333 var_file = open(var_Rpath_ppath+"/"+self.txtElabel.text()+"_"+str(var_n2)+str(var_n)+".dat","w")
333 var_file = open(var_Rpath_ppath+"/"+self.txtElabel.text()+"_"+str(var_n2)+str(var_n)+".dat","w")
334 #Se aΓ±ade la lista de archivos a grabar en el DVD al archivo .dat
334 #Se aΓ±ade la lista de archivos a grabar en el DVD al archivo .dat
335 for line in var_files_list_2:
335 for line in var_files_list_2:
336 var_tmp_path=(line.split(var_Dpath)[1]).split('/')
336 var_tmp_path=(line.split(var_Dpath)[1]).split('/')
337 var_tmp_path2="/"
337 var_tmp_path2="/"
338 for l in range(0, len(var_tmp_path)-1):
338 for l in range(0, len(var_tmp_path)-1):
339 var_tmp_path2=var_tmp_path2+str(var_tmp_path[l])+"/"
339 var_tmp_path2=var_tmp_path2+str(var_tmp_path[l])+"/"
340 var_file.write(var_tmp_path2+'=')
340 var_file.write(var_tmp_path2+'=')
341 var_file.write(line+'\n')
341 var_file.write(line+'\n')
342 var_file.close()
342 var_file.close()
343
343
344 var_tmp = var_size_i #Se asigna a la variable el tamaΓ±o del archivo actual
344 var_tmp = var_size_i #Se asigna a la variable el tamaΓ±o del archivo actual
345 var_files_list_2=[] #Se reinicia la lista
345 var_files_list_2=[] #Se reinicia la lista
346 var_n += 1
346 var_n += 1
347 var_files_list_2.append(i)
347 var_files_list_2.append(i)
348
348
349 #se agregan los ceros necesarios
349 #se agregan los ceros necesarios
350 if len(str(var_n)) < 4:
350 if len(str(var_n)) < 4:
351 var_n2=""
351 var_n2=""
352 for k in range(0, 4-len(str(var_n))):
352 for k in range(0, 4-len(str(var_n))):
353 var_n2 = var_n2+"0"
353 var_n2 = var_n2+"0"
354 #se crea un archivo con numeral en el sufijo y extension .dat
354 #se crea un archivo con numeral en el sufijo y extension .dat
355 var_file = open(var_Rpath_ppath+"/"+self.txtElabel.text()+"_"+str(var_n2)+str(var_n)+".dat","w")
355 var_file = open(var_Rpath_ppath+"/"+self.txtElabel.text()+"_"+str(var_n2)+str(var_n)+".dat","w")
356 #Se aΓ±ade la lista de archivos a grabar en el DVD al archivo .dat
356 #Se aΓ±ade la lista de archivos a grabar en el DVD al archivo .dat
357 for line in var_files_list_2:
357 for line in var_files_list_2:
358 var_tmp_path=(line.split(var_Dpath)[1]).split('/')
358 var_tmp_path=(line.split(var_Dpath)[1]).split('/')
359 var_tmp_path2="/"
359 var_tmp_path2="/"
360 for l in range(0, len(var_tmp_path)-1):
360 for l in range(0, len(var_tmp_path)-1):
361 var_tmp_path2=var_tmp_path2+str(var_tmp_path[l])+"/"
361 var_tmp_path2=var_tmp_path2+str(var_tmp_path[l])+"/"
362 var_file.write(var_tmp_path2+'=')
362 var_file.write(var_tmp_path2+'=')
363 var_file.write(line+'\n')
363 var_file.write(line+'\n')
364 var_file.close()
364 var_file.close()
365
365
366 #
366 #
367 #Genera los archivos postscript
367 #Genera los archivos postscript
368 #
368 #
369 var_n_files = var_n
369 var_n_files = var_n # Numero del ultimo archivo .dat creado
370 var_n = 0
370 var_n = 0 # Se reinicia a cero y se usa para poder acceder a cada una de los archivos
371
372 # Se leen todos los archivos .dat creados para crear las etiquetas en los archivos .ps
371 for var_n in range(0, var_n_files+1):
373 for var_n in range(0, var_n_files+1):
372 print var_n
374 print var_n
375
373 #se agregan los ceros necesarios
376 #se agregan los ceros necesarios
374 if len(str(var_n)) < 4:
377 if len(str(var_n)) < 4:
375 var_n2=""
378 var_n2=""
376 for k in range(0, 4-len(str(var_n))):
379 for k in range(0, 4-len(str(var_n))):
377 var_n2 = var_n2+"0"
380 var_n2 = var_n2+"0"
378
379 #se abren los archivos .dat en modo lectura
381 #se abren los archivos .dat en modo lectura
380 var_file = open(var_Rpath_ppath+"/"+self.txtElabel.text()+"_"+str(var_n2)+str(var_n)+".dat","r")
382 var_file = open(var_Rpath_ppath+"/"+self.txtElabel.text()+"_"+str(var_n2)+str(var_n)+".dat","r")
381 lines=var_file.readlines()
383 lines=var_file.readlines() # Se lee las lineas en el archivo y se almacenan en la lista
382 #print str(len(lines))
383
384
384 #Se crean los archivos .print con los cuales se crearan los archivos .ps
385 #Se crean los archivos .print con los cuales se crearan los archivos .ps
385 var_first_folder = lines[0].split('=')[0]
386 var_first_folder = lines[0].split('=')[0]
386 var_first_file = (lines[0].split('=')[1])[:-1]
387 var_first_file = (lines[0].split('=')[1])[:-1]
387 var_date_first_file=commands.getstatusoutput("date -r "+var_first_file+" +'%T'")[1]
388 var_date_first_file=commands.getstatusoutput("date -r "+var_first_file+" +'%T'")[1]
388
389
389 for j in range(1, len(lines)-1):
390 for j in range(1, len(lines)-1):
390 var_tmp_folder = lines[j].split('=')[0]
391 var_tmp_folder = lines[j].split('=')[0]
391 var_tmp_file = (lines[j].split('=')[1])[:-1]
392 var_tmp_file = (lines[j].split('=')[1])[:-1]
392
393
393
394
394 # Si el subfolder superior o la fecha del archivo cambia se genera una nueva linea
395 # Si el subfolder superior o la fecha del archivo cambia se genera una nueva linea
395 if (var_tmp_folder != var_first_folder) or (var_tmp_file[0:-5] != var_first_file[0:-5]):
396 if (var_tmp_folder != var_first_folder) or (var_tmp_file[0:-5] != var_first_file[0:-5]):
396
397
397 var_last_file = (lines[j-1].split('=')[1])[:-1]
398 var_last_file = (lines[j-1].split('=')[1])[:-1]
398 var_date_last_file=commands.getstatusoutput("date -r "+var_last_file+" +'%T'")[1]
399 var_date_last_file=commands.getstatusoutput("date -r "+var_last_file+" +'%T'")[1]
399 # Si el archivo se grabara directamente en la / del DVD y no en un /directorio/
400 # Si el archivo se grabara directamente en la / del DVD y no en un /directorio/
400 # se usa la etiqueta para indicar la parte de la etiqueta donde va el subdirectorio
401 # se usa la etiqueta para indicar la parte de la etiqueta donde va el subdirectorio
401 if var_first_folder == '/':
402 if var_first_folder == '/':
402 var_folder = self.txtElabel.text()
403 var_folder = self.txtElabel.text()
403 else:
404 else:
404 var_folder = var_first_folder.split('/')[1]
405 var_folder = var_first_folder.split('/')[1]
405 print "Year Doy Folder Set Time range"
406 print "Year Doy Folder Set Time range"
406 print var_first_file[-12:-8]+" "+var_first_file[-8:-5]+" "+var_folder +" "+var_first_file[-5:-2]+" "\
407 print var_first_file[-12:-8]+" "+var_first_file[-8:-5]+" "+var_folder +" "+var_first_file[-5:-2]+" "\
407 +var_last_file[-5:-2]+" "+var_date_first_file+" "+var_date_last_file
408 +var_last_file[-5:-2]+" "+var_date_first_file+" "+var_date_last_file
408
409
409 var_first_folder = lines[j].split('=')[0]
410 var_first_folder = lines[j].split('=')[0]
410 var_first_file = (lines[j].split('=')[1])[:-1]
411 var_first_file = (lines[j].split('=')[1])[:-1]
411 var_date_first_file=commands.getstatusoutput("date -r "+var_first_file+" +'%T'")[1]
412 var_date_first_file=commands.getstatusoutput("date -r "+var_first_file+" +'%T'")[1]
412
413
413 var_last_file = (lines[-1].split('=')[1])[:-1]
414 var_last_file = (lines[-1].split('=')[1])[:-1]
414 var_date_last_file=commands.getstatusoutput("date -r "+var_last_file+" +'%T'")[1]
415 var_date_last_file=commands.getstatusoutput("date -r "+var_last_file+" +'%T'")[1]
415
416
416 if var_first_folder == '/':
417 if var_first_folder == '/':
417 var_folder = self.txtElabel.text()
418 var_folder = self.txtElabel.text()
418 else:
419 else:
419 var_folder = var_first_folder.split('/')[1]
420 var_folder = var_first_folder.split('/')[1]
420
421
421 print "Year Doy Folder Set Time range"
422 print "Year Doy Folder Set Time range"
422 print var_first_file[-12:-8]+" "+var_first_file[-8:-5]+" "+var_folder +" "+var_first_file[-5:-2]+" "\
423 print var_first_file[-12:-8]+" "+var_first_file[-8:-5]+" "+var_folder +" "+var_first_file[-5:-2]+" "\
423 +var_last_file[-5:-2]+" "+var_date_first_file+" "+var_date_last_file
424 +var_last_file[-5:-2]+" "+var_date_first_file+" "+var_date_last_file
424
425
425
426
426
427
427
428
428 #Se deshabilita el Tab Parameters y el boton btnGbkp
429 #Se deshabilita el Tab Parameters y el boton btnGbkp
429 self.tabParameters.setEnabled(False)
430 self.tabParameters.setEnabled(False)
430 self.btnGbkp.setEnabled(False)
431 self.btnGbkp.setEnabled(False)
431
432
432
433
433 @pyqtSignature("")
434 @pyqtSignature("")
434 def on_btnStartburn_clicked(self):
435 def on_btnStartburn_clicked(self):
435 """
436 """
436 Slot documentation goes here.
437 Slot documentation goes here.
437 """
438 """
438 sys.stdout = self
439 sys.stdout = self
439 #sys.stderr = self
440 #sys.stderr = self
440 print "stdout_!!!"
441 print "stdout_!!!"
441 var_Rpath=self.txtRpath.text()
442 var_Rpath=self.txtRpath.text()
442 var_Rpath_ppath=var_Rpath+"/ppath"
443 var_Rpath_ppath=var_Rpath+"/ppath"
443 var_Rpath_iso=var_Rpath+"/iso"
444 var_Rpath_iso=var_Rpath+"/iso"
444
445
445 var_label=self.txtElabel.text()
446 var_label=self.txtElabel.text()
446
447
447 file_iso=var_Rpath_iso+'/2.iso'
448 file_iso=var_Rpath_iso+'/2.iso'
448 file_dat=var_Rpath_ppath+'/EW_DRIFTS_1.dat'
449 file_dat=var_Rpath_ppath+'/EW_DRIFTS_1.dat'
449
450
450 var_cmd = 'genisoimage -hide-joliet-trans-tbl -joliet-long -r '
451 var_cmd = 'genisoimage -hide-joliet-trans-tbl -joliet-long -r '
451 var_cmd += ' -A '+var_label+' -V '+var_label
452 var_cmd += ' -A '+var_label+' -V '+var_label
452 var_cmd += ' -graft-points -path-list '+ file_dat+' -o '+file_iso
453 var_cmd += ' -graft-points -path-list '+ file_dat+' -o '+file_iso
453 self.txtInfo.append(var_cmd)
454 self.txtInfo.append(var_cmd)
454
455
455 #var_output=commands.getstatusoutput(str(var_cmd))[1]
456 #var_output=commands.getstatusoutput(str(var_cmd))[1]
456 #self.txtInfo.append(var_output)
457 #self.txtInfo.append(var_output)
457
458
458 #os.system(str(var_cmd))
459 #os.system(str(var_cmd))
459 #p = subprocess.Popen(str('ls /'), shell=True, stdout=self)
460 #p = subprocess.Popen(str('ls /'), shell=True, stdout=self)
460 #os.waitpid(p.pid, 0)
461 #os.waitpid(p.pid, 0)
461 ####self.txtInfo.append(str(p.pid))
462 ####self.txtInfo.append(str(p.pid))
462
463
463
464
464
465
465 @pyqtSignature("")
466 @pyqtSignature("")
466 def on_btnRestart_clicked(self):
467 def on_btnRestart_clicked(self):
467 """
468 """
468 Slot documentation goes here.
469 Slot documentation goes here.
469 """
470 """
470 self.tabParameters.setEnabled(True)
471 self.tabParameters.setEnabled(True)
471 self.btnGbkp.setEnabled(True)
472 self.btnGbkp.setEnabled(True)
472
473
473 @pyqtSignature("")
474 @pyqtSignature("")
474 def on_btnTdevA_clicked(self):
475 def on_btnTdevA_clicked(self):
475 var_dev = str(self.txtDeviceA.text())
476 var_dev = str(self.txtDeviceA.text())
476 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
477 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
477 commands.getstatusoutput(var_cmd)
478 commands.getstatusoutput(var_cmd)
478
479
479 @pyqtSignature("")
480 @pyqtSignature("")
480 def on_btnTdevB_clicked(self):
481 def on_btnTdevB_clicked(self):
481 var_dev = str(self.txtDeviceB.text())
482 var_dev = str(self.txtDeviceB.text())
482 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
483 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
483 commands.getstatusoutput(var_cmd)
484 commands.getstatusoutput(var_cmd)
484
485
485 @pyqtSignature("")
486 @pyqtSignature("")
486 def on_btnTdevC_clicked(self):
487 def on_btnTdevC_clicked(self):
487 var_dev = str(self.txtDeviceC.text())
488 var_dev = str(self.txtDeviceC.text())
488 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
489 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
489 commands.getstatusoutput(var_cmd)
490 commands.getstatusoutput(var_cmd)
490
491
491 @pyqtSignature("")
492 @pyqtSignature("")
492 def on_btnTdevD_clicked(self):
493 def on_btnTdevD_clicked(self):
493 var_dev = str(self.txtDeviceD.text())
494 var_dev = str(self.txtDeviceD.text())
494 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
495 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
495 commands.getstatusoutput(var_cmd)
496 commands.getstatusoutput(var_cmd)
General Comments 0
You need to be logged in to leave comments. Login now