From 72945d9c8eee18aed1550c3f42dc41e6a8a0f029 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Mon, 22 Jul 2019 22:37:40 +0300 Subject: Use CLI-generated classes to parse testscript builtin options --- libbuild2/test/script/builtin.cli | 103 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 libbuild2/test/script/builtin.cli (limited to 'libbuild2/test/script/builtin.cli') diff --git a/libbuild2/test/script/builtin.cli b/libbuild2/test/script/builtin.cli new file mode 100644 index 0000000..8b8de73 --- /dev/null +++ b/libbuild2/test/script/builtin.cli @@ -0,0 +1,103 @@ +// file : libbuild2/test/script/builtin.cli +// copyright : Copyright (c) 2014-2019 Code Synthesis Ltd +// license : MIT; see accompanying LICENSE file + +include ; + +// Note that options in this file are undocumented because we generate neither +// the usage printing code nor man pages. Instead, they are documented in the +// Testscript Language Manual's builtin descriptions. +// +// Also note that the string type is used for the path options because their +// parsing depends on the testscript scope working directory (see parse_path() +// for details) and passing this information to the CLI custom parser would +// not be easy. +// +namespace build2 +{ + namespace test + { + namespace script + { + // Common option base classes. + // + + class cleanup_options = 0 + { + bool --no-cleanup; + }; + + // Builtin options. + // + + class cat_options + { + // No options so far. + // + }; + + class cp_options: cleanup_options + { + bool --recursive|-R|-r; + bool --preserve|-p; + }; + + class ln_options: cleanup_options + { + bool --symbolic|-s; + }; + + class mkdir_options: cleanup_options + { + bool --parents|-p; + }; + + class mv_options: cleanup_options + { + bool --force|-f; + }; + + class rm_options + { + bool --recursive|-r; + bool --force|-f; + }; + + class rmdir_options + { + bool --force|-f; + }; + + class sed_options + { + bool --quiet|-n; + bool --in-place|-i; + strings --expression|-e; + }; + + class set_options + { + bool --exact|-e; + bool --newline|-n; + bool --whitespace|-w; + }; + + class sleep_options + { + // No options so far. + // + }; + + class test_options + { + bool --file|-f; + bool --directory|-d; + }; + + class touch_options: cleanup_options + { + string --after; // Path (see above). + }; + } + } +} -- cgit v1.1