Allow use if stack.yaml file is found
This commit is contained in:
parent
ec640bb8ff
commit
f545a4c170
15
Main.hs
15
Main.hs
@ -37,6 +37,9 @@ import System.Console.CmdArgs
|
|||||||
import qualified Data.Map.Strict as Map
|
import qualified Data.Map.Strict as Map
|
||||||
import qualified Data.Set as Set
|
import qualified Data.Set as Set
|
||||||
|
|
||||||
|
-- directory
|
||||||
|
import System.Directory (doesFileExist)
|
||||||
|
|
||||||
|
|
||||||
-- |
|
-- |
|
||||||
--
|
--
|
||||||
@ -75,8 +78,14 @@ main = do
|
|||||||
|
|
||||||
pid <-
|
pid <-
|
||||||
case maybePackage of
|
case maybePackage of
|
||||||
Nothing ->
|
Nothing -> do
|
||||||
Exit.die "Error: No Cabal file found."
|
stack <- doesFileExist "stack.yaml"
|
||||||
|
if stack
|
||||||
|
then do
|
||||||
|
putStrLn "Found stack.yaml..."
|
||||||
|
return Nothing
|
||||||
|
else
|
||||||
|
Exit.die "Error: No Cabal file found."
|
||||||
|
|
||||||
Just PackageDescription{..} -> do
|
Just PackageDescription{..} -> do
|
||||||
putStrLn $
|
putStrLn $
|
||||||
@ -86,7 +95,7 @@ main = do
|
|||||||
<> "License: "
|
<> "License: "
|
||||||
<> display license
|
<> display license
|
||||||
<> ")"
|
<> ")"
|
||||||
return package
|
return (Just package)
|
||||||
|
|
||||||
maybeDependencies <- getDependencies
|
maybeDependencies <- getDependencies
|
||||||
|
|
||||||
|
|||||||
@ -55,6 +55,7 @@ executable licensor
|
|||||||
, Cabal >= 1.22 && < 1.25
|
, Cabal >= 1.22 && < 1.25
|
||||||
, cmdargs >= 0.10 && < 0.11
|
, cmdargs >= 0.10 && < 0.11
|
||||||
, containers
|
, containers
|
||||||
|
, directory
|
||||||
, licensor
|
, licensor
|
||||||
default-language:
|
default-language:
|
||||||
Haskell2010
|
Haskell2010
|
||||||
|
|||||||
@ -114,9 +114,16 @@ getPackageDescription =
|
|||||||
--
|
--
|
||||||
|
|
||||||
getDependencies :: IO (Maybe (Set PackageIdentifier))
|
getDependencies :: IO (Maybe (Set PackageIdentifier))
|
||||||
getDependencies =
|
getDependencies = do
|
||||||
fmap Set.fromList . sequence . fmap simpleParse . lines
|
eitherDeps <-
|
||||||
<$> readProcess "stack" ["list-dependencies", "--separator", "-"] ""
|
Exception.try $ readProcess "stack" ["list-dependencies", "--separator", "-"] ""
|
||||||
|
|
||||||
|
case eitherDeps of
|
||||||
|
Left (_ :: IOError) ->
|
||||||
|
return Nothing
|
||||||
|
|
||||||
|
Right deps ->
|
||||||
|
return $ fmap Set.fromList $ sequence $ fmap simpleParse (lines deps)
|
||||||
|
|
||||||
|
|
||||||
-- |
|
-- |
|
||||||
@ -160,17 +167,20 @@ getPackageLicense p@PackageIdentifier{..} = do
|
|||||||
--
|
--
|
||||||
|
|
||||||
orderPackagesByLicense
|
orderPackagesByLicense
|
||||||
:: PackageIdentifier
|
:: Maybe PackageIdentifier
|
||||||
-> Set PackageIdentifier
|
-> Set PackageIdentifier
|
||||||
-> IO (Map LiLicense (Set PackageIdentifier), Set PackageIdentifier)
|
-> IO (Map LiLicense (Set PackageIdentifier), Set PackageIdentifier)
|
||||||
orderPackagesByLicense p =
|
orderPackagesByLicense maybeP =
|
||||||
let
|
let
|
||||||
|
cond =
|
||||||
|
maybe (const False) (==) maybeP
|
||||||
|
|
||||||
insertPackage package orderedPackages' = do
|
insertPackage package orderedPackages' = do
|
||||||
maybeLicense <- getPackageLicense package
|
maybeLicense <- getPackageLicense package
|
||||||
|
|
||||||
(orderedPackages, failed) <- orderedPackages'
|
(orderedPackages, failed) <- orderedPackages'
|
||||||
return $
|
return $
|
||||||
if p == package
|
if cond package
|
||||||
then
|
then
|
||||||
(orderedPackages, failed)
|
(orderedPackages, failed)
|
||||||
else
|
else
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user