comparison irccdctl/cli.cpp @ 450:c8c68d4bf555

Irccdctl: implement rule-remove
author David Demelier <markand@malikania.fr>
date Fri, 07 Jul 2017 12:22:17 +0200
parents 9968eac538e6
children 1fdedd2977d2
comparison
equal deleted inserted replaced
449:9968eac538e6 450:c8c68d4bf555
941 { "index", index } 941 { "index", index }
942 }); 942 });
943 943
944 check(result); 944 check(result);
945 showRule(result, 0); 945 showRule(result, 0);
946 }
947
948 /*
949 * RuleRemoveCli.
950 * ------------------------------------------------------------------
951 */
952
953 RuleRemoveCli::RuleRemoveCli()
954 : Cli("rule-remove",
955 "remove a rule",
956 "rule-remove index",
957 "Remove an existing rule.\n\n"
958 "Example:\n"
959 "\tirccdctl rule-remove 0\n"
960 "\tirccdctl rule-remove 1")
961 {
962 }
963
964 void RuleRemoveCli::exec(Irccdctl &irccdctl, const std::vector<std::string> &args)
965 {
966 if (args.size() < 1)
967 throw std::invalid_argument("rule-remove requires 1 argument");
968
969 int index = 0;
970
971 try {
972 index = std::stoi(args[0]);
973 } catch (...) {
974 throw std::invalid_argument("invalid number '" + args[0] + "'");
975 }
976
977 auto result = request(irccdctl, {
978 { "command", "rule-remove" },
979 { "index", index }
980 });
981
982 check(result);
946 } 983 }
947 984
948 /* 985 /*
949 * WatchCli. 986 * WatchCli.
950 * ------------------------------------------------------------------ 987 * ------------------------------------------------------------------