Skip to content

Commit db6356e

Browse files
final
1 parent aa7012f commit db6356e

File tree

2 files changed

+76
-5
lines changed

2 files changed

+76
-5
lines changed

README.md

Lines changed: 69 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,72 @@ end
3333
```
3434

3535
## Geting flags
36-
you can get flags
36+
you can get flags by:
37+
```lua
38+
---@type Argv
39+
argv = require("luargv")
40+
local out_flags, size = argv.get_flag_args({ "out", "output", "o" })
41+
for i = 1, size do
42+
print(out_flags[i])
43+
end
44+
```
45+
if you run:
46+
```shell
47+
lua teste.lua -out test test2
48+
```
49+
it will appear these:
50+
```txt
51+
test
52+
test2
53+
```
54+
55+
## Checking if a flag exist
56+
you can check if a flag its present our not, by:
57+
```lua
58+
---@type Argv
59+
argv = require("luargv")
60+
61+
---@type boolean
62+
local exist = argv.flags_exist({ "case_sensitive", "cs" })
63+
print(exist)
64+
```
65+
## Compact flags
66+
its also possible to get comppact flags (the gcc model), witch increases
67+
readiability of the software:
68+
69+
```lua
70+
---@type Argv
71+
argv = require("luargv")
72+
73+
confs, size = argv.get_compact_flags("conf:")
74+
for i = 1, size do
75+
print(confs[i])
76+
end
77+
```
78+
if you run:
79+
```shell
80+
lua teste.lua conf:test a b conf:test2
81+
```
82+
if will show:
83+
```txt
84+
test
85+
test2
86+
```
87+
## Configuring the project
88+
these lib its project to run idependent from the native lua lib, so you
89+
can configure , every aspect of the code
90+
91+
```lua
92+
---@type Argv
93+
argv = require("luargv")
94+
argv.substr_func = string.gsub
95+
argv.get_str_size = string.len
96+
argv.argslist = { "a", "b", "c" }
97+
argv.flag_identifiers = { "--", "-" }
98+
99+
local size = argv.get_total_args_size()
100+
for i = 1, size do
101+
print(argv.get_arg_by_index(i))
102+
end
103+
104+
```

src/basic.lua

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,13 @@ end
3333
---@class Argv
3434
---@field get_arg_by_index fun(index:number):string
3535
luargv.get_arg_by_index = function(index)
36-
for i = 1, 1000000 do
37-
local decrementer = i * -1
38-
if luargv.argslist[decrementer] == nil then
39-
return luargv.argslist[index + decrementer]
36+
local decrementer = 0
37+
for i = 0, 1000000 do
38+
local converted_i = i * -1
39+
if luargv.argslist[converted_i] == nil then
40+
break
4041
end
42+
decrementer = decrementer + 1
4143
end
44+
return luargv.argslist[index - decrementer]
4245
end

0 commit comments

Comments
 (0)