diff options
author | A. Wilcox <AWilcox@Wilcox-Tech.com> | 2019-10-06 18:50:09 -0500 |
---|---|---|
committer | A. Wilcox <AWilcox@Wilcox-Tech.com> | 2019-10-06 18:50:09 -0500 |
commit | efc18bc3a4116c606e1c546877f2d5d9e6b9fbda (patch) | |
tree | 582831deae7d9d0a512841214c58df769871fb4a /tools | |
parent | baaf248ae130ebf9aa9d35c6d66f7e2180d5d061 (diff) | |
download | horizon-efc18bc3a4116c606e1c546877f2d5d9e6b9fbda.tar.gz horizon-efc18bc3a4116c606e1c546877f2d5d9e6b9fbda.tar.bz2 horizon-efc18bc3a4116c606e1c546877f2d5d9e6b9fbda.tar.xz horizon-efc18bc3a4116c606e1c546877f2d5d9e6b9fbda.zip |
validator: Allow disabling Pretty; default if not TTY
Diffstat (limited to 'tools')
-rw-r--r-- | tools/hscript-validate/validator.cc | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/tools/hscript-validate/validator.cc b/tools/hscript-validate/validator.cc index 5ebb9d4..addc968 100644 --- a/tools/hscript-validate/validator.cc +++ b/tools/hscript-validate/validator.cc @@ -9,6 +9,7 @@ * SPDX-License-Identifier: AGPL-3.0-only */ +#include <unistd.h> #include "hscript/script.hh" #include "util/output.hh" #include "3rdparty/clipp.h" @@ -19,10 +20,18 @@ int main(int argc, char *argv[]) { int result_code = EXIT_SUCCESS; std::string installfile; + /* Default to pretty if we are using a TTY, unless -n specified. */ + if(isatty(1) && isatty(2)) { + opts.set(Horizon::ScriptOptionFlags::Pretty); + } + auto cli = ( clipp::value("installfile", installfile), clipp::option("-k", "--keep-going").doc("Continue parsing after errors")( [&opts] { opts.set(Horizon::ScriptOptionFlags::KeepGoing); } + ), + clipp::option("-n", "--no-colour").doc("Do not 'prettify' output")( + [&opts] { opts.reset(Horizon::ScriptOptionFlags::Pretty); } ) ); if(!clipp::parse(argc, argv, cli)) { @@ -31,12 +40,17 @@ int main(int argc, char *argv[]) { return EXIT_FAILURE; } - std::cout << "\033[1mHorizonScript Validation Utility version 0.1.0\033[0m" << std::endl; + if(opts.test(Horizon::ScriptOptionFlags::Pretty)) { + std::cout << "\033[1m"; + } + std::cout << "HorizonScript Validation Utility version 0.1.0"; + if(opts.test(Horizon::ScriptOptionFlags::Pretty)) { + std::cout << "\033[0m"; + } + std::cout << std::endl; std::cout << "Copyright (c) 2019 Adélie Linux and contributors. AGPL-3.0 license." << std::endl; std::cout << std::endl; - opts.set(Horizon::ScriptOptionFlags::Pretty); - my_script = Horizon::Script::load(installfile, opts); if(my_script == nullptr) { std::cout << "Could not load the specified script." << std::endl; |