comparison irccdctl/cli.cpp @ 449:9968eac538e6

Irccdctl: implement rule-info
author David Demelier <markand@malikania.fr>
date Thu, 06 Jul 2017 12:48:58 +0200
parents 9be4f8a5cf1a
children c8c68d4bf555
comparison
equal deleted inserted replaced
448:9be4f8a5cf1a 449:9968eac538e6
903 if (!obj.is_object()) 903 if (!obj.is_object())
904 continue; 904 continue;
905 905
906 showRule(obj, pos++); 906 showRule(obj, pos++);
907 } 907 }
908 }
909
910 /*
911 * RuleInfoCli.
912 * ------------------------------------------------------------------
913 */
914
915 RuleInfoCli::RuleInfoCli()
916 : Cli("rule-info",
917 "show a rule",
918 "rule-info index",
919 "Show a rule.\n\n"
920 "Example:\n"
921 "\tirccdctl rule-info 0\n"
922 "\tirccdctl rule-info 1")
923 {
924 }
925
926 void RuleInfoCli::exec(Irccdctl &irccdctl, const std::vector<std::string> &args)
927 {
928 if (args.size() < 1)
929 throw std::invalid_argument("rule-info requires 1 argument");
930
931 int index = 0;
932
933 try {
934 index = std::stoi(args[0]);
935 } catch (...) {
936 throw std::invalid_argument("invalid number '" + args[0] + "'");
937 }
938
939 auto result = request(irccdctl, {
940 { "command", "rule-info" },
941 { "index", index }
942 });
943
944 check(result);
945 showRule(result, 0);
908 } 946 }
909 947
910 /* 948 /*
911 * WatchCli. 949 * WatchCli.
912 * ------------------------------------------------------------------ 950 * ------------------------------------------------------------------