pub mod add; pub mod generate; pub mod update; pub mod publish; pub mod publish_archive; pub mod add_remote; pub mod remove_remote; pub mod sync_up; pub mod sync_down; pub mod status; pub mod version; pub mod help; use std::io::Result; use add::Add; use generate::Generate; use update::Update; use publish::Publish; use publish_archive::PublishArchive; use add_remote::AddRemote; use remove_remote::RemoveRemote; use sync_up::SyncUp; use sync_down::SyncDown; use version::Version; use status::Status; use help::Help; use crate::configuration::Configuration; pub trait Command { fn before_dependencies(&self) -> Vec>; fn execute(&self, input: Option<&String>, configuration: &Configuration, command: &String) -> Result<()>; fn after_dependencies(&self) -> Vec>; fn command(&self) -> &'static str; fn help(&self) -> &'static str; } pub fn available_commands() -> Vec> { vec![ Box::new(Add::new()), Box::new(Generate::new()), Box::new(Update::new()), Box::new(Publish::new()), Box::new(PublishArchive::new()), Box::new(AddRemote::new()), Box::new(RemoveRemote::new()), Box::new(SyncUp::new()), Box::new(SyncDown::new()), Box::new(Status::new()), Box::new(Version::new()), Box::new(Help::new()) ] }