Current section

51 Versions

Jump to

Compare versions

8 files changed
+145 additions
-145 deletions
  @@ -30,58 +30,6 @@ The general workflow involves
30 30 1. attach the commands to glint with `glint.add`
31 31 1. run your glint app with `glint.run` or `glint.run_and_handle`
32 32
33 - ### Help text
34 -
35 - Glint automatically generates help text for your commands and flags. Help text is both automatically formatted and wrapped. You can attach help text to your commands and flags with the functions described below.
36 -
37 - _**Note**_:Help text is generated and printed whenever a glint command is called with the built-in flag `--help`. It is also printed after the error text when any errors are encountered due to invalid flags or arguments.
38 -
39 - Help text descriptions can be attached to all of glint's components:
40 -
41 - - attach global help text with `glint.global_help`
42 - - attach comand help text with `glint.command_help`
43 - - attach flag help text with `glint.flag_help`
44 - - attach help text to a non-initialized command with `glint.path_help`
45 -
46 - #### Help text formatting
47 -
48 - It is not uncommon for developers to want to format long text strings in such a way that it is easier to read in a code editor. Glint accounts for this be being sensitive to multiple line breaks in a help text string. This means that text like the following:
49 -
50 - ```
51 - A very very very very very very very long help text
52 - string that is too long to fit on one line.
53 -
54 - Here is something that gets its own line.
55 -
56 -
57 - And here is something that gets its own paragraph.
58 - ```
59 -
60 - Will be formatted as follows(without word wrapping):
61 -
62 - ```
63 - A very very very very very very very long help text string that is too long to fit on one line.
64 - Here is something that gets its own line.
65 -
66 - And here is something that gets its own paragraph.
67 - ```
68 -
69 - And when wrapped will look something like the following:
70 -
71 - ```
72 - A very very very very very very very long help
73 - text string that is too long to fit on one line.
74 - Here is something that gets its own line.
75 -
76 - And here is something that gets its own paragraph.
77 - ```
78 -
79 - #### Help text wrapping
80 -
81 - In addition to newline formatting, glint also handles wrapping helptext so that it fits within the configured terminal width. This means that if you have a long help text string it will be adjusted to fit on additional lines if it is too long to fit on one line. Spacing is also added to keep descriptions aligned with each other.
82 -
83 - There are functions that you can use to tweak glints default wrapping behaviour, but the defaults should be sufficient for the majority of use cases.
84 -
85 33 ### Mini Example
86 34
87 35 You can import `glint` as a dependency and use it to build command-line applications like the following simplified version of the [the hello world example](./test/examples/hello.gleam).
  @@ -145,7 +93,6 @@ pub fn main() {
145 93 |> glint.run(argv.load().arguments)
146 94 }
147 95 ```
148 -
149 96 ## Glint at-a-glance
150 97
151 98 ### Glint core: `glint.Glint(a)`
  @@ -249,3 +196,56 @@ Glint works amazingly with these other packages:
249 196
250 197 - [argv](https://github.com/lpil/argv), use this for cross-platform argument fetching
251 198 - [gleescript](https://github.com/lpil/gleescript), use this to generate erlang escripts for your applications
199 +
200 +
201 + ## Help text
202 +
203 + Glint automatically generates help text for your commands and flags. Help text is both automatically formatted and wrapped. You can attach help text to your commands and flags with the functions described below.
204 +
205 + _**Note**_:Help text is generated and printed whenever a glint command is called with the built-in flag `--help`. It is also printed after the error text when any errors are encountered due to invalid flags or arguments.
206 +
207 + Help text descriptions can be attached to all of glint's components:
208 +
209 + - attach global help text with `glint.global_help`
210 + - attach comand help text with `glint.command_help`
211 + - attach flag help text with `glint.flag_help`
212 + - attach help text to a non-initialized command with `glint.path_help`
213 +
214 + #### Help text formatting
215 +
216 + It is not uncommon for developers to want to format long text strings in such a way that it is easier to read in a code editor. Glint accounts for this be being sensitive to multiple line breaks in a help text string. This means that text like the following:
217 +
218 + ```
219 + A very very very very very very very long help text
220 + string that is too long to fit on one line.
221 +
222 + Here is something that gets its own line.
223 +
224 +
225 + And here is something that gets its own paragraph.
226 + ```
227 +
228 + Will be formatted as follows(without word wrapping):
229 +
230 + ```
231 + A very very very very very very very long help text string that is too long to fit on one line.
232 + Here is something that gets its own line.
233 +
234 + And here is something that gets its own paragraph.
235 + ```
236 +
237 + And when wrapped will look something like the following:
238 +
239 + ```
240 + A very very very very very very very long help
241 + text string that is too long to fit on one line.
242 + Here is something that gets its own line.
243 +
244 + And here is something that gets its own paragraph.
245 + ```
246 +
247 + #### Help text wrapping
248 +
249 + In addition to newline formatting, glint also handles wrapping helptext so that it fits within the configured terminal width. This means that if you have a long help text string it will be adjusted to fit on additional lines if it is too long to fit on one line. Spacing is also added to keep descriptions aligned with each other.
250 +
251 + There are functions that you can use to tweak glints default wrapping behaviour, but the defaults should be sufficient for the majority of use cases.
  @@ -1,5 +1,5 @@
1 1 name = "glint"
2 - version = "1.0.0"
2 + version = "1.0.1"
3 3
4 4 # Fill out these fields if you intend to generate HTML documentation or publishname = "glint"
5 5 # your project to the Hex package manager.
  @@ -18,7 +18,7 @@ links = [
18 18 gleam = "~> 1.0"
19 19
20 20 [dependencies]
21 - gleam_stdlib = "~> 0.36 or ~> 1.0"
21 + gleam_stdlib = "~> 0.39 or ~> 1.0"
22 22 snag = "~> 0.3"
23 23 gleam_community_ansi = "~> 1.0"
24 24 gleam_community_colour = "~> 1.0"
  @@ -26,4 +26,4 @@ gleam_community_colour = "~> 1.0"
26 26 [dev-dependencies]
27 27 gleeunit = "~> 1.0"
28 28 argv = ">= 1.0.2 and < 2.0.0"
29 - birdie = ">= 1.1.5 and < 2.0.0"
29 + birdie = ">= 1.1.8 and < 2.0.0"
  @@ -1,6 +1,6 @@
1 1 {<<"name">>, <<"glint">>}.
2 2 {<<"app">>, <<"glint">>}.
3 - {<<"version">>, <<"1.0.0">>}.
3 + {<<"version">>, <<"1.0.1">>}.
4 4 {<<"description">>, <<"Gleam command-line argument parsing with flags and automated help text generation."/utf8>>}.
5 5 {<<"licenses">>, [<<"Apache-2.0">>]}.
6 6 {<<"build_tools">>, [<<"gleam">>]}.
  @@ -10,25 +10,25 @@
10 10 {<<"Repository">>, <<"https://github.com/TanklesXL/glint">>}
11 11 ]}.
12 12 {<<"requirements">>, [
13 - {<<"gleam_community_colour">>, [
14 - {<<"app">>, <<"gleam_community_colour">>},
15 - {<<"optional">>, false},
16 - {<<"requirement">>, <<"~> 1.0">>}
17 - ]},
18 13 {<<"snag">>, [
19 14 {<<"app">>, <<"snag">>},
20 15 {<<"optional">>, false},
21 16 {<<"requirement">>, <<"~> 0.3">>}
22 17 ]},
23 - {<<"gleam_stdlib">>, [
24 - {<<"app">>, <<"gleam_stdlib">>},
25 - {<<"optional">>, false},
26 - {<<"requirement">>, <<"~> 0.36 or ~> 1.0">>}
27 - ]},
28 18 {<<"gleam_community_ansi">>, [
29 19 {<<"app">>, <<"gleam_community_ansi">>},
30 20 {<<"optional">>, false},
31 21 {<<"requirement">>, <<"~> 1.0">>}
22 + ]},
23 + {<<"gleam_community_colour">>, [
24 + {<<"app">>, <<"gleam_community_colour">>},
25 + {<<"optional">>, false},
26 + {<<"requirement">>, <<"~> 1.0">>}
27 + ]},
28 + {<<"gleam_stdlib">>, [
29 + {<<"app">>, <<"gleam_stdlib">>},
30 + {<<"optional">>, false},
31 + {<<"requirement">>, <<"~> 0.39 or ~> 1.0">>}
32 32 ]}
33 33 ]}.
34 34 {<<"files">>, [
  @@ -1,5 +1,5 @@
1 1 {application, glint, [
2 - {vsn, "1.0.0"},
2 + {vsn, "1.0.1"},
3 3 {applications, [argv,
4 4 birdie,
5 5 gleam_community_ansi,
  @@ -20,32 +20,32 @@
20 20 gleam_community@colour:colour(),
21 21 gleam_community@colour:colour()}.
22 22
23 - -opaque glint(MGJ) :: {glint, config(), command_node(MGJ)}.
23 + -opaque glint(MJE) :: {glint, config(), command_node(MJE)}.
24 24
25 25 -type args_count() :: {eq_args, integer()} | {min_args, integer()}.
26 26
27 - -opaque command(MGK) :: {command,
28 - fun((named_args(), list(binary()), flags()) -> MGK),
27 + -opaque command(MJF) :: {command,
28 + fun((named_args(), list(binary()), flags()) -> MJF),
29 29 flags(),
30 30 binary(),
31 31 gleam@option:option(args_count()),
32 32 list(binary())}.
33 33
34 - -type internal_command(MGL) :: {internal_command,
35 - fun((named_args(), list(binary()), flags()) -> MGL),
34 + -type internal_command(MJG) :: {internal_command,
35 + fun((named_args(), list(binary()), flags()) -> MJG),
36 36 flags(),
37 37 gleam@option:option(args_count()),
38 38 list(binary())}.
39 39
40 40 -opaque named_args() :: {named_args, gleam@dict:dict(binary(), binary())}.
41 41
42 - -type command_node(MGM) :: {command_node,
43 - gleam@option:option(internal_command(MGM)),
44 - gleam@dict:dict(binary(), command_node(MGM)),
42 + -type command_node(MJH) :: {command_node,
43 + gleam@option:option(internal_command(MJH)),
44 + gleam@dict:dict(binary(), command_node(MJH)),
45 45 flags(),
46 46 binary()}.
47 47
48 - -type out(MGN) :: {out, MGN} | {help, binary()}.
48 + -type out(MJI) :: {out, MJI} | {help, binary()}.
49 49
50 50 -type value() :: {b, flag_internals(boolean())} |
51 51 {i, flag_internals(integer())} |
  @@ -55,38 +55,38 @@
55 55 {s, flag_internals(binary())} |
56 56 {ls, flag_internals(list(binary()))}.
57 57
58 - -opaque flag(MGO) :: {flag,
58 + -opaque flag(MJJ) :: {flag,
59 59 binary(),
60 60 binary(),
61 - fun((binary()) -> {ok, MGO} | {error, snag:snag()}),
62 - fun((flag_internals(MGO)) -> value()),
63 - fun((flags(), binary()) -> {ok, MGO} | {error, snag:snag()}),
64 - gleam@option:option(MGO)}.
61 + fun((binary()) -> {ok, MJJ} | {error, snag:snag()}),
62 + fun((flag_internals(MJJ)) -> value()),
63 + fun((flags(), binary()) -> {ok, MJJ} | {error, snag:snag()}),
64 + gleam@option:option(MJJ)}.
65 65
66 - -type flag_internals(MGP) :: {flag_internals,
67 - gleam@option:option(MGP),
68 - fun((binary()) -> {ok, MGP} | {error, snag:snag()})}.
66 + -type flag_internals(MJK) :: {flag_internals,
67 + gleam@option:option(MJK),
68 + fun((binary()) -> {ok, MJK} | {error, snag:snag()})}.
69 69
70 70 -type flag_entry() :: {flag_entry, value(), binary()}.
71 71
72 72 -opaque flags() :: {flags, gleam@dict:dict(binary(), flag_entry())}.
73 73
74 - -spec config(glint(MGW), config()) -> glint(MGW).
74 + -spec config(glint(MJR), config()) -> glint(MJR).
75 75 config(Glint, Config) ->
76 76 erlang:setelement(2, Glint, Config).
77 77
78 - -spec pretty_help(glint(MGZ), pretty_help()) -> glint(MGZ).
78 + -spec pretty_help(glint(MJU), pretty_help()) -> glint(MJU).
79 79 pretty_help(Glint, Pretty) ->
80 80 config(
81 81 Glint,
82 82 erlang:setelement(2, erlang:element(2, Glint), {some, Pretty})
83 83 ).
84 84
85 - -spec with_name(glint(MHC), binary()) -> glint(MHC).
85 + -spec with_name(glint(MJX), binary()) -> glint(MJX).
86 86 with_name(Glint, Name) ->
87 87 config(Glint, erlang:setelement(3, erlang:element(2, Glint), {some, Name})).
88 88
89 - -spec without_exit(glint(MHF)) -> glint(MHF).
89 + -spec without_exit(glint(MKA)) -> glint(MKA).
90 90 without_exit(Glint) ->
91 91 erlang:setelement(
92 92 2,
  @@ -94,11 +94,11 @@ without_exit(Glint) ->
94 94 erlang:setelement(6, erlang:element(2, Glint), false)
95 95 ).
96 96
97 - -spec as_module(glint(MHI)) -> glint(MHI).
97 + -spec as_module(glint(MKD)) -> glint(MKD).
98 98 as_module(Glint) ->
99 99 config(Glint, erlang:setelement(4, erlang:element(2, Glint), true)).
100 100
101 - -spec with_indent_width(glint(MHL), integer()) -> glint(MHL).
101 + -spec with_indent_width(glint(MKG), integer()) -> glint(MKG).
102 102 with_indent_width(Glint, Width) ->
103 103 erlang:setelement(
104 104 2,
  @@ -106,7 +106,7 @@ with_indent_width(Glint, Width) ->
106 106 erlang:setelement(7, erlang:element(2, Glint), Width)
107 107 ).
108 108
109 - -spec with_max_output_width(glint(MHO), integer()) -> glint(MHO).
109 + -spec with_max_output_width(glint(MKJ), integer()) -> glint(MKJ).
110 110 with_max_output_width(Glint, Width) ->
111 111 erlang:setelement(
112 112 2,
  @@ -114,7 +114,7 @@ with_max_output_width(Glint, Width) ->
114 114 erlang:setelement(8, erlang:element(2, Glint), Width)
115 115 ).
116 116
117 - -spec with_min_first_column_width(glint(MHR), integer()) -> glint(MHR).
117 + -spec with_min_first_column_width(glint(MKM), integer()) -> glint(MKM).
118 118 with_min_first_column_width(Glint, Width) ->
119 119 erlang:setelement(
120 120 2,
  @@ -122,7 +122,7 @@ with_min_first_column_width(Glint, Width) ->
122 122 erlang:setelement(9, erlang:element(2, Glint), Width)
123 123 ).
124 124
125 - -spec with_column_gap(glint(MHU), integer()) -> glint(MHU).
125 + -spec with_column_gap(glint(MKP), integer()) -> glint(MKP).
126 126 with_column_gap(Glint, Gap) ->
127 127 erlang:setelement(
128 128 2,
  @@ -130,7 +130,7 @@ with_column_gap(Glint, Gap) ->
130 130 erlang:setelement(10, erlang:element(2, Glint), Gap)
131 131 ).
132 132
133 - -spec global_help(glint(MID), binary()) -> glint(MID).
133 + -spec global_help(glint(MKY), binary()) -> glint(MKY).
134 134 global_help(Glint, Description) ->
135 135 erlang:setelement(
136 136 2,
  @@ -144,18 +144,18 @@ sanitize_path(Path) ->
144 144 _pipe@1 = gleam@list:map(_pipe, fun gleam@string:trim/1),
145 145 gleam@list:filter(_pipe@1, fun(S) -> S /= <<""/utf8>> end).
146 146
147 - -spec command_help(binary(), fun(() -> command(MIS))) -> command(MIS).
147 + -spec command_help(binary(), fun(() -> command(MLN))) -> command(MLN).
148 148 command_help(Desc, F) ->
149 149 erlang:setelement(4, F(), Desc).
150 150
151 - -spec unnamed_args(args_count(), fun(() -> command(MIV))) -> command(MIV).
151 + -spec unnamed_args(args_count(), fun(() -> command(MLQ))) -> command(MLQ).
152 152 unnamed_args(Count, F) ->
153 153 erlang:setelement(5, F(), {some, Count}).
154 154
155 155 -spec named_arg(
156 156 binary(),
157 - fun((fun((named_args()) -> binary())) -> command(MIY))
158 - ) -> command(MIY).
157 + fun((fun((named_args()) -> binary())) -> command(MLT))
158 + ) -> command(MLT).
159 159 named_arg(Name, F) ->
160 160 Cmd = (F(
161 161 fun(Named_args) ->
  @@ -276,10 +276,10 @@ build_subcommands_help(Subcommands) ->
276 276
277 277 -spec new_builder(
278 278 binary(),
279 - fun((flag_internals(MLN)) -> value()),
280 - fun((flags(), binary()) -> {ok, MLN} | {error, snag:snag()}),
281 - fun((binary()) -> {ok, MLN} | {error, snag:snag()})
282 - ) -> flag(MLN).
279 + fun((flag_internals(MOI)) -> value()),
280 + fun((flags(), binary()) -> {ok, MOI} | {error, snag:snag()}),
281 + fun((binary()) -> {ok, MOI} | {error, snag:snag()})
282 + ) -> flag(MOI).
283 283 new_builder(Name, Valuer, Getter, P) ->
284 284 {flag, Name, <<""/utf8>>, P, Valuer, Getter, none}.
285 285
  @@ -292,20 +292,20 @@ build_flag(Fb) ->
292 292 erlang:element(3, Fb)}.
293 293
294 294 -spec attempt(
295 - {ok, MMF} | {error, MMG},
296 - fun((MMF) -> {ok, any()} | {error, MMG})
297 - ) -> {ok, MMF} | {error, MMG}.
295 + {ok, MPA} | {error, MPB},
296 + fun((MPA) -> {ok, any()} | {error, MPB})
297 + ) -> {ok, MPA} | {error, MPB}.
298 298 attempt(Val, F) ->
299 299 gleam@result:'try'(Val, fun(A) -> gleam@result:replace(F(A), A) end).
300 300
301 301 -spec wrap_with_constraint(
302 - fun((binary()) -> {ok, MLZ} | {error, snag:snag()}),
303 - fun((MLZ) -> {ok, MLZ} | {error, snag:snag()})
304 - ) -> fun((binary()) -> {ok, MLZ} | {error, snag:snag()}).
302 + fun((binary()) -> {ok, MOU} | {error, snag:snag()}),
303 + fun((MOU) -> {ok, MOU} | {error, snag:snag()})
304 + ) -> fun((binary()) -> {ok, MOU} | {error, snag:snag()}).
305 305 wrap_with_constraint(P, Constraint) ->
306 306 fun(Input) -> attempt(P(Input), Constraint) end.
307 307
308 - -spec flag_constraint(flag(MLV), fun((MLV) -> {ok, MLV} | {error, snag:snag()})) -> flag(MLV).
308 + -spec flag_constraint(flag(MOQ), fun((MOQ) -> {ok, MOQ} | {error, snag:snag()})) -> flag(MOQ).
309 309 flag_constraint(Builder, Constraint) ->
310 310 erlang:setelement(
311 311 4,
  @@ -313,11 +313,11 @@ flag_constraint(Builder, Constraint) ->
313 313 wrap_with_constraint(erlang:element(4, Builder), Constraint)
314 314 ).
315 315
316 - -spec flag_help(flag(MMO), binary()) -> flag(MMO).
316 + -spec flag_help(flag(MPJ), binary()) -> flag(MPJ).
317 317 flag_help(Flag, Description) ->
318 318 erlang:setelement(3, Flag, Description).
319 319
320 - -spec flag_default(flag(MMR), MMR) -> flag(MMR).
320 + -spec flag_default(flag(MPM), MPM) -> flag(MPM).
321 321 flag_default(Flag, Default) ->
322 322 erlang:setelement(7, Flag, {some, Default}).
323 323
  @@ -326,9 +326,9 @@ insert(Flags, Name, Flag) ->
326 326 {flags, gleam@dict:insert(erlang:element(2, Flags), Name, Flag)}.
327 327
328 328 -spec flag(
329 - flag(MJB),
330 - fun((fun((flags()) -> {ok, MJB} | {error, snag:snag()})) -> command(MJE))
331 - ) -> command(MJE).
329 + flag(MLW),
330 + fun((fun((flags()) -> {ok, MLW} | {error, snag:snag()})) -> command(MLZ))
331 + ) -> command(MLZ).
332 332 flag(Flag, F) ->
333 333 Cmd = F(
334 334 fun(_capture) ->
  @@ -349,7 +349,7 @@ flag(Flag, F) ->
349 349 merge(A, B) ->
350 350 {flags, gleam@dict:merge(erlang:element(2, A), erlang:element(2, B))}.
351 351
352 - -spec fold(flags(), MMU, fun((MMU, binary(), flag_entry()) -> MMU)) -> MMU.
352 + -spec fold(flags(), MPP, fun((MPP, binary(), flag_entry()) -> MPP)) -> MPP.
353 353 fold(Flags, Acc, F) ->
354 354 gleam@dict:fold(erlang:element(2, Flags), Acc, F).
355 355
  @@ -404,7 +404,7 @@ new_flags() ->
404 404 empty_command() ->
405 405 {command_node, none, gleam@dict:new(), new_flags(), <<""/utf8>>}.
406 406
407 - -spec command(fun((named_args(), list(binary()), flags()) -> MIP)) -> command(MIP).
407 + -spec command(fun((named_args(), list(binary()), flags()) -> MLK)) -> command(MLK).
408 408 command(Runner) ->
409 409 {command, Runner, new_flags(), <<""/utf8>>, none, []}.
410 410
  @@ -418,8 +418,8 @@ flag_not_provided_error() ->
418 418
419 419 -spec construct_value(
420 420 binary(),
421 - flag_internals(MNB),
422 - fun((flag_internals(MNB)) -> value())
421 + flag_internals(MPW),
422 + fun((flag_internals(MPW)) -> value())
423 423 ) -> {ok, value()} | {error, snag:snag()}.
424 424 construct_value(Input, Internal, Constructor) ->
425 425 gleam@result:map(
  @@ -593,8 +593,8 @@ attempt_toggle_flag(Flags, Key) ->
593 593 -spec get_value(
594 594 flags(),
595 595 binary(),
596 - fun((flag_entry()) -> {ok, MNH} | {error, snag:snag()})
597 - ) -> {ok, MNH} | {error, snag:snag()}.
596 + fun((flag_entry()) -> {ok, MQC} | {error, snag:snag()})
597 + ) -> {ok, MQC} | {error, snag:snag()}.
598 598 get_value(Flags, Key, Kind) ->
599 599 _pipe = get(Flags, Key),
600 600 _pipe@1 = gleam@result:'try'(_pipe, Kind),
  @@ -604,7 +604,7 @@ get_value(Flags, Key, Kind) ->
604 604 "'"/utf8>>
605 605 ).
606 606
607 - -spec get_flag(flags(), flag(MNK)) -> {ok, MNK} | {error, snag:snag()}.
607 + -spec get_flag(flags(), flag(MQF)) -> {ok, MQF} | {error, snag:snag()}.
608 608 get_flag(Flags, Flag) ->
609 609 (erlang:element(6, Flag))(Flags, erlang:element(2, Flag)).
610 610
  @@ -806,10 +806,10 @@ floats_flag(Name) ->
806 806 ).
807 807
808 808 -spec do_update_at(
809 - command_node(MOD),
809 + command_node(MQY),
810 810 list(binary()),
811 - fun((command_node(MOD)) -> command_node(MOD))
812 - ) -> command_node(MOD).
811 + fun((command_node(MQY)) -> command_node(MQY))
812 + ) -> command_node(MQY).
813 813 do_update_at(Node, Path, F) ->
814 814 case Path of
815 815 [] ->
  @@ -819,7 +819,7 @@ do_update_at(Node, Path, F) ->
819 819 erlang:setelement(
820 820 3,
821 821 Node,
822 - (gleam@dict:update(
822 + (gleam@dict:upsert(
823 823 erlang:element(3, Node),
824 824 Next,
825 825 fun(Found) -> _pipe = Found,
  @@ -833,10 +833,10 @@ do_update_at(Node, Path, F) ->
833 833 end.
834 834
835 835 -spec update_at(
836 - glint(MNX),
836 + glint(MQS),
837 837 list(binary()),
838 - fun((command_node(MNX)) -> command_node(MNX))
839 - ) -> glint(MNX).
838 + fun((command_node(MQS)) -> command_node(MQS))
839 + ) -> glint(MQS).
840 840 update_at(Glint, Path, F) ->
841 841 erlang:setelement(
842 842 3,
  @@ -844,7 +844,7 @@ update_at(Glint, Path, F) ->
844 844 do_update_at(erlang:element(3, Glint), sanitize_path(Path), F)
845 845 ).
846 846
847 - -spec path_help(glint(MHZ), list(binary()), binary()) -> glint(MHZ).
847 + -spec path_help(glint(MKU), list(binary()), binary()) -> glint(MKU).
848 848 path_help(Glint, Path, Description) ->
849 849 update_at(
850 850 Glint,
  @@ -852,7 +852,7 @@ path_help(Glint, Path, Description) ->
852 852 fun(Node) -> erlang:setelement(5, Node, Description) end
853 853 ).
854 854
855 - -spec add(glint(MIG), list(binary()), command(MIG)) -> glint(MIG).
855 + -spec add(glint(MLB), list(binary()), command(MLB)) -> glint(MLB).
856 856 add(Glint, Path, Command) ->
857 857 update_at(
858 858 Glint,
  @@ -871,7 +871,7 @@ add(Glint, Path, Command) ->
871 871 end
872 872 ).
873 873
874 - -spec group_flag(glint(MJH), list(binary()), flag(any())) -> glint(MJH).
874 + -spec group_flag(glint(MMC), list(binary()), flag(any())) -> glint(MMC).
875 875 group_flag(Glint, Path, Flag) ->
876 876 update_at(
877 877 Glint,
  @@ -948,10 +948,10 @@ update_flags(Flags, Flag_input) ->
948 948 -spec execute_root(
949 949 list(binary()),
950 950 config(),
951 - command_node(MKD),
951 + command_node(MMY),
952 952 list(binary()),
953 953 list(binary())
954 - ) -> {ok, out(MKD)} | {error, binary()}.
954 + ) -> {ok, out(MMY)} | {error, binary()}.
955 955 execute_root(Path, Config, Cmd, Args, Flag_inputs) ->
956 956 Res = begin
957 957 _pipe@5 = (gleam@option:map(
  @@ -1065,13 +1065,13 @@ execute_root(Path, Config, Cmd, Args, Flag_inputs) ->
1065 1065 end.
1066 1066
1067 1067 -spec do_execute(
1068 - command_node(MJT),
1068 + command_node(MMO),
1069 1069 config(),
1070 1070 list(binary()),
1071 1071 list(binary()),
1072 1072 boolean(),
1073 1073 list(binary())
1074 - ) -> {ok, out(MJT)} | {error, binary()}.
1074 + ) -> {ok, out(MMO)} | {error, binary()}.
1075 1075 do_execute(Cmd, Config, Args, Flags, Help, Command_path) ->
1076 1076 case Args of
1077 1077 [] when Help ->
  @@ -1114,7 +1114,7 @@ do_execute(Cmd, Config, Args, Flags, Help, Command_path) ->
1114 1114 end
1115 1115 end.
1116 1116
1117 - -spec execute(glint(MJN), list(binary())) -> {ok, out(MJN)} | {error, binary()}.
1117 + -spec execute(glint(MMI), list(binary())) -> {ok, out(MMI)} | {error, binary()}.
1118 1118 execute(Glint, Args) ->
1119 1119 Help_flag = <<"--"/utf8,
1120 1120 (erlang:element(
  @@ -1148,7 +1148,7 @@ execute(Glint, Args) ->
1148 1148 []
1149 1149 ).
1150 1150
1151 - -spec run_and_handle(glint(MKN), list(binary()), fun((MKN) -> any())) -> nil.
1151 + -spec run_and_handle(glint(MNI), list(binary()), fun((MNI) -> any())) -> nil.
1152 1152 run_and_handle(Glint, Args, Handle) ->
1153 1153 case execute(Glint, Args) of
1154 1154 {error, S} ->
Loading more files…