pub struct MonitorArgs {
pub follow: bool,
pub after: Option<String>,
pub limit: Option<u64>,
pub sources: Option<String>,
pub reader: Option<String>,
pub since: Option<u64>,
pub pattern: Option<String>,
pub count: Option<u64>,
pub until: Option<String>,
pub timeout: Option<u64>,
pub interval: u64,
pub query: MeshQueryArgs,
}Expand description
monitor: one page of the stream, or --follow to keep printing what is new. --count
and --until end a follow, so a script or an agent can wait for one event and go on;
--match keeps only the signals whose summary contains a text.
use clap::Parser;
use majordomus_cli::cli::{Cli, Command, MonitorArgs};
let cli = Cli::try_parse_from([
"majordomus", "monitor", "--follow", "--for", "1b", "--match", "#885", "--until", "merged",
"--since", "30m", "--sources", "mesh,executor",
])
.unwrap();
let Command::Monitor(m) = cli.command else { panic!("expected `monitor`") };
let m: MonitorArgs = m;
assert!(m.follow);
assert_eq!(m.reader.as_deref(), Some("1b"));
assert_eq!(m.until.as_deref(), Some("merged"));
assert_eq!(m.since, Some(1800));
assert_eq!(m.interval, 2);
// a duration is seconds, or a number with s, m, h or d
assert!(Cli::try_parse_from(["majordomus", "monitor", "--since", "soon"]).is_err());Fields§
§follow: boolKeep following: ask again every --interval seconds and print only what is new
after: Option<String>Start after this cursor (a page’s cursor), instead of the newest signals
limit: Option<u64>At most this many signals per page (default 50, at most 500)
sources: Option<String>A comma-separated subset of mesh, executor and github (default: all three)
reader: Option<String>Your names, comma-separated (a worker such as 1b, a role, a login): what names them is marked for you; default $MAJORDOMUS_MONITOR_FOR
since: Option<u64>How far back the first page reaches: seconds, or a number with s, m, h or d (default 1h)
pattern: Option<String>Keep only signals whose summary contains this text (case-insensitive)
count: Option<u64>Stop following after this many signals
until: Option<String>Stop following at the first signal of this kind (e.g. merged, review_requested, run_failed)
timeout: Option<u64>Give up following after this long, exiting 10: seconds, or a number with s, m, h or d
interval: u64Seconds between two asks while following
query: MeshQueryArgsWhere the repository is and how to answer.
Trait Implementations§
Source§impl Args for MonitorArgs
impl Args for MonitorArgs
Source§fn group_id() -> Option<Id>
fn group_id() -> Option<Id>
ArgGroup::id][crate::ArgGroup::id] for this set of argumentsSource§fn augment_args<'b>(__clap_app: Command) -> Command
fn augment_args<'b>(__clap_app: Command) -> Command
Source§fn augment_args_for_update<'b>(__clap_app: Command) -> Command
fn augment_args_for_update<'b>(__clap_app: Command) -> Command
Command] so it can instantiate self via
[FromArgMatches::update_from_arg_matches_mut] Read moreSource§impl Debug for MonitorArgs
impl Debug for MonitorArgs
Source§impl FromArgMatches for MonitorArgs
impl FromArgMatches for MonitorArgs
Source§fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
Source§fn from_arg_matches_mut(
__clap_arg_matches: &mut ArgMatches,
) -> Result<Self, Error>
fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches, ) -> Result<Self, Error>
Source§fn update_from_arg_matches(
&mut self,
__clap_arg_matches: &ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches, ) -> Result<(), Error>
ArgMatches to self.Source§fn update_from_arg_matches_mut(
&mut self,
__clap_arg_matches: &mut ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches_mut( &mut self, __clap_arg_matches: &mut ArgMatches, ) -> Result<(), Error>
ArgMatches to self.