summary history branches tags files
commit:e92b13c1349bb73bd7042675e077a6783a8446fa
author:avh4
committer:avh4
date:Sun Jan 22 16:44:35 2023 -0800
parents:1580c041ea37bf71696016626eb41127355d2983
Sort output by total size
diff --git a/sizer.hs b/sizer.hs
line changes: +3/-2
index 42b8b5b..ffc6ff2
--- a/sizer.hs
+++ b/sizer.hs
@@ -7,7 +7,7 @@ import Data.Aeson (ToJSON(..), FromJSON(..), Value(..), (.:), (.=), object)
 import Data.Aeson.Types (prependFailure, typeMismatch)
 import Data.Text (Text)
 import GHC.Base (quotInt)
-import Relude (catMaybes, foldMapM, stderr)
+import Relude (catMaybes, foldMapM, sortWith)
 import System.Directory (doesDirectoryExist, listDirectory, pathIsSymbolicLink)
 import System.IO (stderr, hPutStrLn)
 import System.Posix.Files qualified as Posix
@@ -21,7 +21,8 @@ main = do
   hPutStrLn stderr "Scanning gcroots..."
   pb <- hNewProgressBar stderr ProgressBar.defStyle 10 (ProgressBar.Progress 0 (length gcrootPaths) ())
   gcroots <- catMaybes <$> mapM (collectAndLog pb) gcrootPaths
-  mapM_ printGcroot gcroots
+  let sorted = sortWith (negate . totalSize . gcrootDependencies) gcroots
+  mapM_ printGcroot sorted
   where
     collectAndLog pb root =
       collectGcroot root