Command Line Argument Processing in Go: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 4: Line 4:
=Overview=
=Overview=


<font color=darkkhaki>Use the <code>flag</code> package: </font>
<font color=darkkhaki>Use the <code>[[Go Package flag|flag]]</code> package: </font>
<syntaxhighlight lang='go'>
<syntaxhighlight lang='go'>



Revision as of 02:30, 18 October 2023

Internal

Overview

Use the flag package:

var port int
flag.IntVar(&port, "port", 8080, "Some documentation for the flag")
flag.Parse()

I didn't find a way to tel whether the value has been indeed provided on command line or it's the default. This can be a problem when we also read the value from a configuration file, and we want the priority to be, in order: command line, config file and default.

Positional Arguments

args := os.Args

args[0] is a string that represents the path of the executable, as it was invoked on the command line. Example: ./../bin/metadata.