summaryrefslogtreecommitdiffstats
path: root/sinksh/syntax_modules/sink_remove.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sinksh/syntax_modules/sink_remove.cpp')
-rw-r--r--sinksh/syntax_modules/sink_remove.cpp28
1 files changed, 15 insertions, 13 deletions
diff --git a/sinksh/syntax_modules/sink_remove.cpp b/sinksh/syntax_modules/sink_remove.cpp
index 6baa60f..999a889 100644
--- a/sinksh/syntax_modules/sink_remove.cpp
+++ b/sinksh/syntax_modules/sink_remove.cpp
@@ -37,20 +37,12 @@
37namespace SinkRemove 37namespace SinkRemove
38{ 38{
39 39
40Syntax::List syntax();
41
40bool remove(const QStringList &args, State &state) 42bool remove(const QStringList &args, State &state)
41{ 43{
42 if (args.isEmpty()) {
43 state.printError(QObject::tr("A type is required"), "sink_remove/02");
44 return false;
45 }
46
47 if (args.count() < 2) {
48 state.printError(QObject::tr("A resource ID is required to remove items"), "sink_remove/03");
49 return false;
50 }
51
52 if (args.count() < 3) { 44 if (args.count() < 3) {
53 state.printError(QObject::tr("An object ID is required to remove items"), "sink_remove/03"); 45 state.printError(syntax()[0].usage());
54 return false; 46 return false;
55 } 47 }
56 48
@@ -137,14 +129,24 @@ bool identity(const QStringList &args, State &state)
137 return true; 129 return true;
138} 130}
139 131
140
141Syntax::List syntax() 132Syntax::List syntax()
142{ 133{
143 Syntax remove("remove", QObject::tr("Remove items in a resource"), &SinkRemove::remove); 134 Syntax remove("remove", QObject::tr("Remove items in a resource"), &SinkRemove::remove);
135
136 remove.addPositionalArgument({ .name = "type", .help = "The type of entity to remove (mail, event, etc.)" });
137 remove.addPositionalArgument({ .name = "resourceId", .help = "The ID of the resource containing the entity" });
138 remove.addPositionalArgument({ .name = "objectId", .help = "The ID of the entity to remove" });
139
144 Syntax resource("resource", QObject::tr("Removes a resource"), &SinkRemove::resource, Syntax::NotInteractive); 140 Syntax resource("resource", QObject::tr("Removes a resource"), &SinkRemove::resource, Syntax::NotInteractive);
141 resource.addPositionalArgument({ .name = "id", .help = "The ID of the resource to remove" });
142 resource.completer = &SinkshUtils::resourceCompleter;
143
145 Syntax account("account", QObject::tr("Removes a account"), &SinkRemove::account, Syntax::NotInteractive); 144 Syntax account("account", QObject::tr("Removes a account"), &SinkRemove::account, Syntax::NotInteractive);
145 account.addPositionalArgument({ .name = "id", .help = "The ID of the account to remove" });
146
146 Syntax identity("identity", QObject::tr("Removes an identity"), &SinkRemove::identity, Syntax::NotInteractive); 147 Syntax identity("identity", QObject::tr("Removes an identity"), &SinkRemove::identity, Syntax::NotInteractive);
147 resource.completer = &SinkshUtils::resourceCompleter; 148 identity.addPositionalArgument({ .name = "id", .help = "The ID of the account to remove" });
149
148 remove.children << resource << account << identity; 150 remove.children << resource << account << identity;
149 151
150 return Syntax::List() << remove; 152 return Syntax::List() << remove;