@@ -719,6 +719,21 @@ def parse_settings_args(cls, args):
719719 Color .pl ('{+} {C}option: {O}ignoring ESSID(s): {R}%s{W}' %
720720 ', ' .join (args .ignore_essids ))
721721
722+ if args .ignore_essids_file is not None :
723+ try :
724+ with open (args .ignore_essids_file , 'r' , encoding = 'utf-8' , errors = 'replace' ) as fh :
725+ file_essids = [line .strip () for line in fh if line .strip () and not line .startswith ('#' )]
726+ if file_essids :
727+ cls .ignore_essids = list (set ((cls .ignore_essids or []) + file_essids ))
728+ Color .pl ('{+} {C}option: {O}ignoring {R}%d{O} ESSID(s) from file {R}%s{W}' %
729+ (len (file_essids ), args .ignore_essids_file ))
730+ else :
731+ Color .pl ('{!} {O}ignore-essids-file {R}%s{O} is empty or has only comments{W}' %
732+ args .ignore_essids_file )
733+ except (OSError , IOError ) as e :
734+ Color .pl ('{!} {R}Could not read ignore-essids-file {O}%s{R}: %s{W}' %
735+ (args .ignore_essids_file , str (e )))
736+
722737 from .model .result import CrackResult
723738 cls .ignore_cracked = CrackResult .load_ignored_bssids (args .ignore_cracked )
724739
@@ -747,14 +762,28 @@ def parse_settings_args(cls, args):
747762 Color .pl ('{+} {C}option:{W} using {G}classic text mode{W} (TUI disabled)' )
748763 # else: use_tui remains False (classic mode is default)
749764
765+ # --debug is shorthand for -vvv + file logging
766+ if args .debug :
767+ args .verbose = max (args .verbose , 3 )
768+
750769 if args .verbose :
751770 cls .verbose = args .verbose
752771 Color .pl ('{+} {C}option:{W} verbosity level {G}%d{W}' % args .verbose )
753772
754- # Update logger with verbosity level
773+ # Determine log file: explicit --log-file wins, then --debug default, then -vv+ default
755774 from .util .logger import Logger
756- log_file = os .path .join (os .path .expanduser ('~' ), '.wifite' , 'wifite.log' ) if args .verbose >= 2 else None
775+ log_file = getattr (args , 'log_file' , None )
776+ if log_file is None and args .verbose >= 2 :
777+ log_file = os .path .join (os .path .expanduser ('~' ), '.wifite' , 'wifite.log' )
778+ if log_file :
779+ Color .pl ('{+} {C}option:{W} logging to {G}%s{W}' % log_file )
757780 Logger .initialize (log_file = log_file , verbose = args .verbose , enabled = True )
781+ elif getattr (args , 'log_file' , None ):
782+ # --log-file without -v: enable at least verbose=2 so the log is useful
783+ cls .verbose = max (cls .verbose , 2 )
784+ from .util .logger import Logger
785+ Color .pl ('{+} {C}option:{W} logging to {G}%s{W} (verbose level raised to 2)' % args .log_file )
786+ Logger .initialize (log_file = args .log_file , verbose = cls .verbose , enabled = True )
758787
759788 if args .kill_conflicting_processes :
760789 cls .kill_conflicting_processes = True
0 commit comments