a cloud compiler service

This commit is contained in:
nganhkhoa 2024-06-18 21:07:43 +07:00
parent 832555cbad
commit 6a9aee02b7
6 changed files with 7 additions and 30 deletions

View File

@ -21,8 +21,6 @@ impl Builder {
async fn build(&self, args: &RequestBuildArgs) -> Result<(), Box<dyn Error>> { async fn build(&self, args: &RequestBuildArgs) -> Result<(), Box<dyn Error>> {
Command::new("python3") Command::new("python3")
.current_dir("./ssm/dynamic/") .current_dir("./ssm/dynamic/")
.env("VENDOR_NAME", &args.vendor_name)
.env("VENDOR_METAMASK_ACCOUNT", &args.vendor_metamask_account)
.env("RAW_AEAD_KEY", &args.aead_key) .env("RAW_AEAD_KEY", &args.aead_key)
.env("RAW_SSL_PRIVATE_KEY", &args.ssl_private_key) .env("RAW_SSL_PRIVATE_KEY", &args.ssl_private_key)
.args(["gen.py"]) .args(["gen.py"])
@ -39,15 +37,9 @@ impl Builder {
"-o", "-o",
&format!("ssm-{}", args.token), &format!("ssm-{}", args.token),
"-gccgoflags", "-gccgoflags",
"-static-libgo -Wl,--version-script=ssm.version", "-static -Wl,--version-script=ssm.version",
"-mllvm", "-mllvm",
"-obfuscation=gvo", "-obfuscation=gvo -obfuscation=sub -obfuscation=flatten -obfuscation=idr-branch",
"-mllvm",
"-obfuscation=sub",
"-mllvm",
"-obfuscation=flatten",
"-mllvm",
"-obfuscation=idr-branch",
]) ])
.spawn()? .spawn()?
.wait() .wait()
@ -78,7 +70,7 @@ pub async fn setup_builder(
builder: Builder, builder: Builder,
) { ) {
while let Some(args) = receiver.recv().await { while let Some(args) = receiver.recv().await {
println!("requesting build {:?}", args); // trace!("requesting build {:?}", args);
sender sender
.send(Request::SetToken(args.token.clone(), TokenStatus::Building)) .send(Request::SetToken(args.token.clone(), TokenStatus::Building))
.await .await

View File

@ -65,14 +65,7 @@ async fn main() {
sender: sender.clone(), sender: sender.clone(),
token_list: token_list.clone(), token_list: token_list.clone(),
}) })
.mount( .mount("/", routes::main())
"/",
routes![
routes::route_build,
routes::route_status,
routes::route_download
],
)
.launch() .launch()
.await .await
.ok(); .ok();

View File

@ -14,7 +14,6 @@ async fn process_request(
token_list.insert(token.clone(), TokenStatus::Initialized); token_list.insert(token.clone(), TokenStatus::Initialized);
} }
Request::SetToken(token, new_status) => { Request::SetToken(token, new_status) => {
println!("set token {:?} {:?}", token, new_status);
let mut token_list = token_list.lock().unwrap(); let mut token_list = token_list.lock().unwrap();
if let Some(state) = token_list.get_mut(&token) { if let Some(state) = token_list.get_mut(&token) {
*state = new_status; *state = new_status;

View File

@ -11,8 +11,6 @@ use crate::types::{AppState, Request, RequestBuildArgs};
#[derive(Debug, Deserialize)] #[derive(Debug, Deserialize)]
#[serde(crate = "rocket::serde")] #[serde(crate = "rocket::serde")]
pub struct BuildArgs { pub struct BuildArgs {
vendor_name: String,
vendor_metamask_account: String,
aead_key: String, aead_key: String,
ssl_private_key: String, ssl_private_key: String,
} }
@ -26,7 +24,6 @@ pub struct BuildResponse {
#[post("/build", data = "<args>")] #[post("/build", data = "<args>")]
pub async fn route(state: &State<AppState>, args: Json<BuildArgs>) -> Json<BuildResponse> { pub async fn route(state: &State<AppState>, args: Json<BuildArgs>) -> Json<BuildResponse> {
let args = &*args; let args = &*args;
println!("build with args={:?}", args);
let sender = &state.sender; let sender = &state.sender;
let token = Uuid::new_v4().to_string(); let token = Uuid::new_v4().to_string();
@ -35,8 +32,6 @@ pub async fn route(state: &State<AppState>, args: Json<BuildArgs>) -> Json<Build
sender sender
.send(Request::Build(RequestBuildArgs { .send(Request::Build(RequestBuildArgs {
token: token.clone(), token: token.clone(),
vendor_name: args.vendor_name.clone(),
vendor_metamask_account: args.vendor_metamask_account.clone(),
aead_key: args.aead_key.clone(), aead_key: args.aead_key.clone(),
ssl_private_key: args.ssl_private_key.clone(), ssl_private_key: args.ssl_private_key.clone(),
})) }))

View File

@ -2,6 +2,6 @@ mod build;
mod download; mod download;
mod status; mod status;
pub use build::route as route_build; pub fn main() -> Vec<rocket::Route> {
pub use download::route as route_download; rocket::routes![build::route, status::route, download::route,]
pub use status::route as route_status; }

View File

@ -16,8 +16,6 @@ pub enum Request {
#[derive(Clone, Debug)] #[derive(Clone, Debug)]
pub struct RequestBuildArgs { pub struct RequestBuildArgs {
pub token: String, pub token: String,
pub vendor_name: String,
pub vendor_metamask_account: String,
pub aead_key: String, pub aead_key: String,
pub ssl_private_key: String, pub ssl_private_key: String,
} }