aboutsummaryrefslogtreecommitdiff
path: root/v_windows/v/vlib/os/args.v
diff options
context:
space:
mode:
Diffstat (limited to 'v_windows/v/vlib/os/args.v')
-rw-r--r--v_windows/v/vlib/os/args.v51
1 files changed, 51 insertions, 0 deletions
diff --git a/v_windows/v/vlib/os/args.v b/v_windows/v/vlib/os/args.v
new file mode 100644
index 0000000..597637c
--- /dev/null
+++ b/v_windows/v/vlib/os/args.v
@@ -0,0 +1,51 @@
+// Copyright (c) 2019-2021 Alexander Medvednikov. All rights reserved.
+// Use of this source code is governed by an MIT license
+// that can be found in the LICENSE file.
+module os
+
+// args_after returns all os.args, located *after* a specified `cut_word`.
+// When `cut_word` is NOT found, os.args is returned unmodified.
+pub fn args_after(cut_word string) []string {
+ if args.len == 0 {
+ return []string{}
+ }
+ mut cargs := []string{}
+ if cut_word !in args {
+ cargs = args.clone()
+ } else {
+ mut found := false
+ cargs << args[0]
+ for a in args[1..] {
+ if a == cut_word {
+ found = true
+ continue
+ }
+ if !found {
+ continue
+ }
+ cargs << a
+ }
+ }
+ return cargs
+}
+
+// args_after returns all os.args, located *before* a specified `cut_word`.
+// When `cut_word` is NOT found, os.args is returned unmodified.
+pub fn args_before(cut_word string) []string {
+ if args.len == 0 {
+ return []string{}
+ }
+ mut cargs := []string{}
+ if cut_word !in args {
+ cargs = args.clone()
+ } else {
+ cargs << args[0]
+ for a in args[1..] {
+ if a == cut_word {
+ break
+ }
+ cargs << a
+ }
+ }
+ return cargs
+}