@@ -55,12 +55,13 @@ def __init__(self, width=800, height=560,
55
55
daemon_options = "" ,
56
56
fwfile = '/usr/local/etc/ts-warp_pf.conf' ,
57
57
logfile = '/usr/local/var/log/ts-warp.log' ,
58
+ logfile_size = 3145728 ,
58
59
pidfile = '/usr/local/var/run/ts-warp.pid' ,
59
60
url_new_vesrsion = '' ):
60
61
61
62
self .password = ''
62
63
63
- self .version = 'v1.0.32 -mac'
64
+ self .version = 'v1.0.33 -mac'
64
65
self .width = width
65
66
self .height = height
66
67
@@ -134,11 +135,11 @@ def __init__(self, width=800, height=560,
134
135
btn_pause = ttk .Button (tab_log , width = self ._btnw , text = '■' )
135
136
btn_pause .grid (column = 1 , row = 0 , sticky = tk .W , padx = self ._padx , pady = self ._pady )
136
137
self .pause_log = False
137
- btn_pause ['command' ] = lambda : self .pauselog (btn_pause , log_txt , logfile )
138
+ btn_pause ['command' ] = lambda : self .pauselog (btn_pause , log_txt , logfile , logfile_size )
138
139
139
140
log_txt = tk .Text (tab_log , highlightthickness = 0 , state = 'disabled' )
140
141
log_txt .grid (column = 0 , row = 1 , columnspan = 2 , sticky = tk .NSEW )
141
- tab_log .bind ("<Visibility>" , self .readfile_log (log_txt , logfile , refresh = True ))
142
+ tab_log .bind ("<Visibility>" , self .readfile_log (log_txt , logfile , logfile_size , refresh = True ))
142
143
143
144
scroll_log = ttk .Scrollbar (tab_log , orient = tk .VERTICAL )
144
145
scroll_log .grid (column = 2 , row = 1 , sticky = tk .NSEW )
@@ -166,14 +167,16 @@ def __init__(self, width=800, height=560,
166
167
'tsw01:' + subprocess .Popen (['./ts-pass' , self .tswhash .get ().encode ()],
167
168
stdout = subprocess .PIPE ).stdout .read ().decode ().strip ('\n \r ' ))
168
169
169
- ttk .Label (frm_tab_ini_top , text = 'Save changes:' ).grid (column = 2 , row = 0 , sticky = tk .E )
170
+ sch = ttk .Label (frm_tab_ini_top , text = 'Save configuration:' , foreground = 'green' )
171
+ sch .grid (column = 2 , row = 0 , sticky = tk .E )
170
172
btn_save_ini = ttk .Button (frm_tab_ini_top , width = self ._btnw , text = '▲' )
171
173
btn_save_ini .grid (column = 3 , row = 0 , sticky = tk .W , padx = self ._padx , pady = self ._pady )
172
174
btn_save_ini ['command' ] = lambda : self .saveini (ini_txt , inifile )
173
175
174
176
ini_txt = tk .Text (tab_ini , highlightthickness = 0 )
175
177
ini_txt .grid (column = 0 , row = 1 , columnspan = 2 , sticky = tk .NSEW )
176
178
tab_ini .bind ("<Visibility>" , self .readfile_ini (ini_txt , inifile ))
179
+ # ini_txt.bind('<<Modified>>', lambda: sch.config(foreground='red') if ini_txt.edit_modified() == 1 else sch.config(foreground='green'))
177
180
178
181
scroll_ini = ttk .Scrollbar (tab_ini , orient = tk .VERTICAL )
179
182
scroll_ini .grid (column = 2 , row = 1 , sticky = tk .NSEW )
@@ -331,25 +334,31 @@ def readfile_ini(self, t_widget, filename):
331
334
t_widget .insert (tk .END , '' .join (f .readlines ()))
332
335
t_widget .see (tk .END )
333
336
337
+ # t_widget.edit_modified(False)
338
+
334
339
# ---------------------------------------------------------------------------------------------------------------- #
335
- def readfile_log (self , t_widget , filename , refresh = False ):
340
+ def readfile_log (self , t_widget , filename , logfile_size , refresh = False ):
336
341
"""
337
342
Read contents of the LOG-file
338
343
"""
339
344
340
345
t_widget .config (state = 'normal' )
341
- with open (filename , 'r' , encoding = 'utf-8' ) as f :
342
- sz = os .path .getsize (filename )
343
- if sz > self .log_size :
344
- self .log_size = sz
345
- t_widget .delete (1.0 , tk .END )
346
- t_widget .insert (tk .END , '' .join (f .readlines ()))
347
- t_widget .see (tk .END )
346
+ sz = os .path .getsize (filename )
347
+ if sz > self .log_size :
348
+ with open (filename , 'r' , encoding = 'utf-8' ) as f :
349
+ if sz > logfile_size :
350
+ f .truncate (0 )
351
+ t_widget .delete (1.0 , tk .END )
352
+ else :
353
+ f .seek (self .log_size )
354
+ self .log_size = sz
355
+ t_widget .insert (tk .END , '' .join (f .readlines ()))
356
+ t_widget .see (tk .END )
348
357
349
358
if refresh :
350
359
t_widget .config (state = 'disabled' )
351
360
if not self .pause_log :
352
- self .root .after (500 , self .readfile_log , t_widget , filename , refresh )
361
+ self .root .after (500 , self .readfile_log , t_widget , filename , logfile_size , refresh )
353
362
354
363
# ---------------------------------------------------------------------------------------------------------------- #
355
364
def saveini (self , t_widget , filename ):
@@ -363,21 +372,23 @@ def saveini(self, t_widget, filename):
363
372
f .write (t_widget .get ('1.0' , tk .END )[:- 1 ]) # Strip extra newline
364
373
os .chown (filename , uid , gid )
365
374
375
+ # t_widget.edit_modified(False)
376
+
366
377
# Rebuild ts-warp_pf.conf when saving the INI-file
367
378
with open (fwfile , 'w' , encoding = 'utf8' ) as outfw :
368
379
subprocess .run (['./ts-warp_autofw.sh' , prefix ], stdout = outfw , check = False )
369
380
os .chown (fwfile , uid , gid )
370
381
371
382
# ---------------------------------------------------------------------------------------------------------------- #
372
- def pauselog (self , btn , txt , filename ):
383
+ def pauselog (self , btn , txt , filename , logfile_size ):
373
384
"""
374
385
Pause LOG
375
386
"""
376
387
377
388
if self .pause_log :
378
389
self .pause_log = False
379
390
btn ['text' ] = '■' # Pause log auto-refresh
380
- self .readfile_log (txt , filename , refresh = True )
391
+ self .readfile_log (txt , filename , logfile_size , refresh = True )
381
392
else :
382
393
self .pause_log = True
383
394
btn ['text' ] = '↭' # Enable auto-refresh
@@ -528,6 +539,7 @@ def dedupch(s, c='/'):
528
539
inifile = prefix + 'etc/ts-warp.ini'
529
540
fwfile = prefix + 'etc/ts-warp_pf.conf'
530
541
logfile = prefix + 'var/log/ts-warp.log'
542
+ logfile_size = 3145728
531
543
pidfile = prefix + 'var/run/ts-warp.pid'
532
544
actfile = prefix + 'var/spool/ts-warp/ts-warp.act'
533
545
daemon_options = ''
@@ -547,6 +559,8 @@ def dedupch(s, c='/'):
547
559
fwfile = '/' + dedupch (prefix + gui_ini ['GUI-WARP' ]['fwfile' ])
548
560
if 'logfile' in gui_ini ['GUI-WARP' ].keys ():
549
561
logfile = '/' + dedupch (prefix + gui_ini ['GUI-WARP' ]['logfile' ])
562
+ if 'logfile_size' in gui_ini ['GUI-WARP' ].keys ():
563
+ logfile_size = int (gui_ini ['GUI-WARP' ]['logfile_size' ])
550
564
if 'pidfile' in gui_ini ['GUI-WARP' ].keys ():
551
565
pidfile = '/' + dedupch (prefix + gui_ini ['GUI-WARP' ]['pidfile' ])
552
566
if 'actfile' in gui_ini ['GUI-WARP' ].keys ():
0 commit comments