mirror of
https://github.com/yuzu-emu/liftinstall.git
synced 2025-01-21 21:51:10 +00:00
76 lines
1.9 KiB
Rust
76 lines
1.9 KiB
Rust
|
//#![windows_subsystem = "windows"]
|
||
|
|
||
|
extern crate web_view;
|
||
|
extern crate tiny_http;
|
||
|
|
||
|
extern crate includedir;
|
||
|
extern crate phf;
|
||
|
|
||
|
mod assets;
|
||
|
|
||
|
use web_view::*;
|
||
|
|
||
|
use tiny_http::Server;
|
||
|
use tiny_http::Response;
|
||
|
use tiny_http::Header;
|
||
|
|
||
|
use std::thread;
|
||
|
use std::str::FromStr;
|
||
|
|
||
|
fn main() {
|
||
|
// Startup HTTP server for handling the web view
|
||
|
let server = Server::http("127.0.0.1:0").unwrap();
|
||
|
|
||
|
let http_address = format!("http://{}", server.server_addr());
|
||
|
println!("{}", format!("{}", server.server_addr()));
|
||
|
|
||
|
let _ = thread::spawn(move || {
|
||
|
loop {
|
||
|
// blocks until the next request is received
|
||
|
let request = match server.recv() {
|
||
|
Ok(rq) => rq,
|
||
|
Err(e) => { println!("error: {}", e); break }
|
||
|
};
|
||
|
|
||
|
// Work out what they want
|
||
|
let mut url : String = request.url().into();
|
||
|
if url.ends_with("/") {
|
||
|
url += "index.html";
|
||
|
}
|
||
|
|
||
|
println!("Requesting: {}", url);
|
||
|
|
||
|
match assets::file_from_string(&url) {
|
||
|
Some((content_type, file)) => {
|
||
|
let mut response = Response::from_data(file);
|
||
|
if let Some(content_type) = content_type {
|
||
|
response.add_header(Header::from_str(
|
||
|
&format!("Content-Type:{}", content_type)).unwrap())
|
||
|
}
|
||
|
|
||
|
request.respond(response)
|
||
|
},
|
||
|
None => request.respond(Response::empty(404))
|
||
|
}.unwrap();
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// Init the web view
|
||
|
let size = (1024, 550);
|
||
|
let resizable = false;
|
||
|
let debug = true;
|
||
|
let init_cb = |_| {};
|
||
|
let userdata = ();
|
||
|
|
||
|
run(
|
||
|
"yuzu Installer",
|
||
|
&http_address,
|
||
|
Some(size),
|
||
|
resizable,
|
||
|
debug,
|
||
|
init_cb,
|
||
|
/* frontend_cb: */ |_, _, _| {},
|
||
|
userdata
|
||
|
);
|
||
|
}
|