Skip to content

Commit

Permalink
Interpreter: Provide a way to hide implicit packages
Browse files Browse the repository at this point in the history
Always pass all the explicitly specified packages in the script to ghc command
line. Also allow ghc options to be specified from the interpreter command. This
will give user the flixibility to, for example, use '-hide-all-packages' ghc
option. Like this:

{- stack runghc
    --package base
    --package exceptions
    --package transformers
    --package containers
    --package getopt-generics
    --package filepath
    --package path
    --package path-io
    --package process
    --package unix-compat
    --
    -hide-all-packages
-}

fixes #1208
  • Loading branch information
harendra-kumar committed Aug 12, 2016
1 parent 90103f6 commit f019cf6
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions src/main/Main.hs
Expand Up @@ -542,7 +542,8 @@ interpreterHandler args f = do
progName <- getProgName
iargs <- getInterpreterArgs path
let parseCmdLine = commandLineHandler progName True
let cmdArgs = stackArgs ++ iargs ++ "--" : path : fileArgs
separator = if "--" `elem` iargs then [] else ["--"]
cmdArgs = stackArgs ++ iargs ++ separator ++ path : fileArgs
-- TODO show the command in verbose mode
-- hPutStrLn stderr $ unwords $
-- ["Running", "[" ++ progName, unwords cmdArgs ++ "]"]
Expand Down Expand Up @@ -742,7 +743,9 @@ execCmd ExecOpts {..} go@GlobalOpts{..} =
(ExecGhc, args) -> execCompiler "" args
-- NOTE: this won't currently work for GHCJS, because it doesn't have
-- a runghcjs binary. It probably will someday, though.
(ExecRunGhc, args) -> execCompiler "" ("-e" : "Main.main" : args)
(ExecRunGhc, args) ->
let opts = concatMap (\x -> ["-package", x]) eoPackages
in execCompiler "" (opts ++ ("-e" : "Main.main" : args))
let targets = concatMap words eoPackages
unless (null targets) $
Stack.Build.build (const $ return ()) lk defaultBuildOptsCLI
Expand Down

0 comments on commit f019cf6

Please sign in to comment.