'Generic Commit'
This commit is contained in:
parent
84cda8039a
commit
f57d0ad239
@ -656,9 +656,10 @@ int clean_tool(int argc, char* argv[]) {
|
||||
}
|
||||
}
|
||||
|
||||
// Step 4: Clean up autocomplete entries in ~/.bashrc_getpkg
|
||||
// Step 4: Clean up autocomplete entries and obsolete PATH exports in ~/.bashrc_getpkg
|
||||
DropshellScriptManager scriptManager;
|
||||
int autocompleteCleaned = 0;
|
||||
int pathEntriesRemoved = 0;
|
||||
std::filesystem::path bashrcPath = std::filesystem::path(home) / ".bashrc_getpkg";
|
||||
if (std::filesystem::exists(bashrcPath)) {
|
||||
std::ifstream infile(bashrcPath);
|
||||
@ -668,6 +669,22 @@ int clean_tool(int argc, char* argv[]) {
|
||||
std::string currentTool = "";
|
||||
|
||||
while (std::getline(infile, line)) {
|
||||
// Check for obsolete PATH exports (we use symlinks now, not PATH modifications)
|
||||
if (line.find("export PATH=") != std::string::npos && line.find("/.local/bin/getpkg/") != std::string::npos) {
|
||||
// Extract tool name from the PATH line
|
||||
size_t toolStart = line.find("/.local/bin/getpkg/");
|
||||
if (toolStart != std::string::npos) {
|
||||
toolStart += strlen("/.local/bin/getpkg/");
|
||||
size_t toolEnd = line.find(":", toolStart);
|
||||
if (toolEnd != std::string::npos) {
|
||||
std::string toolInPath = line.substr(toolStart, toolEnd - toolStart);
|
||||
std::cout << "Removing obsolete PATH entry for: " << toolInPath << std::endl;
|
||||
pathEntriesRemoved++;
|
||||
continue; // Skip this line
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check for autocomplete block start
|
||||
if (line.find("# GETPKG-AUTOCOMPLETE-START: ") != std::string::npos) {
|
||||
currentTool = line.substr(line.find(": ") + 2);
|
||||
@ -705,7 +722,7 @@ int clean_tool(int argc, char* argv[]) {
|
||||
infile.close();
|
||||
|
||||
// Write back the cleaned file if we removed anything
|
||||
if (autocompleteCleaned > 0) {
|
||||
if (autocompleteCleaned > 0 || pathEntriesRemoved > 0) {
|
||||
std::ofstream outfile(bashrcPath, std::ios::trunc);
|
||||
for (const auto& l : lines) {
|
||||
outfile << l << "\n";
|
||||
@ -732,6 +749,7 @@ int clean_tool(int argc, char* argv[]) {
|
||||
std::cout << " - Removed " << danglingSymlinksRemoved << " dangling symlinks" << std::endl;
|
||||
std::cout << " - Removed " << nonSymlinksRemoved << " non-symlinks from ~/.local/bin/getpkg" << std::endl;
|
||||
std::cout << " - Cleaned " << autocompleteCleaned << " autocomplete entries" << std::endl;
|
||||
std::cout << " - Removed " << pathEntriesRemoved << " obsolete PATH entries" << std::endl;
|
||||
std::cout << " - Removed " << emptyDirsRemoved << " empty directories" << std::endl;
|
||||
|
||||
return 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user