on master help sign in
Merge pull request #374 from Javran/cmdline-args
ea7d974Jasper Van der Jeugt
src/Hakyll/Init.hs+8−2
@@ -9,7 +9,7 @@ import Control.Arrow (first)
9import Control.Monad (forM_)
9import Control.Monad (forM_)
10import Data.Char (isAlphaNum, isNumber)
10import Data.Char (isAlphaNum, isNumber)
11import Data.List (foldl')
11import Data.List (foldl')
12−import Data.List (intercalate)
12+import Data.List (intercalate, isPrefixOf)
13import Data.Version (Version (..))
13import Data.Version (Version (..))
14import System.Directory (canonicalizePath, copyFile)
14import System.Directory (canonicalizePath, copyFile)
15import System.Environment (getArgs, getProgName)
15import System.Environment (getArgs, getProgName)
@@ -31,7 +31,13 @@ main = do
31 files <- getRecursiveContents (const $ return False) srcDir
31 files <- getRecursiveContents (const $ return False) srcDir
32
32
33 case args of
33 case args of
34+ -- When the argument begins with hyphens, it's more likely that the user
35+ -- intends to attempt some arguments like ("--help", "-h", "--version", etc.)
36+ -- rather than create directory with that name.
37+ -- If dstDir begins with hyphens, the guard will prevent it from creating
38+ -- directory with that name so we can fall to the second alternative
39+ -- which prints a usage info for user.
34− [dstDir] -> do
40+ [dstDir] | not ("-" `isPrefixOf` dstDir) -> do
35 forM_ files $ \file -> do
41 forM_ files $ \file -> do
36 let dst = dstDir </> file
42 let dst = dstDir </> file
37 src = srcDir </> file
43 src = srcDir </> file