App.java 4.46 KB
package org.emercit.proxymanager;


import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.ByteChannel;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

import net.sourceforge.argparse4j.ArgumentParsers;
import net.sourceforge.argparse4j.impl.Arguments;
import net.sourceforge.argparse4j.inf.ArgumentParser;
import net.sourceforge.argparse4j.inf.ArgumentParserException;
import net.sourceforge.argparse4j.inf.Namespace;  

import org.apache.log4j.Logger;
import org.apache.log4j.ConsoleAppender; 
import org.apache.log4j.Level;
import org.apache.log4j.PatternLayout;
import org.apache.log4j.RollingFileAppender;
import org.emercit.proxymanager.service.ProxyLinux;


public class App 
{
	
	private static final Logger log = Logger.getLogger(App.class);
    
	private static ProxyLinux proxyLinux=new ProxyLinux();
	
	private static String eth; 	  //Название интерфейса
	private static String param;  //Параметр который нужно изменить	  
	private static String method; // Метод 
	private static String value; // Значение параметра
	private static String name; // Название интерфейса
	
    public static void main( String[] args )
    {
    	ArgumentParser parser = ArgumentParsers.newArgumentParser("prog");
    
    	try {
 	     
 	 	 	 parser.description("Настройки прокси")
 			 .version("Version:1.0.0.0")
 			 .defaultHelp(true);

 	 	 	 parser.addArgument("-m")
 	   		 .type(String.class)
 	   		 .setDefault("get")
 	   		 .help("Методы:\n 1) get - получение параметра;\n"
 	   		 		+ "2) set- установка параметра.\n");
 	    	
 	    	 parser.addArgument("-v")
 	   		 .type(String.class)
 	   		 .setDefault("")
 	   		 .help("Значение параметра");
 	    	
 	   
 	   		 parser.addArgument("-p")
 	   		 .type(String.class)
 	   		 .setDefault("")
 	   		 .help("Имя параметра\n"
  	   		 		+ "Возможные параметры:\n "
  	   		 		+ "1) host - адрес прокси сервера;\n"
  	   		 		+ "2) port - порт прокси сервера;\n"
  	   		 		+ "3) login - имя пользователя;\n"
  	   		 		+ "4) pass -пароль;\n"
  	   		 		+ "5) enabled - проксирование. Значение true -включено, false- выкл.\n"
  	   		 		+ "6) protocol - навзание протакола (http,https,ftp);\n"
  	   		 		+ "7) useauth - использовать логин и пароль. Значение true - использовать, false -нет.\n");
 	   		
 	   		
 	  		 parser.addArgument("-protocol")
 	   		.type(String.class)
 	   		.setDefault("")
 	   		.help("Протокол");
 	   		
 	   		 parser.addArgument("-log")
 	   		.type(Integer.class)
 	   		.setDefault(0)
 	   		.help("Логирование. 0-выкл.; 1-консоль; 2-файл");
 	   		
 	   	
 	    	 Logger rootLogger = Logger.getRootLogger();
 	    	 PatternLayout layout = new PatternLayout("%d{ISO8601} [%t] %-5p %c %x - %m%n");
 	    	 
 	    	 //rootLogger.setLevel(Level.OFF);
 	    	 rootLogger.setLevel(Level.DEBUG);
 	    	
 		     rootLogger.addAppender(new ConsoleAppender(layout));
 		    try {
 		    		RollingFileAppender fileAppender = new RollingFileAppender(layout, "/var/log/devtools/ProxyManager.log");
 		    		rootLogger.addAppender(fileAppender);
 		    } catch (IOException e) {
 		    	log.error(e.getMessage());
 		    }
 	  
 		    Namespace res = parser.parseArgs(args);
       
 		     method=res.getString("m");
 	  
 		    if (method.equals("set")) { //Конфигурация интерфейса
 		    	
 		    	name=res.getString("protocol");
 		     	param= res.getString("p");
 		 		value=res.getString("v");
 		    		
 		    	proxyLinux.ApplyConfig(name, param,(Object)value );
 		    	
 		    }else if (method.equals("get")) { //Вывод информации из файла
 		    	
 		    	name=res.getString("protocol");
 		    	proxyLinux.InfoByName(name);
 		    }

        }catch(Exception e){
        	log.error(e.getMessage());
     	  if(e instanceof ArgumentParserException){
     		log.error(e.getMessage());
     	  }
     	  else {
     		parser.handleError((ArgumentParserException) e);
     		log.error(e.getMessage());
     		System.exit(1);
 }
     	  
 }
    	
    }
}