/* * This program is free software: you can redistribute it and/or modify it under * the terms of the GNU General Public License as published by the Free Software * Foundation, either version 3 of the License, or (at your option) any later * version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more * details. * * You should have received a copy of the GNU General Public License along with * this program. If not, see . */ package com.l2jserver.dbinstaller.console; import java.sql.Connection; import java.util.Scanner; import java.util.prefs.Preferences; import com.l2jserver.dbinstaller.DBOutputInterface; import com.l2jserver.dbinstaller.RunTasks; import com.l2jserver.dbinstaller.util.mysql.MySqlConnect; /** * * @author mrTJO */ public class DBInstallerConsole implements DBOutputInterface { Connection _con; public DBInstallerConsole(String db, String dir, String cleanUp) { System.out.println("Welcome to L2J DataBase installer"); Preferences prop = Preferences.userRoot(); Scanner scn = new Scanner(System.in); while (_con == null) { System.out.printf("%s (%s): ", "Host", prop.get("dbHost_"+db, "localhost")); String dbHost = scn.nextLine(); System.out.printf("%s (%s): ", "Port", prop.get("dbPort_"+db, "3306")); String dbPort = scn.nextLine(); System.out.printf("%s (%s): ", "Username", prop.get("dbUser_"+db, "root")); String dbUser = scn.nextLine(); System.out.printf("%s (%s): ", "Password", ""); String dbPass = scn.nextLine(); System.out.printf("%s (%s): ", "Database", prop.get("dbDbse_"+db, db)); String dbDbse = scn.nextLine(); dbHost = dbHost.isEmpty() ? prop.get("dbHost_"+db, "localhost") : dbHost; dbPort = dbPort.isEmpty() ? prop.get("dbPort_"+db, "3306") : dbPort; dbUser = dbUser.isEmpty() ? prop.get("dbUser_"+db, "root") : dbUser; dbDbse = dbDbse.isEmpty() ? prop.get("dbDbse_"+db, db) : dbDbse; MySqlConnect connector = new MySqlConnect(dbHost, dbPort, dbUser, dbPass, dbDbse, true); _con = connector.getConnection(); } RunTasks rt = null; System.out.print("(C)lean install, (U)pdate or (E)xit? "); String resp = scn.next(); if (resp.equalsIgnoreCase("c")) { System.out.print("Do you really want to destroy your db (Y/N)?"); if (scn.next().equalsIgnoreCase("y")) { rt = new RunTasks(this, db, dir, cleanUp, true); } else System.exit(0); } else if (resp.equalsIgnoreCase("u")) rt = new RunTasks(this, db, dir, cleanUp, false); else System.exit(0); rt.run(); } @Override public void appendToProgressArea(String text) { System.out.println(text); } @Override public Connection getConnection() { return _con; } @Override public void setProgressIndeterminate(boolean value) { } @Override public void setProgressMaximum(int maxValue) { } @Override public void setProgressValue(int value) { } @Override public void setFrameVisible(boolean value) { } @Override public int requestConfirm(String title, String message, int type) { System.out.print(message); Scanner scn = new Scanner(System.in); String res = scn.next(); if (res.equalsIgnoreCase("y")) return 0; return 1; } @Override public void showMessage(String title, String message, int type) { System.out.println(message); } }