packages feed

PastePipe 1.1 → 1.2

raw patch · 2 files changed

+17/−10 lines, 2 files

Files

PastePipe.cabal view
@@ -1,7 +1,7 @@ -- cabal configure --prefix=$HOME --user -- cabal build name:                PastePipe-version:             1.1+version:             1.2 synopsis:            CLI for pasting to hpaste.org description:         PastePipe reads from standard in and posts to hpaste.org.                      It will auto-detect your username, but that can be 
pastepipe.hs view
@@ -45,9 +45,10 @@ buildURI coreUri str = fromJust $ parseURI $ coreUri ++ str  -- | Posts the given content to hpaste.org, returning the new uri.-post :: URI -> String -> String -> String -> String -> IO URI-post posturi usr lang title str = do +post :: (String -> IO ()) -> URI -> String -> String -> String -> String -> IO URI+post outHandler posturi usr lang title str = do    (uri, _) <- Network.Browser.browse $ do+                  setOutHandler outHandler                   setAllowRedirects True -- handle HTTP redirects                   request $ buildRequest posturi usr lang title str   return uri@@ -61,8 +62,8 @@                              , ("language", lang)                              , ("channel", "")] -fakePost ::  URI -> String -> String -> String -> String -> IO URI-fakePost uri usr lang title str = do +fakePost ::  (String -> IO ()) -> URI -> String -> String -> String -> String -> IO URI+fakePost _ uri usr lang title str = do    putStrLn $ "uri: "++show uri   putStrLn $ "user: "++usr   putStrLn $ "lang: "++lang@@ -83,7 +84,8 @@              title = getTitle args              coreUri = getCoreUri args              postFn = getPostFn args-         uri <- postFn (saveUri coreUri) usr lang title content+             outHandler = getOutHandler args+         uri <- postFn outHandler (saveUri coreUri) usr lang title content          putStrLn $ show uri  -- | Determines the language from the list of arguments.@@ -96,11 +98,15 @@ getCoreUri :: [String] -> String getCoreUri = getArgVal "--uri" defaultUri -getPostFn :: [String] -> URI -> String -> String -> String -> String -> IO URI-getPostFn args = case (getArgVal "--test" "testFn" args) of-                   "testFn"  -> fakePost-                   _         -> post+getPostFn :: [String] -> (String -> IO ()) -> URI -> String -> String -> String -> String -> IO URI+getPostFn args = case (elem "--test" args) of+                   True  -> fakePost+                   False -> post +getOutHandler :: [String] -> (String -> IO ())+getOutHandler args = case (elem "--verbose" args) of +                       True  -> putStr+                       False -> const (return ()) --squelch output.                   -- | Prints the usage information. printHelp :: IO ()@@ -114,6 +120,7 @@     putStrLn " -l <language>       Defaults to haskell"     putStrLn $ " --uri <hpaste_uri>  Defaults to "++ defaultUri     putStrLn " --test              Fake the post--does not send anything to the server (used for testing)"+    putStrLn " --verbose           Print the web chatter from Network.Browse"   -- | given a flag and a default value, returns the first