@@ -427,7 +427,8 @@ def main():
427427 description = "HashShield Agent — Remote Scanner Client" ,
428428 formatter_class = argparse .RawTextHelpFormatter
429429 )
430- parser .add_argument ("path" , metavar = "PATH" , help = "File or directory to scan" )
430+ # MODIFIKASI: Argumen path sekarang opsional (nargs='?', default=None)
431+ parser .add_argument ("path" , metavar = "PATH" , nargs = '?' , default = None , help = "File or directory to scan" )
431432 parser .add_argument ("--server" , metavar = "IP" , default = DEFAULT_HOST , help = f"Daemon IP (default: { DEFAULT_HOST } )" )
432433 parser .add_argument ("--port" , metavar = "PORT" , type = int , default = DEFAULT_PORT , help = f"Daemon port (default: { DEFAULT_PORT } )" )
433434 parser .add_argument ("--token" , metavar = "TOKEN" , default = DEFAULT_TOKEN , help = "Auth token (overrides .env)" )
@@ -449,6 +450,7 @@ def main():
449450 if args .server != DEFAULT_HOST and args .server :
450451 target_ips .append (("Manual Flag" , args .server ))
451452 else :
453+ # Prioritaskan Tailscale
452454 if TAILSCALE_IP : target_ips .append (("Tailscale" , TAILSCALE_IP ))
453455 if LOCAL_IP : target_ips .append (("Lokal" , LOCAL_IP ))
454456
@@ -471,6 +473,17 @@ def main():
471473 h_thread = threading .Thread (target = heartbeat_worker , args = (host , 8080 ), daemon = True )
472474 h_thread .start ()
473475
476+ # --- MODIFIKASI: BLOK SERVICE MODE / STANDBY ---
477+ if args .path is None :
478+ print (f"\n { C_GREEN } [+] HashShield Agent Service Mode Aktif.{ C_RESET } " )
479+ print (f" { C_GREY } Agent berjalan di latar belakang (Heartbeat konstan).{ C_RESET } " )
480+ try :
481+ while True :
482+ time .sleep (1 )
483+ except KeyboardInterrupt :
484+ print (f"\n { C_YELLOW } [*] Service dihentikan.{ C_RESET } " )
485+ return
486+
474487 print (f"\n { C_GREEN } [+] Daemon reachable via { host } . Starting scan...{ C_RESET } \n " )
475488 print (f"{ '─' * 55 } " )
476489
0 commit comments