summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEllie Huxtable <e@elm.sh>2021-02-14 13:28:01 +0000
committerEllie Huxtable <e@elm.sh>2021-02-14 13:28:01 +0000
commitd128297e67c49b4142e8535241c65efcc0ed640e (patch)
tree10ea1626126c4c8a569f12e72f137886ff48f44c /src
parent4fbd43dfe1c1f30329e23c5a477d1c476d6e3c94 (diff)
Make clippy annoying asf + add server
Diffstat (limited to 'src')
-rw-r--r--src/command/mod.rs1
-rw-r--r--src/command/server.rs16
-rw-r--r--src/main.rs15
-rw-r--r--src/server/mod.rs1
-rw-r--r--src/server/server.rs8
5 files changed, 38 insertions, 3 deletions
diff --git a/src/command/mod.rs b/src/command/mod.rs
index c61d2280..5c36146a 100644
--- a/src/command/mod.rs
+++ b/src/command/mod.rs
@@ -1,2 +1,3 @@
pub mod history;
pub mod import;
+pub mod server;
diff --git a/src/command/server.rs b/src/command/server.rs
new file mode 100644
index 00000000..aee64c07
--- /dev/null
+++ b/src/command/server.rs
@@ -0,0 +1,16 @@
+use eyre::Result;
+use structopt::StructOpt;
+
+use crate::server::server;
+
+#[derive(StructOpt)]
+pub enum ServerCmd {
+ Start { command: Vec<String> },
+}
+
+impl ServerCmd {
+ pub fn run(&self) -> Result<()> {
+ server::launch();
+ Ok(())
+ }
+}
diff --git a/src/main.rs b/src/main.rs
index 835ebc86..adcced91 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,3 +1,7 @@
+#![feature(proc_macro_hygiene)]
+#![feature(decl_macro)]
+#![warn(clippy::pedantic)]
+
use std::path::PathBuf;
use directories::ProjectDirs;
@@ -8,12 +12,16 @@ use uuid::Uuid;
#[macro_use]
extern crate log;
-use command::{history::HistoryCmd, import::ImportCmd};
+#[macro_use]
+extern crate rocket;
+
+use command::{history::HistoryCmd, import::ImportCmd, server::ServerCmd};
use local::database::SqliteDatabase;
use local::history::History;
mod command;
mod local;
+mod server;
#[derive(StructOpt)]
#[structopt(
@@ -41,7 +49,7 @@ enum AtuinCmd {
Import(ImportCmd),
#[structopt(about = "start an atuin server")]
- Server,
+ Server(ServerCmd),
#[structopt(about = "generates a UUID")]
Uuid,
@@ -71,11 +79,12 @@ impl Atuin {
match self.atuin {
AtuinCmd::History(history) => history.run(&mut db),
AtuinCmd::Import(import) => import.run(&mut db),
+ AtuinCmd::Server(server) => server.run(),
+
AtuinCmd::Uuid => {
println!("{}", Uuid::new_v4().to_simple().to_string());
Ok(())
}
- _ => Ok(()),
}
}
}
diff --git a/src/server/mod.rs b/src/server/mod.rs
new file mode 100644
index 00000000..74f47ad3
--- /dev/null
+++ b/src/server/mod.rs
@@ -0,0 +1 @@
+pub mod server;
diff --git a/src/server/server.rs b/src/server/server.rs
new file mode 100644
index 00000000..82acbe21
--- /dev/null
+++ b/src/server/server.rs
@@ -0,0 +1,8 @@
+#[get("/")]
+fn index() -> &'static str {
+ "Hello, world!"
+}
+
+pub fn launch() {
+ rocket::ignite().mount("/", routes![index]).launch();
+}