Mercurial > irccd
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 * ------------------------------------------------------------------ |