Parse command-line arguments: Difference between revisions

Content added Content deleted
No edit summary
(Added Prolog)
Line 476: Line 476:
{"C:\\Program Files (x86)\\Phix\\test.exe","C:\\Program Files (x86)\\Phix\\test.exe","nc","-v","-n","-z","-w","1","192.168.1.2","1-1000"}
{"C:\\Program Files (x86)\\Phix\\test.exe","C:\\Program Files (x86)\\Phix\\test.exe","nc","-v","-n","-z","-w","1","192.168.1.2","1-1000"}
</pre>
</pre>


=={{header|Prolog}}==
Works in SWI-Prolog.

<lang Prolog>:- initialization(main, main).

main(Argv) :-
opt_spec(Spec),
opt_parse(Spec, Argv, Opts, _),
(
member(help(true), Opts) -> show_help
; maplist(format('~w~n'), Opts)
).
show_help :-
opt_spec(Spec),
opt_help(Spec, HelpText),
write('Usage: swipl opts.pl <options>\n\n'),
write(HelpText).
opt_spec([
[opt(help),
type(boolean),
default(false),
shortflags([h]),
longflags([help]),
help('Show Help')],
[opt(noconnect),
type(boolean),
default(false),
shortflags([n]),
longflags([noconnect]),
help('do not connect, just check server status')],
[opt(server),
type(atom),
default('www.google.com'),
shortflags([s]),
longflags([server]),
help('The server address.')],
[opt(port),
type(integer),
default(5000),
shortflags([p]),
longflags([port]),
help('The server port.')]
]).</lang>

{{out}}
<lang Powershell>
# no options set (use defaults)
$ swipl .\opts.pl
help(false)
noconnect(false)
server(www.google.com)
port(5000)

# setting various options
$ swipl .\opts.pl --server www.test.com -p 2342 -n
help(false)
server(www.test.com)
port(2342)
noconnect(true)

# show help
$ swipl .\opts.pl -h
Usage: swipl opts.pl <options>

--help -h boolean=false Show Help
--noconnect -n boolean=false do not connect, just check server status
--server -s atom=www.google.com The server address.
--port -p integer=5000 The server port.
</lang>


=={{header|Python}}==
=={{header|Python}}==