int main(int argc, char* argv[])
{
	for (int i = 0; i < argc; ++i)
		std::cout << "\n  " << argv[i];
	FileMgr fm;
	FileMgr::patterns patts{ "*.h", "*.cpp" };
	FileMgr::files foundFiles = fm.search(".", patts);
	for (auto file : foundFiles)
		displayfiles(file);
	std::cout << "\n\n";
}
int main(int argc, char* argv[]) {
	using  ConProc = ConsoleProcessing;
	std::cout << ConProc::Title("***********Project#2 - Code Similarity Analysis***********") << std::endl;
	ConProc::CommandLine cl = ConProc::parseCommandLine(argc, argv);
	if (argc < 3) {
		std::cout << "\n  please enter path and patterns\n\n";
		return 1;	}
	int count=0,apath=0; std::string path; bool recursivesearch = false, sizencomplx = false;
	path = std::get<0>(cl);
	std::cout << " Path provided= " << path <<"\n";
	//<-------Identifying path position and options from the commandline arguments---->
	std::cout << " " << std::string(43, '=') << std::endl;
	for (int i = 1; i < argc; i++) {
		char* pch = strchr(argv[i], '.');
		if ((int)(pch - argv[i] + 1) == 1) 
			apath = i;
		else if (strcmp(argv[i], "/s") == 0) {
			std::cout << " Recursive mode activated" << "\n";
			recursivesearch = true;		} 	
	}
	std::cout << " " << std::string(43, '=') << std::endl;	
	FileMgr::patterns patts=std::get<1>(cl);
	DirMgr dm; FileMgr fm; Display dis; Timer timer; DirMgr::directories mydirectories, tempdir;
	FileMgr::files myFiles = fm.searchf(path, patts);
	timer.start();
	if (recursivesearch == true) { 				//Method for Recursively searching the current directory path
		mydirectories = dm.searchd(path);
		do {
			tempdir = mydirectories;
			mydirectories.clear();
			for (auto temp : tempdir)
				mydirectories = dm.searchd(temp);
			count++;
		} while (mydirectories.capacity() != tempdir.capacity()); 
	}
	if (recursivesearch == true) {
		std::cout << "\n\n List of Directories Detected\n" << " " << std::string(30, '=') << std::endl;
		dis.displayfiles(mydirectories); 			//Passing Directory names to the Display package  
	}
	for (auto direc : mydirectories) 			//Searching files from the directory list
		myFiles = fm.searchf(direc, patts);
	std::cout << "\n\n List of Files Detected\n" << " " << std::string(30, '=') << std::endl;
	dis.displayfiles(myFiles);					//Passing file names to the Display package
	std::cout <<" "<< std::string(30, '=') << std::endl;
	parser(myFiles);								//Recursively passing files one by one to the Parser
	timer.stop();
	std::cout << "\n\nTime taken for processing in milliseconds = " << timer.elapsedTime<std::chrono::milliseconds>();
	std::cout << "\n";
	return 0;
}
Exemple #3
0
int main(int argc, char *argv [])
{
	try{

		std::cout << "\n Testing Executive Package::";
		std::cout << "\n" << std::string(75, '*');
		std::cout << "\n";

		std::cout << "\nParsing Command line arguments: " << std::endl;
		//----< Parsing the command line >--------------------
		//int argc = 7;
		//char *argv[] = { "C:\\jimFawcett", "*.cpp", "*.h", "*.txt", "/s", "/d", "/f<main>" };
		FileMgr fm;
		fm.parseCmdLine(argc, argv);

		//----< Searching for files and directories >--------------------
		fm.search();
		//int argc = 7;

		Cataloger Ctg(fm);
		using vecofObjects = std::vector <DisplayObject>;
		Display disp;
		std::string condition;
		
		
		vecofObjects obj= fm.DisplayStore();
		disp.DisplayAllFilesandPaths(obj);

		if (fm.func_numberofFilesandDirectories())
		{
			vecofObjects obj1 = Ctg.numberofFilesandDirectories();
			disp.numberofFilesandDirectories(obj1);
		}
		if (fm.func_hasDuplicates())
		{
			vecofObjects obj = Ctg.FindingDuplicateFiles();
			disp.findingDuplicates(obj);
		}
		bool textSearch = false;
		std::string inputforTextSearch;
		if (fm.func_textSearch()){
			textSearch = true;	
		}
		do
		{
			std::cout << "\n\n -----< Demonstration of Requirement 8 >----------------" << std::endl;
			std::getline(std::cin, inputforTextSearch);
			bool textSearch = false;
			inputforTextSearch += " ";
			condition = inputforTextSearch;
			if ((condition != " ") && !fm.parseUserCommand(inputforTextSearch)){
				std::cout << "\nInvalid Input!:";
				std::cout<<"\nPlease enter in this format: \"INPUTTEXT\"patterns" << std::endl;
			}
			if (fm.func_textSearch())
			{
				vecofObjects obj = Ctg.searchInputText(fm.getPatterns(), fm.getSearchtext());
				disp.displayTextSearchFiles(obj);
			}
		} while (inputforTextSearch != " ");
		
	}
	catch (std::exception ex)
	{
		std::cout << ex.what()<<"\n\n";
	}
}