Parse uri from cmd args

This commit is contained in:
Keivan-sf
2023-10-20 17:14:56 +03:30
parent fa88155597
commit d5902ab926
3 changed files with 13 additions and 3 deletions

View File

@@ -1,5 +1,8 @@
mod parser;
fn main() {
parser::parse("vmess://test");
let args: Vec<String> = std::env::args().collect();
let uri = args.get(1).unwrap();
dbg!(uri);
parser::parse(uri);
}

View File

@@ -1,13 +1,20 @@
use std::process::exit;
pub mod config_models;
mod uri_identifier;
mod vless;
pub mod config_models;
pub fn parse(uri: &str) {
let protocol = uri_identifier::get_uri_protocol(uri);
match protocol {
Some(uri_identifier::Protocols::Vmess) => {
println!("The protocol was vmess");
}
Some(uri_identifier::Protocols::Vless) => {
println!("The protocol is Vless");
let vless_data = vless::get_vless_data(uri);
let outbound_object = vless::create_outbound_object(vless_data);
let serialized = serde_json::to_string(&outbound_object).unwrap();
println!("The parsed config is :\n{}", serialized);
}
Some(_) => {
println!("The protocol was recognized");
}

View File

@@ -3,7 +3,7 @@ mod models;
use crate::parser::config_models::*;
use std::process::exit;
fn create_outbound_object(data: models::VlessData) -> Outbound {
pub fn create_outbound_object(data: models::VlessData) -> Outbound {
return Outbound {
protocol: String::from("vless"),
tag: String::from("proxy"),