summaryrefslogtreecommitdiff
path: root/src/Main.hs
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2024-11-29 21:46:59 +0100
committerEugen Wissner <belka@caraus.de>2024-11-29 21:46:59 +0100
commite1ece3914727904f3d3e2fd126c7bd78907ff851 (patch)
tree0920ad8df1836c945bed3496e7a42fead23ee246 /src/Main.hs
parent15cf346c612462dacefe73441b17b5a2524ce617 (diff)
downloadslackbuilder-e1ece3914727904f3d3e2fd126c7bd78907ff851.tar.gz
Show updatable local packages
Diffstat (limited to 'src/Main.hs')
-rw-r--r--src/Main.hs10
1 files changed, 6 insertions, 4 deletions
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