@@ -93,6 +93,7 @@ parseCommand =
9393 <> Opts. command " update" parseCmdUpdate
9494 <> Opts. command " modify" parseCmdModify
9595 <> Opts. command " drop" parseCmdDrop
96+ <> Opts. command " status" parseCmdStatus
9697 )
9798
9899parsePackageName :: Opts. Parser PackageName
@@ -561,6 +562,36 @@ cmdDrop packageName = \case
561562 li $ setSources fsj $ Sources $
562563 HMS. insert packageName packageSpec sources
563564
565+ -------------------------------------------------------------------------------
566+ -- STATUS
567+ -------------------------------------------------------------------------------
568+
569+ parseCmdStatus :: Opts. ParserInfo (NIO () )
570+ parseCmdStatus =
571+ Opts. info
572+ ( pure cmdStatus
573+ <**> Opts. helper
574+ )
575+ $ mconcat desc
576+ where
577+ desc =
578+ [ Opts. fullDesc,
579+ Opts. progDesc " Status of niv files"
580+ ]
581+
582+ cmdStatus :: NIO ()
583+ cmdStatus = do
584+ sjs <- sourcesJsonStatus
585+ tsay $ " sources.json: " <> sjs
586+ where
587+ sourcesJsonStatus = do
588+ fsj <- getFindSourcesJson
589+ liftIO (getSourcesEither fsj) >>= \ case
590+ Right (fp, _) -> pure (T. pack fp)
591+ Left SourcesDoesntExist -> pure " not found"
592+ Left SourceIsntJSON -> pure " not json"
593+ Left SpecIsntAMap -> pure " bad format, not a map"
594+
564595-------------------------------------------------------------------------------
565596-- Files and their content
566597-------------------------------------------------------------------------------
0 commit comments