From 9c63b36d88e22e11598bf9a25bee0b979e0ab7c1 Mon Sep 17 00:00:00 2001 From: Dmitry Astapov Date: Thu, 6 Mar 2025 20:37:38 +0000 Subject: [PATCH] ;run: require -- before first command (+test for that) --- hledger/Hledger/Cli/Commands/Run.hs | 5 ++++- hledger/test/run.test | 9 +++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/hledger/Hledger/Cli/Commands/Run.hs b/hledger/Hledger/Cli/Commands/Run.hs index ef8921e56..01498787a 100644 --- a/hledger/Hledger/Cli/Commands/Run.hs +++ b/hledger/Hledger/Cli/Commands/Run.hs @@ -89,7 +89,10 @@ run defaultJournalOverride findBuiltinCommand cliopts@CliOpts{rawopts_=rawopts} allAreFiles <- and <$> mapM (doesFileExist . snd . splitReaderPrefix) args case allAreFiles of True -> runFromFiles key findBuiltinCommand args - False -> runFromArgs key findBuiltinCommand args + False -> + case args of + "--":_ -> runFromArgs key findBuiltinCommand args + _ -> error' $ "'run' expects '--' before first command, found none" -- | The actual repl command. repl :: (String -> Maybe (Mode RawOpts, CliOpts -> Journal -> IO ())) -> CliOpts -> IO () diff --git a/hledger/test/run.test b/hledger/test/run.test index dcf51b9ea..e9ba65284 100644 --- a/hledger/test/run.test +++ b/hledger/test/run.test @@ -1,5 +1,14 @@ # * run command +# ** 0. Run requires -- before first command +< +2017-01-01 groceries + assets:cash -$100 + expenses:food +$ hledger run -f- register cash +>2 /hledger: Error: 'run' expects '--' before first command, found none/ +>=1 + # ** 0. Run one command from command line < 2017-01-01 groceries