packages feed

hayoo-cli 0.1.0.1 → 0.1.0.2

raw patch · 3 files changed

+85/−2 lines, 3 files

Files

+ CliOptions.hs view
@@ -0,0 +1,29 @@+{-# LANGUAGE OverloadedStrings #-}++module CliOptions+( parseArguments+, Opts(..)+)+where++import Options.Applicative++data Opts = Opts+    { showInfo :: Bool+    , query    :: String }+    deriving Show++parser :: Parser Opts+parser = Opts+    <$> switch+        ( long "info"+       <> short 'i'+       <> help "Show description")+    <*> argument str (metavar "QUERY")++parseArguments :: String -> (Opts -> IO ()) -> IO ()+parseArguments ver = (execParser opts >>=)+    where opts = info (helper <*> parser)+            ( fullDesc+           <> progDesc "Search for query using hayoo."+           <> header   ("hayoo - " ++ ver))
+ HayooTypes.hs view
@@ -0,0 +1,53 @@+{-# LANGUAGE OverloadedStrings #-}++module HayooTypes+( HayooResult(..)+, HayooResponse(..)+)+where++import Control.Applicative ((<$>), (<*>))+import Control.Monad (mzero)+import Data.Aeson++data HayooResult = HayooResult { resultUri         :: String+                               , tag               :: String+                               , resultPackage     :: String+                               , resultName        :: String+                               , resultSource      :: String+                               , resultDescription :: String+                               , resultSignature   :: String+                               , resultModules     :: [String]+                               , resultScore       :: Float+                               , resultType        :: String+                               } deriving (Show)++data HayooResponse = HayooResponse { max    :: Int+                                   , offset :: Int+                                   , count  :: Int+                                   , result :: [HayooResult]+                                   } deriving (Show)++instance FromJSON HayooResult where+    parseJSON (Object v) = HayooResult+                           <$> v .:  "resultUri"+                           <*> v .:  "tag"+                           <*> v .:? "resultPackage"     .!= ""+                           <*> v .:  "resultName"+                           <*> v .:? "resultSource"      .!= ""+                           <*> v .:? "resultDescription" .!= ""+                           <*> v .:? "resultSignature"   .!= ""+                           <*> v .:? "resultModules"     .!= []+                           <*> v .:  "resultScore"+                           <*> v .:  "resultType"++    parseJSON _          = mzero++instance FromJSON HayooResponse where+    parseJSON (Object v) = HayooResponse+                           <$> v .: "max"+                           <*> v .: "offset"+                           <*> v .: "count"+                           <*> v .: "result"++    parseJSON _          = mzero
hayoo-cli.cabal view
@@ -2,7 +2,7 @@ --  see http://haskell.org/cabal/users-guide/  name:                hayoo-cli-version:             0.1.0.1+version:             0.1.0.2 synopsis:            Hayoo CLI description:         Simple console client for hayoo. homepage:            https://github.com/Gonzih/hayoo-cli@@ -13,7 +13,8 @@ -- copyright: category:            Development build-type:          Simple--- extra-source-files:+extra-source-files:  HayooTypes.hs+                   , CliOptions.hs cabal-version:       >=1.10  executable hayoo