diff --git a/src/cli/config_file.rs b/src/cli/config_file.rs index 1718df18f6455c8bed619b02042253871c5c4fb8..8b652b8f071cc865a7dd5c0c5f40077f1ac2a587 100644 --- a/src/cli/config_file.rs +++ b/src/cli/config_file.rs @@ -7,7 +7,6 @@ use std::default::Default; use serde::{Deserialize, Deserializer, de}; use std::fmt; use serde_yaml as yaml; -use std::collections::HashMap; use cli; #[derive(Debug, Copy, Clone)] diff --git a/src/routing/mock_upload.rs b/src/routing/mock_upload.rs index 9ef566c74884c6d37874b919aaa622e3e74457ac..3f7bcb348b2280d245622f492c7b121447e5a6ec 100644 --- a/src/routing/mock_upload.rs +++ b/src/routing/mock_upload.rs @@ -1,15 +1,12 @@ use rocket::{Data, State}; use formdata::{read_formdata, FilePart}; use routing::request::ConvertedHeaders; -use hyper::header::{Headers, ContentDisposition, DispositionParam}; -use rocket::request::FromRequest; -use std::io::{Read, Write, copy}; -use std::io::{BufReader, BufWriter}; +use hyper::header::{ContentDisposition, DispositionParam}; +use std::io::{copy}; use std::fs::{OpenOptions, File, create_dir}; use cli::{HandlerMethod, SwerveConfig}; -use std::path::{Path, PathBuf}; +use std::path::{PathBuf}; use std::collections::HashMap; -use rand::{Rng, StdRng}; #[post(path = "/", data = "<upload>")] pub fn to_file(headers: ConvertedHeaders, conf: State<SwerveConfig>, upload: Data) -> Result<String, String> { @@ -21,7 +18,12 @@ pub fn to_file(headers: ConvertedHeaders, conf: State<SwerveConfig>, upload: Dat HandlerMethod::File => println!("{:?}", fields), } - create_dir("uploads"); + match create_dir("uploads") { + Ok(_) => {}, + Err(err) => { + return Err(format!("Could not create uploads directory:\n{}", err)); + } + } for file in data.files { match conf.file_handling { @@ -49,17 +51,17 @@ type Upload = (String, FilePart); fn upload_file(file: Upload) { let (name, value) = file; let content_disposition = value.headers.get::<ContentDisposition>().unwrap(); - let file_name = filename_from_disposition(content_disposition); + let file_name = filename_from_disposition(content_disposition).unwrap_or(name); let mut input = File::open(value.path.clone()).unwrap(); let mut output = OpenOptions::new() .write(true) .create(true) - .open(PathBuf::from("uploads").join(file_name.clone().unwrap_or(String::from("upload_data")))) + .open(PathBuf::from("uploads").join(file_name.clone())) .unwrap(); copy(&mut input, &mut output).unwrap(); - println!("File written to {}", file_name.unwrap()); + println!("File written to {}", file_name); } fn log_file(file: Upload) { diff --git a/src/routing/request.rs b/src/routing/request.rs index d1deefe714e01d0f54f220463f21cf65130c410d..68931d59426a0b12fbef746db45749f9cb265f2e 100644 --- a/src/routing/request.rs +++ b/src/routing/request.rs @@ -2,7 +2,7 @@ use rocket::{self, Outcome, http, Response}; use rocket::request::{FromRequest, Request}; use rocket::http::ContentType; use hyper::header::Headers; -use std::path::{Path, PathBuf, Component}; +use std::path::{Path, PathBuf}; use std::io::BufReader; use std::fs::File; diff --git a/src/routing/scripting.rs b/src/routing/scripting.rs index 02ff44d39a60e974055e15d0d78b4b409135c11e..2903e9f410af843984a2fcfa9aed24c05553dd18 100644 --- a/src/routing/scripting.rs +++ b/src/routing/scripting.rs @@ -1,16 +1,14 @@ -use scripting::run_script; -use std::path::PathBuf; use routing::request; use server::LuaRuntime; use rlua::{Lua}; #[get("/__testing__/run-script")] pub fn route_script(path: request::RequestPath, runtime: LuaRuntime) -> String { - let lua: Lua = runtime.into(); + let _lua: Lua = runtime.into(); //todo: Use This let doowap = path.0; - let foo = request::path::MatchablePath(String::from("/inspection/@id")); + let foo = request::path::MatchablePath(String::from(doowap)); let matches = foo.matches(String::from("/inspection/123")); println!("{:?}", matches); - let path = PathBuf::from("example/.swerve/get_user_by_id.rhai"); - run_script(path).unwrap_or(String::from("No script")) + + String::from("Yes") } \ No newline at end of file diff --git a/src/scripting/run_script.rs b/src/scripting/run_script.rs index 0470e4466ec4550e7feacfcd198977bda7ca2d7b..316c27e8f878a57f308a1f687e95a62af643e278 100644 --- a/src/scripting/run_script.rs +++ b/src/scripting/run_script.rs @@ -1,14 +1,16 @@ use std::convert::AsRef; use std::path::Path; use std::fs::File; -use std::sync::Arc; use std::io::Read; -use std::collections::HashMap; pub fn run_script<P: AsRef<Path>>(path: P) -> Option<String> { let mut file = File::open(&path).unwrap(); let mut buf = String::new(); - file.read_to_string(&mut buf); + match file.read_to_string(&mut buf) { + Ok(_) => {}, + Err(_) => return None, + } + Some(buf) } \ No newline at end of file diff --git a/src/server/lua.rs b/src/server/lua.rs index eff9e5b03a3d1d775fdfc1fe11b1967e275e6a5c..3936eeedf3ee7f8f8ee339ebb7b3e74073af34d4 100644 --- a/src/server/lua.rs +++ b/src/server/lua.rs @@ -1,5 +1,5 @@ use rlua::{Lua}; -use rocket::{self, Outcome, http, Response}; +use rocket::{Outcome, http}; use rocket::request::{FromRequest, Request}; use std::convert::{Into, AsRef, AsMut};