From 676dd6c943728dd110eec787d87ff9486ef43bbe Mon Sep 17 00:00:00 2001 From: sukanth2705 Date: Wed, 3 Jan 2024 23:35:52 +0530 Subject: [PATCH] .dreeignore usage guide and automation --- readme.md | 9 ++++++ src/main.cpp | 80 ++++++++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 81 insertions(+), 8 deletions(-) diff --git a/readme.md b/readme.md index b4b8e79..26acc4b 100644 --- a/readme.md +++ b/readme.md @@ -75,6 +75,15 @@ dree 5 -f "file_name" Dree includes a `.dreeignore` file that enlists some commonly ignored files and directories. This can be overriden be the use of the `-a` flag. +### Add or remove file or folder from .dreeignore + +```shell +#eg. Add a file or folder to .dreeignore +dree -w "file or folder name" +#eg. Remove a file or folder from .dreeignore +dree -r "file or folder name" +``` + ![image](https://github.com/Ruberald/Dree/assets/31573113/6437731d-c799-4c8e-b939-9e6ef8984d87) ![image](https://github.com/Ruberald/Dree/assets/31573113/3e28ebdd-4311-4801-87aa-a08e2e8014d3) diff --git a/src/main.cpp b/src/main.cpp index 08d5803..1aa3877 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -10,7 +10,7 @@ using namespace std; void help() { cout << "\tdree: " << "dree " - << "[dep] [-f [dir|file]][-a]" + << "[dep] [-f [dir|file]][-a][-w][-r]" << "\n"; cout << "\tVisualize directories until certain depth" << "\n"; @@ -26,6 +26,12 @@ void help() { cout << "\t -a \t" << "Show hidden files" << "\n"; + cout << "\t -w \t" + << "Add files to .dreeignore file" + << "\n"; + cout << "\t -r \t" + << "Remove files from .dreeignore file" + << "\n"; } bool isNumber(string line) { char *p; @@ -56,7 +62,58 @@ void search(int argc, char *argv[]) { filesystem::path directoryPath(currentPath); builder.SearchDirectory(currentPath, depth, query); } - +void update_dreeignore(string file_name){ + ifstream in("./.dreeignore"); + ofstream out("./temp.txt"); + if(!in.is_open()){ + cout<<"Error opening dreeignore file.\n"; + } + string line; + while(getline(in,line)){ + if(line==file_name){ + cout<<"Successfully added.\n"; + return ; + } + } + in.close(); + in.open("./.dreeignore"); + while(getline(in,line)){ + out<= 60) { cout << "mask overflow!!"; @@ -75,17 +131,25 @@ void dree(int argc, char *argv[]) { } showHidden = false; if (argc == 4) { - string flag = argv[3]; - if (flag == "-a") { + if (string(argv[3])== "-a") { + depth = stoi(argv[2]); showHidden = true; - } else { + } + else if(string(argv[2]) == "-w"){ + update_dreeignore(argv[3]); + return ; + } + else if(string(argv[2]) == "-r"){ + remove_file(argv[3]); + return ; + } + else { cout << "Unknown flags specified."; return; } } } else if (argc == 3) { - string flag = argv[2]; - if (flag == "--help") { + if (string(argv[2]) == "--help") { help(); return; }