-use std::fs::{create_dir_all, rename};
-use std::io::Result;
-use super::{
- generate::Generate,
- sync_down::SyncDown,
- sync_up::SyncUp,
- update::Update
-};
+use super::{generate::Generate, sync_down::SyncDown, sync_up::SyncUp, update::Update};
use crate::configuration::Configuration;
+use std::fs::{create_dir_all, remove_dir_all, rename};
+use std::io::Result;
pub struct Add;
vec![Box::new(SyncDown::new())]
}
- fn execute(&self, _: Option<&String>, configuration: &Configuration, _: &String) -> Result<()> {
+ fn execute(&self, _: Option<&String>, configuration: &Configuration, _: &str) -> Result<()> {
create_dir_all(&configuration.posts_directory)?;
- for i in (0..configuration.max_posts).rev() {
+ for i in (0..configuration.max_posts - 1).rev() {
let source = configuration.posts_directory.join(i.to_string());
let target = configuration.posts_directory.join((i + 1).to_string());
+ if target.exists() {
+ remove_dir_all(&target)?;
+ }
if source.exists() {
rename(&source, &target)?;
}
vec![
Box::new(Update::new()),
Box::new(Generate::new()),
- Box::new(SyncUp::new())
+ Box::new(SyncUp::new()),
]
}