]> git.r.bdr.sh - rbdr/blog/blobdiff - src/command/status/mod.rs
Add status command
[rbdr/blog] / src / command / status / mod.rs
diff --git a/src/command/status/mod.rs b/src/command/status/mod.rs
new file mode 100644 (file)
index 0000000..ba73184
--- /dev/null
@@ -0,0 +1,43 @@
+mod configuration_status;
+
+use std::io::Result;
+
+pub struct Status;
+
+impl Status {
+    pub fn new() -> Self {
+        Status
+    }
+}
+
+impl super::Command for Status {
+    fn before_dependencies(&self) -> Vec<Box<dyn super::Command>> {
+        vec![]
+    }
+
+    fn execute(&self, _: Option<&String>) -> Result<()> {
+        let status_providers = available_status_providers();
+        for status_provider in status_providers {
+            println!("{}", status_provider());
+        }
+        return Ok(())
+    }
+
+    fn after_dependencies(&self) -> Vec<Box<dyn super::Command>> {
+        vec![]
+    }
+
+    fn command(&self) -> &'static str {
+        "status"
+    }
+
+    fn help(&self) -> &'static str {
+        "\t\t\t\tPrints the status of your blog"
+    }
+}
+
+fn available_status_providers() -> Vec<fn() -> String> {
+    vec![
+        configuration_status::status,
+    ]
+}