aboutsummaryrefslogtreecommitdiff
path: root/vendor/argparse.d.tl
blob: 812786c42894d63ee9401c1d086d585254c794db (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111

local record argparse
	type Args = {string : {string} | string | boolean}

	record Parser
		name: function(self: Parser, name: string): Parser
		description: function(self: Parser, description: string): Parser
		epilog: function(self: Parser, epilog: string): Parser

		flag: function(self: Parser, flag: string): Option
		flag: function(self: Parser, shortalias: string, longalias: string): Option

		parse: function(self: Parser, argv: {string}): Args
		pparse: function(self: Parser, argv: {string}): boolean, Args | string

		error: function(self: Parser, error: string)

		argument: function(self: Parser, name: string, description: string): Argument

		get_usage: function(self: Parser): string
		get_help: function(self: Parser): string

		option: function(self: Parser, name: string, description?: string, default?: string, convert?: function | {function}, args?: {string}, count?: integer | string): Option
		option: function(self: Parser, name: string, description?: string, default?: string, convert?: {string:string}, args?: {string}, count?: integer | string): Option

		require_command: function(self: Parser, require_command: boolean): Parser
		command_target: function(self: Parser, command_target: string): Parser

		command: function(self: Parser, name: string, description: string, epilog: string): Command

		add_help: function(self: Parser, boolean)

		help_max_width: function(self: Parser, number): Parser
		add_help_command: function(self: Parser, ?string | {string: any}): Parser
		add_complete_command: function(self: Parser, ?string | {string: any}): Parser

		group: function(self: Parser, ...:any): Parser

		-- TODO: should be Argument | Option
		mutex: function(self: Parser, ...: any)

		record Opts
			name: string
			description: string
			epilog: string
		end
		metamethod __call: function(Parser, Opts): Parser
		metamethod __call: function(Parser, string, string, string): Parser
	end

	type ActionCallback = function(args: Args, index: string, val: string | boolean | {string}, overwrite: boolean)

	record Argument
		choices: function(self: Argument, choices: {string}): Argument

		convert: function(self: Argument, convert: function | {function}): Argument
		convert: function(self: Argument, convert: {string:string}): Argument

		args: function(self: Argument, args: string | integer): Argument

		action: function(self: Argument, cb: ActionCallback)
	end

	record Option
		name: function(self: Option, name: string): Option
		description: function(self: Option, description: string): Option

		argname: function(self: Option, argname: string | {string}): Option

		count: function(self: Option, count: integer | string): Option

		choices: function(self: Option, {string}): Option

		default: function(self: Option, string): Option

		defmode: function(self: Option, string): Option

		target: function(self: Option, target: string): Option

		args: function(self: Option, args: string|integer): Option

		action: function(self: Option, cb: ActionCallback)

		hidden_name: function(self: Option, string)

		hidden: function(self: Option, boolean)

		convert: function(self: Option, function)
	end

	record Command
		summary: function(self: Command, summary: string): Command
		description: function(self: Command, description: string): Command

		argument: function(self: Command, name: string, description?: string): Argument

		option: function(self: Command, name: string, description: string): Option

		flag: function(self: Command, string, ?string): Option

		handle_options: function(self: Command, boolean): Command

		mutex: function(self: Command, ...: any) --! copied over from Parser

		group: function(self: Command, ...:any): Command --! copied over from Parser
	end

	metamethod __call: function(self: argparse, name: string, description: string, epilog: string): Parser
end

return argparse