summaryrefslogtreecommitdiff
path: root/src/cmd/list_files.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/list_files.rs')
-rw-r--r--src/cmd/list_files.rs31
1 files changed, 20 insertions, 11 deletions
diff --git a/src/cmd/list_files.rs b/src/cmd/list_files.rs
index 71b0d68..22b102e 100644
--- a/src/cmd/list_files.rs
+++ b/src/cmd/list_files.rs
@@ -1,24 +1,33 @@
use crate::backup_reason::Reason;
use crate::client::BackupClient;
-use crate::client::ClientConfig;
+use crate::config::ClientConfig;
use crate::error::ObnamError;
use crate::fsentry::{FilesystemEntry, FilesystemKind};
+use structopt::StructOpt;
use tempfile::NamedTempFile;
-pub fn list_files(config: &ClientConfig, gen_ref: &str) -> Result<(), ObnamError> {
- let temp = NamedTempFile::new()?;
+#[derive(Debug, StructOpt)]
+pub struct ListFiles {
+ #[structopt(default_value = "latest")]
+ gen_id: String,
+}
- let client = BackupClient::new(config)?;
+impl ListFiles {
+ pub fn run(&self, config: &ClientConfig) -> Result<(), ObnamError> {
+ let temp = NamedTempFile::new()?;
- let genlist = client.list_generations()?;
- let gen_id: String = genlist.resolve(gen_ref)?;
+ let client = BackupClient::new(config)?;
- let gen = client.fetch_generation(&gen_id, temp.path())?;
- for file in gen.files()? {
- println!("{}", format_entry(&file.entry(), file.reason()));
- }
+ let genlist = client.list_generations()?;
+ let gen_id: String = genlist.resolve(&self.gen_id)?;
- Ok(())
+ let gen = client.fetch_generation(&gen_id, temp.path())?;
+ for file in gen.files()? {
+ println!("{}", format_entry(&file.entry(), file.reason()));
+ }
+
+ Ok(())
+ }
}
fn format_entry(e: &FilesystemEntry, reason: Reason) -> String {