aboutsummaryrefslogtreecommitdiffstats
path: root/src/cmd/record.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/record.rs')
-rw-r--r--src/cmd/record.rs11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/cmd/record.rs b/src/cmd/record.rs
index 7481f92..4a1ab6e 100644
--- a/src/cmd/record.rs
+++ b/src/cmd/record.rs
@@ -97,6 +97,7 @@ enum FileState {
filename: String,
},
Opening {
+ filename: String,
fut: tokio::fs::file::CreateFuture<String>,
},
Open {
@@ -166,13 +167,17 @@ impl RecordSession {
match &mut self.file {
FileState::Closed { filename } => {
self.file = FileState::Opening {
+ filename: filename.to_string(),
fut: tokio::fs::File::create(filename.to_string()),
};
Ok(crate::component_future::Async::DidWork)
}
- FileState::Opening { fut } => {
- let file =
- try_ready!(fut.poll().context(crate::error::OpenFile));
+ FileState::Opening { filename, fut } => {
+ let file = try_ready!(fut.poll().with_context(|| {
+ crate::error::OpenFile {
+ filename: filename.clone(),
+ }
+ }));
let mut file = crate::ttyrec::File::new(file);
file.write_frame(self.buffer.contents())?;
self.file = FileState::Open { file };