Fix #633 - pass CLI to tasks (#686)

* Fix #633 - pass CLI to tasks

* Add test case
This commit is contained in:
genotrance 2019-09-02 16:54:48 -05:00 committed by Dominik Picheta
commit e39c57482a
3 changed files with 30 additions and 1 deletions

View file

@ -40,10 +40,18 @@ proc execNimscript(nimsFile, projectDir, actionName: string, options: Options):
if not isScriptResultCopied:
nimsFileCopied.removeFile()
let
var
cmd = ("nim e --hints:off --verbosity:0 -p:" & (getTempDir() / "nimblecache").quoteShell &
" " & nimsFileCopied.quoteShell & " " & outFile.quoteShell & " " & actionName).strip()
if options.action.typ == actionCustom and actionName != "printPkgInfo":
for i in options.action.arguments:
cmd &= " " & i.quoteShell()
for key, val in options.action.flags.pairs():
cmd &= " $#$#" % [if key.len == 1: "-" else: "--", key]
if val.len != 0:
cmd &= ":" & val.quoteShell()
displayDebug("Executing " & cmd)
result.exitCode = execCmd(cmd)

View file

@ -0,0 +1,16 @@
# Package
version = "0.1.0"
author = "GT"
description = "Package for ensuring that issue #633 is resolved."
license = "MIT"
# Dependencies
requires "nim >= 0.19.6"
# to reproduce dependency 2 must be before 1
task testTask, "Test":
for i in 0 .. paramCount():
if paramStr(i) == "--testTask":
echo "Got it"

View file

@ -864,3 +864,8 @@ test "do not install single dependency multiple times (#678)":
let (output, exitCode) = execNimble("install", "-y")
check exitCode == QuitSuccess
check output.find("issue678_dependency_1@0.1.0 already exists") == -1
test "Passing command line arguments to a task (#633)":
cd "issue633":
var (output, exitCode) = execNimble("testTask --testTask")
check output.contains("Got it")