packages feed

hkgr 0.4.5 → 0.4.6

raw patch · 5 files changed

+29/−17 lines, 5 files

Files

CHANGELOG.md view
@@ -1,4 +1,10 @@ # Changelog++## 0.4.6 (2024-06-20)+- 'new': add --license option+- 'new': bump stack.yaml resolver to lts-21+- add missing SUMMARY placeholder to template+ ## 0.4.5 (2024-05-23) - 'tagdist', 'upload': also do pristine cabal build unless --no-build 
README.md view
@@ -72,7 +72,7 @@ `$ hkgr --version`  ```-0.4.5+0.4.6 ``` `$ hkgr --help` 
data/template.cabal.tmpl view
@@ -1,10 +1,10 @@ cabal-version:       2.2 name:                @PROJECT@ version:             0.1.0-synopsis:            One line summary+synopsis:            @SUMMARY@ description:         Short paragraph here-license:             BSD-3-Clause+license:             @LICENSE@ license-file:        LICENSE author:              @NAME@ <@EMAIL@> maintainer:          @NAME@ <@EMAIL@>
hkgr.cabal view
@@ -1,6 +1,6 @@ cabal-version:       2.0 name:                hkgr-version:             0.4.5+version:             0.4.6 synopsis:            Simple Hackage release workflow for package maintainers description:             Hkgr (Hackager) is a tool to help make new releases of
src/Main.hs view
@@ -33,7 +33,8 @@     subcommands     [ Subcommand "new" "setup a new project" $       newCmd-      <$> optional (strArg "PROJECT")+      <$> optional (strOptionWith 'l' "license" "LICENSE" "Specify license")+      <*> optional (strArg "PROJECT")     , Subcommand "tagdist" "'git tag' version and 'cabal sdist' tarball" $       tagDistCmd       <$> existingTag@@ -327,9 +328,8 @@  -- FIXME warning if upstream template changed (keep a versioned template copy) -- FIXME add default templates dir--- FIXME --license-newCmd :: Maybe String -> IO ()-newCmd mproject = do+newCmd :: Maybe String -> Maybe String -> IO ()+newCmd mlicense mproject = do   needProgram "cabal"   name <- case mproject of     Just ns -> return ns@@ -352,12 +352,16 @@       let setupFile = "Setup.hs"       origsetup <- doesFileExist setupFile       cabalversion <- readVersion <$> cmd "cabal" ["--numeric-version"]-      let license = if cabalversion > makeVersion [3,4]-                    then "BSD-3-Clause"-                    else "BSD3"-        in cabal_ "init" ["--quiet", "--no-comments", "--non-interactive", "--is-libandexe", "--cabal-version=1.18", "--license=" ++ license, "--package-name=" ++ name, "--version=0.1.0", "--dependency=base<5", "--source-dir=src"]+      let license =+            case mlicense of+              Just l -> l+              Nothing ->+                if cabalversion > makeVersion [3,4]+                then "BSD-3-Clause"+                else "BSD3"+      cabal_ "init" ["--quiet", "--no-comments", "--non-interactive", "--is-libandexe", "--cabal-version=1.18", "--license=" ++ license, "--package-name=" ++ name, "--version=0.1.0", "--dependency=base<5", "--source-dir=src"]       whenJustM (cmdMaybe $ P.proc "find" ["-name", "Main.hs"]) $ \ file -> do-        sed ["1s/^module Main where/-- SPDX-License-Identifier: BSD-3-Clause\\n\\nmodule Main (main) where/"] file+        sed ["1s/^module Main where/-- SPDX-License-Identifier:" +-+ license ++ "\\n\\nmodule Main (main) where/"] file         unless (file == "src/Main.hs") $ renameFile file "src/Main.hs"       whenM (doesFileExist "CHANGELOG.md") $         renameFile "CHANGELOG.md" "ChangeLog.md"@@ -366,7 +370,7 @@       unless origsetup $ do         setup <- doesFileExist setupFile         when setup $ removeFile setupFile-      setupCabalTemplate name+      setupCabalTemplate name license     Just cblName ->       when (cblName /= name) $       putStrLn $ "Warning:" +-+ cblName +-+ "different to" +-+ name@@ -374,7 +378,8 @@   mstack <- findExecutable "stack"   -- FIXME add stack.yaml template too   when (not haveStackCfg && isJust mstack) $ do-    cmd_ "stack" ["init", "--verbosity", "warn", "--resolver", "lts-19"]+    -- FIXME determine last lts automatically+    cmd_ "stack" ["init", "--verbosity", "warn", "--resolver", "lts-21"]     sed ["/^#/d", "/^$/d"] "stack.yaml"   haveGit <- doesDirectoryExist ".git"   unless haveGit $ do@@ -389,8 +394,8 @@         [cbl] -> return $ Just (takeBaseName cbl)         _ -> error' "More than one .cabal file found!" -    setupCabalTemplate :: String -> IO ()-    setupCabalTemplate name = do+    setupCabalTemplate :: String -> String -> IO ()+    setupCabalTemplate name license = do       userTemplate <- getUserConfigFile "hkgr" "template.cabal"       unlessM (doesFileExist userTemplate) $ do         origTemplate <- getDataFileName "template.cabal.tmpl"@@ -410,6 +415,7 @@       replaceHolder "PROJECT" name $ name <.> "cabal"       replaceHolder "PROJECT_" (map underscore name) $ name <.> "cabal"       replaceHolder "SUMMARY" (name +-+ "project") $ name <.> "cabal"+      replaceHolder "LICENSE" license $ name <.> "cabal"       year <- cmdOut (P.proc "date" ["+%Y"])       replaceHolder "YEAR" year $ name <.> "cabal"       let modulePath = "src/MyLib.hs"