CommandLineParser.java
1.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package org.shadowsocks.util;
import org.shadowsocks.config.BaseConfig;
import org.shadowsocks.config.Config;
import org.shadowsocks.config.JsonConfig;
import org.shadowsocks.config.RealConfig;
import java.util.Arrays;
public class CommandLineParser {
public static Config parse(String[] args)
{
RealConfig realConfig = new RealConfig();
for(int i=0;i<args.length;i++)
{
System.out.println(Arrays.toString(args));
String[] parts = args[i].split("=");
String key = parts[0];
String value = parts[1];
if(key.compareTo("config")==0)
return new JsonConfig(value);
if(key.compareTo("server")==0)
realConfig.server = value;
if(key.compareTo("server_port")==0)
realConfig.server_port = Integer.parseInt(value);
if(key.compareTo("local_address")==0)
realConfig.local_address = value;
if(key.compareTo("local_port")==0)
realConfig.local_port = Integer.parseInt(value);
if(key.compareTo("method")==0)
realConfig.method = value;
if(key.compareTo("password")==0)
realConfig.password = value;
if(key.compareTo("time_out")==0)
realConfig.timeout = Integer.parseInt(value);
}
return new BaseConfig(realConfig) {
@Override
public RealConfig loadConfig(Object source) {
return (RealConfig) source;
}
};
}
}