+use std::fs::{create_dir_all, remove_dir_all, rename};
use std::io::Result;
use super::{
generate::Generate,
sync_up::SyncUp,
update::Update
};
+use crate::configuration::Configuration;
pub struct Add;
vec![Box::new(SyncDown::new())]
}
- fn execute(&self, input: Option<&String>) -> Result<()> {
- println!("Add: {:?}!", input);
- return Ok(())
+ fn execute(&self, _: Option<&String>, configuration: &Configuration, _: &String) -> Result<()> {
+ create_dir_all(&configuration.posts_directory)?;
+ 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)?;
+ }
+ }
+ Ok(())
}
fn after_dependencies(&self) -> Vec<Box<dyn super::Command>> {