@@ -61,6 +61,8 @@ import Fmt
61
61
( fmt , (+|) , (+||) , (|+) , (||+) )
62
62
import Say
63
63
( sayErr )
64
+ import System.Environment
65
+ ( getArgs , setEnv )
64
66
import System.IO
65
67
( BufferMode (.. ), hSetBuffering , stderr , stdout )
66
68
@@ -77,6 +79,7 @@ main = do
77
79
hSetBuffering stdout NoBuffering
78
80
hSetBuffering stderr NoBuffering
79
81
installSignalHandlers
82
+ getArgs >>= overrideEnvironment
80
83
prepareNode
81
84
runBenchmarks
82
85
[ bench (" restore " <> toText network <> " seq" )
@@ -125,6 +128,17 @@ bench benchName action = do
125
128
printResult :: Text -> Double -> IO ()
126
129
printResult benchName dur = sayErr . fmt $ " " +| benchName|+ " : " +| secs dur|+ " "
127
130
131
+ -- FIXME This only exists because somehow, in buildkite, we can't pass ENV var
132
+ -- to the haskell executable? There's probably some Nix magic going on and I
133
+ -- don't have time for this.
134
+ overrideEnvironment :: [String ] -> IO ()
135
+ overrideEnvironment [ntwrk] =
136
+ setEnv " NETWORK" ntwrk
137
+ overrideEnvironment [] =
138
+ return ()
139
+ overrideEnvironment _ =
140
+ fail " benchmark expects only one argument to override the '$NETWORK' ENV var"
141
+
128
142
{- ------------------------------------------------------------------------------
129
143
Benchmarks
130
144
-------------------------------------------------------------------------------}
0 commit comments