aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNathan Jaremko2018-05-16 22:36:50 -0400
committerNathan Jaremko2018-05-16 22:36:50 -0400
commite394ea52b04a99ba55719a7a9764bca3ebb591d2 (patch)
treec35a6d094d89eeec8adeb4e352d8d1c9cb010f7a
parent0b9e9f9092b72b24ce1ec1fc058107f296c64838 (diff)
downloadpodcast-e394ea52b04a99ba55719a7a9764bca3ebb591d2.tar.bz2
Attempt to fix windows rename bug
-rw-r--r--.travis.yml3
-rw-r--r--CHANGELOG3
-rw-r--r--Cargo.toml2
-rw-r--r--README.md5
-rw-r--r--src/actions.rs4
-rw-r--r--src/main.rs2
-rw-r--r--src/structs.rs16
7 files changed, 23 insertions, 12 deletions
diff --git a/.travis.yml b/.travis.yml
index a13d602..a0eaddd 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -17,6 +17,9 @@ matrix:
- os: linux
rust: beta
env: TARGET=x86_64-unknown-linux-gnu
+ - os: osx
+ rust: beta
+ env: TARGET=x86_64-apple-darwin
before_install:
- export PATH="$PATH:$HOME/.cargo/bin"
diff --git a/CHANGELOG b/CHANGELOG
index 976e9cb..fecadbc 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,6 @@
+0.5.5
+- Attempt at better handling file handles to fix windows bug regarding renaming .subscriptions.tmp
+
0.5.4
- Improve error handling throughout the application (using error-chain)
diff --git a/Cargo.toml b/Cargo.toml
index 13f222e..fd507e3 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "podcast"
-version = "0.5.4"
+version = "0.5.5"
authors = ["Nathan Jaremko <njaremko@gmail.com>"]
description = "A command line podcast manager"
license = "GPL-3.0"
diff --git a/README.md b/README.md
index 1161056..d6e8edc 100644
--- a/README.md
+++ b/README.md
@@ -12,16 +12,15 @@
- [x] Playing podcasts
- [x] Auto-download new episodes
- [x] Automatically check for updates
-- [ ] Auto-delete old episodes
- [ ] Shell Completions
- [x] zsh
- [ ] bash
- [ ] sh
- [ ] Searching for podcasts...(WIP)
-By default, podcasts are downloaded to $HOME/Podcasts, but this folder can be set with the $PODCASTS environmental variable.
+By default, podcasts are downloaded to $HOME/Podcasts, but this folder can be set with the $PODCAST environmental variable.
-How many latest episodes to download when subscibing to new podcasts can be set in the $PODCASTS/.config YAML file
+How many latest episodes to download when subscibing to new podcasts can be set in the $PODCAST/.config YAML file
Downloads can be done a variety of ways:
diff --git a/src/actions.rs b/src/actions.rs
index 8adea4c..6a8951d 100644
--- a/src/actions.rs
+++ b/src/actions.rs
@@ -264,7 +264,9 @@ pub fn play_episode(state: &State, p_search: &str, ep_num_string: &str) -> Resul
if path.exists() {
launch_player(path.to_str().chain_err(|| UNABLE_TO_CONVERT_TO_STR)?)?;
} else {
- launch_player(episode.url().chain_err(|| "unable to retrieve episode url")?)?;
+ launch_player(episode
+ .url()
+ .chain_err(|| "unable to retrieve episode url")?)?;
}
return Ok(());
}
diff --git a/src/main.rs b/src/main.rs
index 35498df..4016199 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -29,7 +29,7 @@ use utils::*;
use clap::{App, Arg, SubCommand};
-const VERSION: &str = "0.5.4";
+const VERSION: &str = "0.5.5";
fn main() -> Result<()> {
create_directories().chain_err(|| "unable to create directories")?;
diff --git a/src/structs.rs b/src/structs.rs
index 03a9932..0caed73 100644
--- a/src/structs.rs
+++ b/src/structs.rs
@@ -67,9 +67,11 @@ impl State {
path.push(".subscriptions");
if path.exists() {
let mut s = String::new();
- let mut file = File::open(&path).chain_err(|| UNABLE_TO_OPEN_FILE)?;
- file.read_to_string(&mut s)
- .chain_err(|| UNABLE_TO_READ_FILE_TO_STRING)?;
+ {
+ let mut file = File::open(&path).chain_err(|| UNABLE_TO_OPEN_FILE)?;
+ file.read_to_string(&mut s)
+ .chain_err(|| UNABLE_TO_READ_FILE_TO_STRING)?;
+ }
let mut state: State = match serde_json::from_str(&s) {
Ok(val) => val,
// This will happen if the struct has changed between versions
@@ -132,9 +134,11 @@ impl State {
let mut path = get_podcast_dir()?;
path.push(".subscriptions.tmp");
let serialized = serde_json::to_string(self).chain_err(|| "unable to serialize state")?;
- let mut file = File::create(&path).chain_err(|| UNABLE_TO_CREATE_FILE)?;
- file.write_all(serialized.as_bytes())
- .chain_err(|| UNABLE_TO_WRITE_FILE)?;
+ {
+ let mut file = File::create(&path).chain_err(|| UNABLE_TO_CREATE_FILE)?;
+ file.write_all(serialized.as_bytes())
+ .chain_err(|| UNABLE_TO_WRITE_FILE)?;
+ }
fs::rename(&path, get_sub_file()?).chain_err(|| "unable to rename file")?;
Ok(())
}