[prev in list] [next in list] [prev in thread] [next in thread] 

List:       darcs-devel
Subject:    [darcs-devel] [patch2209] release/gen-version-info.hs: fix missing... (and 1 more)
From:       Ben Franksen <bugs () darcs ! net>
Date:       2021-07-13 9:55:59
Message-ID: 1M4bd0-1m2hAx21XK-001kwF () mrelayeu ! kundenserver ! de
[Download RAW message or body]

New submission from Ben Franksen <ben.franksen@online.de>:

2 patches for repository http://darcs.net/screened:

patch 684134a7380f9217159428e7fb17fd56f968e7f4
Author: Ben Franksen <ben.franksen@online.de>
Date:   Wed Jul  7 13:58:39 CEST 2021
  * release/gen-version-info.hs: fix missing check for existence of _darcs

patch 8377c017dd694e4034bc87634773ebc46e14e4a8
Author: Ben Franksen <ben.franksen@online.de>
Date:   Sat Jul 10 09:34:31 CEST 2021
  * re-write of release/gen-version-info.hs

  This simplifies the logic but also replaces the test for existence of _da=
rcs
  with catching all IOExceptions. This makes it more robust in case executi=
ng
  darcs fails for some other reason.

----------
files: patch-preview.txt, release_gen_version_info_hs_-fix-missing-check-fo=
r-existence-of-_darcs.dpatch
messages: 22907
nosy: bf
status: needs-screening
title: release/gen-version-info.hs: fix missing... (and 1 more)

__________________________________
Darcs bug tracker <bugs@darcs.net>
<http://bugs.darcs.net/patch2209>
__________________________________
["patch-preview.txt" (text/x-darcs-patch)]


[release/gen-version-info.hs: fix missing check for existence of _darcs
Ben Franksen <ben.franksen@online.de>**20210707115839
 Ignore-this: 9ef1aae66c2e75f6232bedb06ece11aee9f213691f5e3d422e1c6bb38d5957b8aab411b14eaa610b
] hunk ./release/gen-version-info.hs 14
- -  out <- readProcess "darcs" ["log", "-a", "--from-tag", version, "--count"] ""
- -  case reads out of
- -    ((n, _):_) -> return $ Just ((n :: Int) - 1)
- -    _ -> return Nothing
+  inrepo <- doesDirectoryExist "_darcs"
+  if inrepo
+    then do
+      out <- readProcess "darcs" ["log", "-a", "--from-tag", version, "--count"] ""
+      case reads out of
+        ((n, _):_) -> return $ Just ((n :: Int) - 1)
+        _ -> return Nothing
+    else return Nothing

[re-write of release/gen-version-info.hs
Ben Franksen <ben.franksen@online.de>**20210710073431
 Ignore-this: 974d34cc9a9940dde3ea8a93b076edfb1e4a16ccd7cc2cd62a52be42e585c3b2204c4a6e3277cde2
 
 This simplifies the logic but also replaces the test for existence of _darcs
 with catching all IOExceptions. This makes it more robust in case executing
 darcs fails for some other reason.
] hunk ./release/gen-version-info.hs 1
- -import Control.Monad ( unless )
- -import System.Directory ( doesDirectoryExist )
hunk ./release/gen-version-info.hs 2
+import System.IO ( hPutStrLn, stderr )
+import System.IO.Error ( catchIOError )
hunk ./release/gen-version-info.hs 9
- -  let versionTag = case args of [] -> "."; arg:_ -> arg
- -  generateVersionInfo versionTag
- -
- -versionPatches :: String -> IO (Maybe Int)
- -versionPatches version = do
- -  inrepo <- doesDirectoryExist "_darcs"
- -  if inrepo
- -    then do
- -      out <- readProcess "darcs" ["log", "-a", "--from-tag", version, "--count"] ""
- -      case reads out of
- -        ((n, _):_) -> return $ Just ((n :: Int) - 1)
- -        _ -> return Nothing
- -    else return Nothing
- -
- -generateVersionInfo :: String -> IO ()
- -generateVersionInfo version = do
- -  ctx <- context
- -  writeFile "release/distributed-context" $ show ctx
- -  patches <- versionPatches version
+  let version = case args of [] -> "."; arg:_ -> arg
+  context <- darcs ["log", "-a", "--context"]
+  writeFile "release/distributed-context" $ show context
+  patches <- readInt <$> darcs ["log", "-a", "--from-tag", version, "--count"]
hunk ./release/gen-version-info.hs 15
- -context :: IO (Maybe String)
- -context = do
- -  inrepo <- doesDirectoryExist "_darcs"
- -  if inrepo
- -    then do
- -      out <- readProcess "darcs" ["log", "-a", "--context"] ""
- -      return $ Just out
- -    else return Nothing
+darcs :: [String] -> IO (Maybe String)
+darcs args =
+  (Just <$> readProcess "darcs" args "")
+  `catchIOError` \e -> do
+    hPutStrLn stderr $ "Warning: executing darcs failed: " ++ show e
+    return Nothing
+
+readInt :: Maybe String -> Maybe Int
+readInt (Just s) | (n, _):_ <- reads s = Just (n - 1)
+readInt _ = Nothing


["release_gen_version_info_hs_-fix-missing-check-for-existence-of-_darcs.dpatch" (application/x-darcs-patch)]

_______________________________________________
darcs-devel mailing list
darcs-devel@osuosl.org
https://lists.osuosl.org/mailman/listinfo/darcs-devel


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic