From 9ec398f6ff49eed7aca1afe584ad8a4473cdff83 Mon Sep 17 00:00:00 2001 From: thindil Date: Tue, 31 Dec 2024 04:54:13 +0000 Subject: [PATCH] feat: sort the list of unmanaged files FossilOrigin-Name: 2c84f8257ee4606bdba3c093baa0d2e27012df0997538c12193da8b04353d2f0 --- src/beastcleaner.nim | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/beastcleaner.nim b/src/beastcleaner.nim index 4903bc0..d8e3bc6 100644 --- a/src/beastcleaner.nim +++ b/src/beastcleaner.nim @@ -25,7 +25,7 @@ ## The main module of the program. -import std/[os, osproc, parseopt, sets, strutils, terminal] +import std/[algorithm, os, osproc, parseopt, sets, strutils, terminal] import contracts proc showCommandLineHelp() {.sideEffect, raises: [], tags: [WriteIOEffect], @@ -140,7 +140,8 @@ proc main() {.raises: [], tags: [ReadIOEffect, WriteIOEffect, ExecIOEffect, quit "Can't show message." var installedFiles: HashSet[string] = initHashSet[string]() try: - for entry in walkDirRec(dir = "/usr/local", yieldFilter = {pcFile, pcLinkToFile}): + for entry in walkDirRec(dir = "/usr/local", yieldFilter = {pcFile, + pcLinkToFile}): installedFiles.incl(key = entry) except OSError: quit "Can't create the list of all local files." @@ -157,7 +158,11 @@ proc main() {.raises: [], tags: [ReadIOEffect, WriteIOEffect, ExecIOEffect, except IOError: quit "Can't create the output file." installedFiles = installedFiles - managedFiles + var diffFiles: seq[string] = @[] for file in installedFiles: + diffFiles.add(y = file) + diffFiles.sort(cmp = system.cmp) + for file in diffFiles: try: diffFile.writeLine(x = file) except IOError: