From eb4c557efa38673eba773bda6b71a286d0c3c3b1 Mon Sep 17 00:00:00 2001 From: Minijackson Date: Thu, 2 Aug 2018 10:40:35 +0200 Subject: Add subcommand/parameter/option/flag and automatic help --- sinksh/syntax_modules/sink_clear.cpp | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) (limited to 'sinksh/syntax_modules/sink_clear.cpp') diff --git a/sinksh/syntax_modules/sink_clear.cpp b/sinksh/syntax_modules/sink_clear.cpp index e676dd6..536e9df 100644 --- a/sinksh/syntax_modules/sink_clear.cpp +++ b/sinksh/syntax_modules/sink_clear.cpp @@ -35,10 +35,25 @@ namespace SinkClear { +bool clear(const QStringList &args, State &state); + +Syntax::List syntax() +{ + Syntax clear("clear", QObject::tr("Clears the local cache of one or more resources (be careful!)"), &SinkClear::clear, Syntax::NotInteractive); + + clear.addPositionalArgument({.name = "resource", .help = "The resource to clear"}); + + clear.completer = &SinkshUtils::resourceCompleter; + + return Syntax::List() << clear; +} + +REGISTER_SYNTAX(SinkClear) + bool clear(const QStringList &args, State &state) { if (args.isEmpty()) { - state.printError(QObject::tr("Please provide at least one resource to clear.")); + state.printError(syntax()[0].usage()); return false; } for (const auto &resource : args) { @@ -50,14 +65,4 @@ bool clear(const QStringList &args, State &state) return true; } -Syntax::List syntax() -{ - Syntax clear("clear", QObject::tr("Clears the local cache of one or more resources (be careful!)"), &SinkClear::clear, Syntax::NotInteractive); - clear.completer = &SinkshUtils::resourceCompleter; - - return Syntax::List() << clear; -} - -REGISTER_SYNTAX(SinkClear) - } -- cgit v1.2.3