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; mod parser;
fn main() { 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; use std::process::exit;
pub mod config_models;
mod uri_identifier; mod uri_identifier;
mod vless; mod vless;
pub mod config_models;
pub fn parse(uri: &str) { pub fn parse(uri: &str) {
let protocol = uri_identifier::get_uri_protocol(uri); let protocol = uri_identifier::get_uri_protocol(uri);
match protocol { match protocol {
Some(uri_identifier::Protocols::Vmess) => { Some(uri_identifier::Protocols::Vmess) => {
println!("The protocol was 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(_) => { Some(_) => {
println!("The protocol was recognized"); println!("The protocol was recognized");
} }

View File

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