#include #include #include #include "includes/Confg.cpp" #include "modules/VirtualHost/VirtualHost.cpp" #include "modules/wwwFolderStructure/wwwFolderStructure.cpp" #include "modules/wwwHTMLPreset/wwwHTMLPreset.cpp" #include "modules/wwwCSSPreset/wwwCSSPreset.cpp" #include "modules/wwwJSPreset/wwwJSPreset.cpp" #include "modules/wwwPHPPreset/wwwPHPPreset.cpp" #include "modules/backupFolderStructure/backupFolderStructure.cpp" using namespace std; map _Confg; map indexConfg,indexValidCodeConfg,valueValidCodeConfg; ofstream VirtualHostFile,HTMLFile,CSSFile,JSFile,PHPFile; string basePath,systemName,domain,ipAddress,email,path; string wwwFolder,backupFolder,cronsFolder,virtualHostFolder,virtualHostFile; Confg* Confg_; void Init() { systemName = "OVH Server Basement Version 2.0"; // --- Do all initial setups Confg_ = new Confg(systemName,"/serverroot/etc/ovh/sb/confg/ovh.sb.confg"); basePath = _Functions->trimStr(Confg_->getVal("PATH")); ipAddress = Confg_->getNode("IP"); email = Confg_->getNode("ADMIN[EMAIL]"); // --- If Yes, this means we are on LIVE ubuntu server then no need for the base path if(basePath.compare("./")==0)basePath=""; // --- This file structure is for Ubuntu Server OS wwwFolder = basePath +"/var/www/"; backupFolder = basePath+"/home/"; cronsFolder = basePath+"/var/spool/cron/crontabs/"; virtualHostFolder= basePath +"/etc/apache2/sites-available/"; virtualHostFile="default"; } void configurationSetup() { Confg_->PreviewConfg(); Confg_->EditConfg(); } void RunSetupWizard() { //cout << "Enter your IP Addess: ";cin >> ipAddress; cout << "Enter your Domain Name: ";cin >> domain; // 1. --- Update Virtual Hosts VirtualHost* _VH; _VH = new VirtualHost(systemName,virtualHostFolder,wwwFolder,virtualHostFile); _VH->autoAppendVirtualHost(ipAddress,domain); cout << "--- [VirtualHost] Successfully Updated.."<< endl; // 2. --- auto Create WWWFolders wwwFolderStructure* _wFS = new wwwFolderStructure(wwwFolder); _wFS->autoCreateWWWFolders(domain); cout << "--- ['www' folder structure] Successfully created.."<< endl; // 3. --- Preset HTML File and auto link its Stylesheet and JavaScript wwwHTMLPreset* _wHP = new wwwHTMLPreset(systemName,wwwFolder); _wHP->autoPresetHTML(domain); cout << "--- [HTML Preset] Successfully created.."<< endl; // 4. ------- Preset CSS File wwwCSSPreset* _wCP = new wwwCSSPreset(systemName,wwwFolder); _wCP->autoPresetCSS(domain); cout << "--- [CSS Preset] Successfully created.."<< endl; // 5. ------- Preset JavaScript File wwwJSPreset* _wJP = new wwwJSPreset(systemName,wwwFolder); _wJP->autoPresetJS(domain); cout << "--- [JavaScript Preset] Successfully created.."<< endl; // 6. ------- Preset JavaScript File wwwPHPPreset* _wPP = new wwwPHPPreset(systemName,wwwFolder); _wPP->autoPresetPHP(domain); cout << "--- [PHP Preset] Successfully created.."<< endl; // 7. ------- Create a 'www' folder structure backupFolderStructure* _bFS = new backupFolderStructure(backupFolder); _bFS->autoCreateBackupFolders(domain); cout << "--- [backup folder structure] Successfully created.."<< endl; cout << endl; cout << "--- Setup Complete!"<< endl; cout << "--- NB: You can now RESTART your Web Server i.e.(Apache)"<< endl; cout << "--- Thank you"<< endl<< endl; } void RunSetupAdvanced() { if(Confg_->getNode("IP").empty()) { cout << "Enter your IP Addess: ";cin >> ipAddress; } cout << "Enter your Domain Name: ";cin >> domain; cout << endl; // 1. --- Update Virtual Hosts VirtualHost* _VH; _VH = new VirtualHost(systemName,virtualHostFolder,wwwFolder,virtualHostFile); _VH->autoAppendVirtualHost(ipAddress,domain); cout << "--- [VirtualHost] Successfully Updated.."<< endl; // 2. --- auto Create WWWFolders wwwFolderStructure* _wFS = new wwwFolderStructure(wwwFolder); _wFS->autoCreateWWWFolders(domain); cout << "--- ['www' folder structure] Successfully created.."<< endl; // 3. --- Preset HTML File and auto link its Stylesheet and JavaScript wwwHTMLPreset* _wHP = new wwwHTMLPreset(systemName,wwwFolder); _wHP->autoPresetHTML(domain); cout << "--- [HTML Preset] Successfully created.."<< endl; // 4. ------- Preset CSS File wwwCSSPreset* _wCP = new wwwCSSPreset(systemName,wwwFolder); _wCP->autoPresetCSS(domain); cout << "--- [CSS Preset] Successfully created.."<< endl; // 5. ------- Preset JavaScript File wwwJSPreset* _wJP = new wwwJSPreset(systemName,wwwFolder); _wJP->autoPresetJS(domain); cout << "--- [JavaScript Preset] Successfully created.."<< endl; // 6. ------- Preset JavaScript File wwwPHPPreset* _wPP = new wwwPHPPreset(systemName,wwwFolder); _wPP->autoPresetPHP(domain); cout << "--- [PHP Preset] Successfully created.."<< endl; // 7. ------- Create a 'www' folder structure backupFolderStructure* _bFS = new backupFolderStructure(backupFolder); _bFS->autoCreateBackupFolders(domain); cout << "--- [backup folder structure] Successfully created.."<< endl; cout << endl; cout << "--- Setup Complete!"<< endl; cout << "--- NB: You can now RESTART your Web Server i.e.(Apache)"<< endl; cout << "--- Thank you"<< endl<< endl; } int mainMenu() // System main menu { int optMenu; // --- Main Menu cout<< endl; cout<<"__________ OVH Server Basement 2.0 _________"<< endl; cout<<"| |"<< endl; cout<<"| 1 : Run Setup - Wizard (Recommended) |"<< endl; cout<<"| 2 : Run Setup - Auto (Advanced) |"<< endl; cout<<"| 3 : Priveiw Current Configuration |"<< endl; cout<<"| 4 : Configuration Settings |"<< endl; cout<<"| 0 : Exit |"<< endl; cout<<"____________________________________________"<< endl; cout<< endl; cout << "Please, enter your option: ";cin >> optMenu; cout<< endl; return optMenu; } int main() { // Init method to initialize system default settings i.e. system name and standadrd folders Init(); char none; // --- This is simply for wizard traversal purposes int optMenu;// --- Main Menu option int wrongCount = 0;// --- Main Menu option while(true) { if(wrongCount!=3) { optMenu = mainMenu(); // Enter main menu if(optMenu==1) { RunSetupWizard(); wrongCount=0; } else if(optMenu==2) { RunSetupAdvanced(); wrongCount=0; } else if(optMenu==3) { Confg_->PreviewConfg(); } else if(optMenu==4) { configurationSetup();Init(); wrongCount=0; } else if(optMenu==0) // --- Menu exit { cout<<"Exiting, Thank you."<< endl<< endl; exit(0); }else { cout<< endl<<"Wrong option, please try again."<< endl<< endl; wrongCount++; } }else // --- Exit the system if Error count = 3 { cout<<"You have entered WRONG option 3 times!"<< endl; cout<<"Exiting, Thank you."<< endl<< endl; exit(0); } } return 0; }