module Config.FreeBSD.Package(
getOutdatedPackagesNG,
getOutdatedPackagesPkg,
getOutdatedPackagesSmart
) where
import System.Process
import Config.FreeBSD.PortTools
pkgToNames :: String -> [String]
pkgToNames = scrape . lines
scrape :: [String] -> [String]
scrape [] = []
scrape (x:xs) = (scrapeOne x):(scrape xs)
where scrapeOne = reverse . tail . dropWhile ((/=) '-') . reverse
getOutdatedPackagesPkg :: IO ([String])
getOutdatedPackagesPkg = readProcess "pkg_version" ["-l", "<"] ""
>>= return . pkgToNames
getOutdatedPackagesNG :: IO ([String])
getOutdatedPackagesNG = readProcess "pkg" ["version", "-l", "<"] ""
>>= return . pkgToNames
getOutdatedPackagesSmart :: IO ([String])
getOutdatedPackagesSmart = isPkgNgPresent
>>= \a -> if a then getOutdatedPackagesNG else getOutdatedPackagesPkg