cabal-sign 0.2.0.0 → 0.3.1.0
raw patch · 3 files changed
+8/−5 lines, 3 filesbinary-added
Files
- cabal-sign.cabal +1/−1
- cabal-sign.sig binary
- src/Main.hs +7/−4
cabal-sign.cabal view
@@ -1,5 +1,5 @@ name: cabal-sign-version: 0.2.0.0+version: 0.3.1.0 synopsis: Sign and verify Cabal packages. description: Sign and verify Cabal packages. license: BSD3
+ cabal-sign.sig view
binary file changed (absent → 287 bytes)
src/Main.hs view
@@ -8,6 +8,7 @@ import qualified Codec.Compression.GZip as Gzip import Data.ByteString.Lazy (ByteString) import qualified Data.ByteString.Lazy as L+import qualified Data.ByteString as S import qualified Codec.Digest.SHA as Sha2 import Data.List import Data.Serialize@@ -31,7 +32,7 @@ exists <- doesFileExist fp if not exists then error $ fp ++ " doesn't exist"- else do gzip <- L.readFile fp+ else do gzip <- fmap (L.fromChunks . return) (S.readFile fp) entries <- getGzipEntries gzip L.writeFile sum (checksum entries) rawSystem "gpg" ["--detach-sign",sum]@@ -47,11 +48,13 @@ Left err -> error err Right spath -> do let sigEntry = Tar.fileEntry spath signature- L.writeFile (translate ".signed.tar.gz" gz)- (Gzip.compress (Tar.write (sigEntry : entries)))+ L.writeFile gz (Gzip.compress (Tar.write (sigEntry : entries))) removeFile sig -makeSigName = translate ".sig" . takeFileName+projectName = dropWhile (=='-') . translate "" . takeFileName++makeSigName gz = projectName gz </> filename gz where+ filename = translate ".sig" . reverse . drop 1 . dropWhile (/='-') . reverse . takeFileName translate ext = (++ ext) . dropSigned . dropExtension . dropExtension where dropSigned x | isSuffixOf ".signed" x = dropExtension x