Add export subcommand

This commit is contained in:
Kid 2020-12-21 13:08:06 +08:00
parent ff16bf140c
commit de8a37e3a7
2 changed files with 31 additions and 0 deletions

27
src/cmd/export.rs Normal file
View File

@ -0,0 +1,27 @@
use super::Cmd;
use crate::config;
use crate::store::Store;
use anyhow::{Context, Result};
use clap::Clap;
use std::io::{self, Write};
/// Export entries from database
#[derive(Clap, Debug)]
pub struct Export {}
impl Cmd for Export {
fn run(&self) -> Result<()> {
let data_dir = config::zo_data_dir()?;
let store = Store::open(&data_dir)?;
let mut handle = io::stdout();
for dir in store.dirs.iter() {
writeln!(handle, "{}|{}|{}", dir.path, dir.rank, dir.last_accessed)
.context("could not write to stdout")?;
}
Ok(())
}
}

View File

@ -1,4 +1,5 @@
mod add; mod add;
mod export;
mod import; mod import;
mod init; mod init;
mod query; mod query;
@ -8,6 +9,7 @@ use anyhow::Result;
use clap::{AppSettings, Clap}; use clap::{AppSettings, Clap};
pub use add::Add; pub use add::Add;
pub use export::Export;
pub use import::Import; pub use import::Import;
pub use init::Init; pub use init::Init;
pub use query::Query; pub use query::Query;
@ -21,6 +23,7 @@ pub trait Cmd {
#[clap(about, author, global_setting(AppSettings::GlobalVersion), global_setting(AppSettings::VersionlessSubcommands), version = env!("ZOXIDE_VERSION"))] #[clap(about, author, global_setting(AppSettings::GlobalVersion), global_setting(AppSettings::VersionlessSubcommands), version = env!("ZOXIDE_VERSION"))]
pub enum App { pub enum App {
Add(Add), Add(Add),
Export(Export),
Import(Import), Import(Import),
Init(Init), Init(Init),
Query(Query), Query(Query),
@ -31,6 +34,7 @@ impl Cmd for App {
fn run(&self) -> Result<()> { fn run(&self) -> Result<()> {
match self { match self {
App::Add(cmd) => cmd.run(), App::Add(cmd) => cmd.run(),
App::Export(cmd) => cmd.run(),
App::Import(cmd) => cmd.run(), App::Import(cmd) => cmd.run(),
App::Init(cmd) => cmd.run(), App::Init(cmd) => cmd.run(),
App::Query(cmd) => cmd.run(), App::Query(cmd) => cmd.run(),