1#!/usr/bin/env swipl 2 3:- initialization(main, main). 4 5:- nodebug(dap(main)). 6 7:- use_module(server). 8:- use_module(library(swipl_debug_adapter)). 9 10main(Argv) :- 11 OptsSpec = 12 [ [opt(version), 13 default(false), 14 type(boolean), 15 shortflags(['V']), 16 longflags([version]), 17 help('Print version information') 18 ], 19 [opt(help), 20 default(false), 21 type(boolean), 22 shortflags([h]), 23 longflags([help]), 24 help('Print usage information') 25 ], 26 [opt(debug), 27 default(true), 28 type(boolean), 29 shortflags([d]), 30 longflags([debug]), 31 help('Print debug messages to stderr') 32 ], 33 [opt(timeout), 34 default(3600), 35 type(integer), 36 shortflags(['T']), 37 longflags([timeout]), 38 help('Set a global timeout after which the server aborts. Useful for CI') 39 ] 40 ], 41 42 opt_parse(OptsSpec, Argv, Opts, _PosArgs), 43 44 ( option(version(true), Opts) -> pack_info(debug_adapter) 45 ; option(help( true), Opts) -> opt_help(OptsSpec, Help), write(Help) 46 ; set_prolog_flag(toplevel_prompt, ''), 47 ( option(debug( true), Opts) 48 -> debug(dap(_)) 49 ; true 50 ), 51 current_input(In), 52 current_output(Out), 53 option(timeout(Timeout), Opts), 54 da_server([in(In), out(Out), on_command(swipl_debug_adapter_command_callback), timeout(Timeout)]) 55 )