From e1ece3914727904f3d3e2fd126c7bd78907ff851 Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Fri, 29 Nov 2024 21:46:59 +0100 Subject: Show updatable local packages --- src/Main.hs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/Main.hs') diff --git a/src/Main.hs b/src/Main.hs index 3ac5745..aa89fb4 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -35,7 +35,8 @@ import Data.Maybe (mapMaybe) import qualified Text.URI as URI import System.Directory (listDirectory) import qualified Data.HashMap.Strict as HashMap -import SlackBuilder.Info (readInfoFile) +import SlackBuilder.Info (PackageInfo(..), readInfoFile) +import Control.Monad (unless) autoUpdatable :: [PackageSettings] -> [PackageDescription] autoUpdatable = mapMaybe go @@ -108,9 +109,10 @@ installed = do <$> liftIO (listDirectory "/var/lib/pkgtools/packages") traverse_ findInfo $ HashMap.intersectionWith (,) database listing where - findInfo (installed'@Package.DataBaseEntry{ name }, fromRepository) = do - _ <- readInfoFile fromRepository name - liftIO $ print installed' + findInfo (installed'@Package.DataBaseEntry{ name, version }, fromRepository) = do + packageInfo <- readInfoFile fromRepository name + unless (version == getField @"version" packageInfo) $ liftIO $ putStrLn $ + show installed' <> " (available: " <> Text.unpack (getField @"version" packageInfo) <> ")" createDataBase entry@Package.DataBaseEntry{ name } = HashMap.insert name entry createEntry filename = createEntryFromChunks -- cgit v1.2.3