diff --git a/Dockerfile b/Dockerfile index 6ca370e..671b9ea 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # Build-only image -FROM ubuntu:18.04 AS build +FROM ubuntu:19.10 AS build USER root WORKDIR /opt/shellCheck @@ -12,7 +12,7 @@ COPY ShellCheck.cabal ./ RUN cabal update && cabal install --dependencies-only --ghc-options="-optlo-Os -split-sections" # Copy source and build it -COPY LICENSE Setup.hs shellcheck.hs ./ +COPY LICENSE shellcheck.hs ./ COPY src src RUN cabal build Paths_ShellCheck && \ ghc -optl-static -optl-pthread -isrc -idist/build/autogen --make shellcheck -split-sections -optc-Wl,--gc-sections -optlo-Os && \ diff --git a/Setup.hs b/Setup.hs deleted file mode 100644 index a909cf6..0000000 --- a/Setup.hs +++ /dev/null @@ -1,36 +0,0 @@ -import Distribution.PackageDescription ( - HookedBuildInfo, - emptyHookedBuildInfo ) -import Distribution.Simple ( - Args, - UserHooks ( preSDist ), - defaultMainWithHooks, - simpleUserHooks ) -import Distribution.Simple.Setup ( SDistFlags ) - -import System.Process ( system ) - - -main = defaultMainWithHooks myHooks - where - myHooks = simpleUserHooks { preSDist = myPreSDist } - --- | This hook will be executed before e.g. @cabal sdist@. It runs --- pandoc to create the man page from shellcheck.1.md. If the pandoc --- command is not found, this will fail with an error message: --- --- /bin/sh: pandoc: command not found --- --- Since the man page is listed in the Extra-Source-Files section of --- our cabal file, a failure here should result in a failure to --- create the distribution tarball (that's a good thing). --- -myPreSDist :: Args -> SDistFlags -> IO HookedBuildInfo -myPreSDist _ _ = do - putStrLn "Building the man page (shellcheck.1) with pandoc..." - putStrLn pandoc_cmd - result <- system pandoc_cmd - putStrLn $ "pandoc exited with " ++ show result - return emptyHookedBuildInfo - where - pandoc_cmd = "pandoc -s -f markdown-smart -t man shellcheck.1.md -o shellcheck.1" diff --git a/ShellCheck.cabal b/ShellCheck.cabal index 372bde4..0389be6 100644 --- a/ShellCheck.cabal +++ b/ShellCheck.cabal @@ -7,7 +7,7 @@ Category: Static Analysis Author: Vidar Holen Maintainer: vidar@vidarholen.net Homepage: https://www.shellcheck.net/ -Build-Type: Custom +Build-Type: Simple Cabal-Version: >= 1.8 Bug-reports: https://github.com/koalaman/shellcheck/issues Description: @@ -26,19 +26,13 @@ Extra-Source-Files: -- documentation README.md shellcheck.1.md - -- built with a cabal sdist hook - shellcheck.1 + -- A script to build the man page using pandoc + manpage -- convenience script for stripping tests striptests -- tests test/shellcheck.hs -custom-setup - setup-depends: - base >= 4 && <5, - process >= 1.0 && <1.7, - Cabal >= 1.10 && <2.5 - source-repository head type: git location: git://github.com/koalaman/shellcheck.git diff --git a/manpage b/manpage new file mode 100755 index 0000000..27967f5 --- /dev/null +++ b/manpage @@ -0,0 +1,4 @@ +#!/bin/sh +echo >&2 "Generating man page using pandoc" +pandoc -s -f markdown-smart -t man shellcheck.1.md -o shellcheck.1 || exit +echo >&2 "Done. You can read it with: man ./shellcheck.1"