summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorA. Wilcox <AWilcox@Wilcox-Tech.com>2019-10-06 18:50:09 -0500
committerA. Wilcox <AWilcox@Wilcox-Tech.com>2019-10-06 18:50:09 -0500
commitefc18bc3a4116c606e1c546877f2d5d9e6b9fbda (patch)
tree582831deae7d9d0a512841214c58df769871fb4a /tools
parentbaaf248ae130ebf9aa9d35c6d66f7e2180d5d061 (diff)
downloadhorizon-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.cc20
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;