From 885f250f1bc39afda5854f2c37231b56f83b4d72 Mon Sep 17 00:00:00 2001 From: Andreas Rumpf Date: Fri, 18 Nov 2016 15:28:14 +0100 Subject: 'koch temp --option' passes options to the compiler compilation itself --- koch.nim | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'koch.nim') diff --git a/koch.nim b/koch.nim index d8004b3e6..586565fc7 100644 --- a/koch.nim +++ b/koch.nim @@ -391,13 +391,28 @@ proc tests(args: string) = quit("tests failed", QuitFailure) proc temp(args: string) = + proc splitArgs(a: string): (string, string) = + # every --options before the command (indicated by starting + # with not a dash) is part of the bootArgs, the rest is part + # of the programArgs: + let args = os.parseCmdLine a + result = ("", "") + var i = 0 + while i < args.len and args[i][0] == '-': + result[0].add " " & quoteShell(args[i]) + inc i + while i < args.len: + result[1].add " " & quoteShell(args[i]) + inc i + var output = "compiler" / "nim".exe var finalDest = "bin" / "nim_temp".exe # 125 is the magic number to tell git bisect to skip the current # commit. - exec("nim c compiler" / "nim", 125) + let (bootArgs, programArgs) = splitArgs(args) + exec("nim c " & bootArgs & " compiler" / "nim", 125) copyExe(output, finalDest) - if args.len > 0: exec(finalDest & " " & args) + if programArgs.len > 0: exec(finalDest & " " & programArgs) proc copyDir(src, dest: string) = for kind, path in walkDir(src, relative=true): -- cgit 1.4.1-2-gfad0