};
resp
}
+
+ #[throws(AE)]
+ fn list_items(&mut self, pat: &shapelib::ItemSpec)
+ -> Vec<shapelib::ItemEnquiryData> {
+ let cmd = MgmtCommand::LibraryListByGlob { glob: pat.clone() };
+ let mut items = match self.cmd(&cmd)? {
+ MgmtResponse::LibraryItems(items) => items,
+ wat => Err(anyhow!("unexpected LibraryListByGlob response: {:?}",
+ &wat))?,
+ };
+ items.sort();
+ items
+ }
}
struct ConnForGame {
wat => Err(anyhow!("ListPieces => {:?}", &wat))?,
}
}
-
- #[throws(AE)]
- fn list_items(&mut self, pat: &shapelib::ItemSpec)
- -> Vec<shapelib::ItemEnquiryData> {
- let cmd = MgmtCommand::LibraryListByGlob { glob: pat.clone() };
- let mut items = match self.cmd(&cmd)? {
- MgmtResponse::LibraryItems(items) => items,
- wat => Err(anyhow!("unexpected LibraryListByGlob response: {:?}",
- &wat))?,
- };
- items.sort();
- items
- }
}
#[throws(E)]
//---------- library-list ----------
#[derive(Debug)]
-struct TableLibGlobArgs {
- table_name: String,
+struct LibGlobArgs {
pat: shapelib::ItemSpec,
}
-impl Default for TableLibGlobArgs { fn default() -> Self { Self {
- table_name: default(),
+impl Default for LibGlobArgs { fn default() -> Self { Self {
pat: shapelib::ItemSpec { lib: default(), item: default() },
} } }
-impl TableLibGlobArgs {
+impl LibGlobArgs {
fn add_arguments<'ap, 'tlg : 'ap>(
&'tlg mut self,
ap: &'_ mut ArgumentParser<'ap>
) {
use argparse::*;
- ap.refer(&mut self.table_name).required()
- .add_argument("TABLE-NAME",Store,"table name");
ap.refer(&mut self.pat.lib).required()
.add_argument("LIB-NAME",Store,"library name");
ap.refer(&mut self.pat.item).required()
mod library_list {
use super::*;
- type Args = TableLibGlobArgs;
+ type Args = LibGlobArgs;
fn subargs(sa: &mut Args) -> ArgumentParser {
use argparse::*;
fn call(_sc: &Subcommand, ma: MainOpts, args: Vec<String>) ->Result<(),AE> {
let args = parse_args::<Args,_>(args, &subargs, &ok_id, None);
- let mut chan = ConnForGame {
- conn: connect(&ma)?,
- game: ma.instance_name(&args.table_name),
- how: MgmtGameUpdateMode::Bulk,
- };
+ let mut chan = connect(&ma)?;
let items = chan.list_items(&args.pat)?;
for it in &items {
#[derive(Default,Debug)]
struct Args {
- tlg: TableLibGlobArgs,
+ table_name: String,
+ tlg: LibGlobArgs,
adjust_markers: Option<bool>,
incremental: bool,
}
fn subargs(sa: &mut Args) -> ArgumentParser {
use argparse::*;
let mut ap = ArgumentParser::new();
+ ap.refer(&mut sa.table_name).required()
+ .add_argument("TABLE-NAME",Store,"table name");
ap.refer(&mut sa.adjust_markers)
.add_option(&["--no-adjust-markers"],StoreConst(Some(false)),
"do not adjust the number of insertion markers, just fail")
let args = parse_args::<Args,_>(args, &subargs, &ok_id, None);
let mut chan = ConnForGame {
conn: connect(&ma)?,
- game: ma.instance_name(&args.tlg.table_name),
+ game: ma.instance_name(&args.table_name),
how: MgmtGameUpdateMode::Online,
};
let pieces = chan.get_pieces()?;