on master help sign in
Avoid maybe in ob profile rts-flags

This makes the default more obvious in the command line options.

commit42524b06975a66d985f489a57423ef6d8c4efdb5 authorMatthew Bauer <mjbauer95@gmail.com> dateWed 19 Feb 2020, 14:23 (7 years ago) parent0743c6d
2 files changed+8−12
lib/command/src/Obelisk/Command.hs+2−2 lib/command/src/Obelisk/Command/Run.hs+6−10
lib/command/src/Obelisk/Command.hs+2−2
@@ -89,7 +89,7 @@ data ObCommand
8989 = ObCommand_Init InitSource Bool
9090 | ObCommand_Deploy DeployCommand
9191 | ObCommand_Run
92− | ObCommand_Profile (Maybe FilePath) (Maybe String)
92+ | ObCommand_Profile (Maybe FilePath) String
9393 | ObCommand_Thunk ThunkCommand
9494 | ObCommand_Repl
9595 | ObCommand_Watch
@@ -111,7 +111,7 @@ obCommand cfg = hsubparser
111111 [ command "init" $ info (ObCommand_Init <$> initSource <*> initForce) $ progDesc "Initialize an Obelisk project"
112112 , command "deploy" $ info (ObCommand_Deploy <$> deployCommand cfg) $ progDesc "Prepare a deployment for an Obelisk project"
113113 , command "run" $ info (pure ObCommand_Run) $ progDesc "Run current project in development mode"
114− , command "profile" $ info (ObCommand_Profile <$> (optional (strOption (long "output" <> short 'o' <> help "Base output to use for profiling output. Suffixes are added to this based on the profiling type. Defaults to a timestamped path in the profile/ directory in the project's root." <> metavar "PATH"))) <*> (optional (strOption (long "rts-flags" <> help "RTS Flags to pass to the executable" <> metavar "FLAGS")))) $ progDesc "Run current project with profiling enabled"
114+ , command "profile" $ info (ObCommand_Profile <$> (optional (strOption (long "output" <> short 'o' <> help "Base output to use for profiling output. Suffixes are added to this based on the profiling type. Defaults to a timestamped path in the profile/ directory in the project's root." <> metavar "PATH"))) <*> (strOption (long "rts-flags" <> help "RTS Flags to pass to the executable." <> value "-p -hc" <> metavar "FLAGS" <> showDefault))) $ progDesc "Run current project with profiling enabled"
115115 , command "thunk" $ info (ObCommand_Thunk <$> thunkCommand) $ progDesc "Manipulate thunk directories"
116116 , command "repl" $ info (pure ObCommand_Repl) $ progDesc "Open an interactive interpreter"
117117 , command "watch" $ info (pure ObCommand_Watch) $ progDesc "Watch current project for errors and warnings"
lib/command/src/Obelisk/Command/Run.hs+6−10
@@ -78,16 +78,12 @@ preprocessorIdentifier = "__preprocessor-apply-packages"
7878profile
7979 :: MonadObelisk m
8080 => FilePath
81− -> Maybe String
81+ -> String
8282 -> m ()
83−profile profileBaseName mRtsFlags = withProjectRoot "." $ \root -> do
83+profile profileBaseName rtsFlags = withProjectRoot "." $ \root -> do
8484 putLog Debug "Using profiled build of project."
8585 liftIO $ createDirectoryIfMissing False $ takeDirectory profileBaseName
86− let -- Sane flags to enable by default, enable time profiling +
87− -- closure heap profiling.
88− defaultRtsFlags = [ "-p", "-hc" ]
89− rtsFlags = maybe defaultRtsFlags words mRtsFlags
90− nixBuildExpr = [hereLit|
86+ let nixBuildExpr = [hereLit|
9187with (import ./. {});
9288let
9389 exeSource = obelisk.nixpkgs.writeText "ob-run" ''
@@ -127,9 +123,9 @@ in obelisk.nixpkgs.runCommand "ob-run" {
127123 , T.unpack assets
128124 , profileBaseName
129125 , "+RTS"
130− , "-po" <> profileBaseName ]
131− <> rtsFlags
132− <> ["-RTS"]
126+ , "-po" <> profileBaseName
127+ ] <> words rtsFlags
128+ <> [ "-RTS" ]
133129 _ <- liftIO $ waitForProcess ph
134130 pure ()
135131