@@ -16,6 +16,7 @@ module Stack.Script
1616import Data.ByteString.Builder ( toLazyByteString )
1717import qualified Data.ByteString.Char8 as S8
1818import qualified Data.Conduit.List as CL
19+ import qualified Data.List.NonEmpty as NE
1920import Data.List.Split ( splitWhen )
2021import qualified Data.Map.Strict as Map
2122import qualified Data.Set as Set
@@ -127,10 +128,9 @@ data ScriptOpts = ScriptOpts
127128 , compile :: ! ScriptExecute
128129 , useRoot :: ! Bool
129130 , ghcOptions :: ! [String ]
130- , scriptExtraDeps :: ! [PackageIdentifierRevision ]
131+ , scriptExtraDeps :: ! [Unresolved ( NonEmpty RawPackageLocationImmutable ) ]
131132 , shouldRun :: ! ShouldRun
132133 }
133- deriving Show
134134
135135-- | Run a Stack Script
136136scriptCmd :: ScriptOpts -> RIO Runner ()
@@ -149,16 +149,20 @@ scriptCmd opts = do
149149
150150 file <- resolveFile' opts. file
151151 let scriptFile = filename file
152+ scriptRoot = parent file
152153
153154 isNoRunCompile <- fromFirstFalse . (. noRunCompile) <$>
154155 view (globalOptsL . to (. configMonoid))
155156
157+ resolvedExtraDeps <-
158+ mapM (resolvePaths (Just scriptRoot)) opts. scriptExtraDeps
156159 let scriptDir = parent file
160+ extraDeps = concatMap NE. toList resolvedExtraDeps
157161 modifyGO go = go
158162 { configMonoid = go. configMonoid
159163 { ConfigMonoid. installGHC = FirstTrue $ Just True
160164 }
161- , stackYaml = SYLNoProject opts . scriptExtraDeps
165+ , stackYaml = SYLNoProject extraDeps
162166 }
163167 (shouldRun, shouldCompile) = if isNoRunCompile
164168 then (NoRun , SECompile )
0 commit comments