diff --git a/source/dub/commandline.d b/source/dub/commandline.d index 7acf6d5..ccb2c7b 100644 --- a/source/dub/commandline.d +++ b/source/dub/commandline.d @@ -148,7 +148,9 @@ if (args.length >= 1 && !args[0].startsWith("-")) { if (args[0].endsWith(".d")) { cmdname = "run"; - args = "--single" ~ args; + if (app_args.length) app_args = args[1 .. $] ~ "--" ~ app_args; + else app_args = args[1 .. $]; + args = ["--single", args[0]]; } else { cmdname = args[0]; args = args[1 .. $]; diff --git a/test/issue103-single-file-package.d b/test/issue103-single-file-package.d index 97e6179..b8c8494 100755 --- a/test/issue103-single-file-package.d +++ b/test/issue103-single-file-package.d @@ -4,8 +4,9 @@ +/ module hello; -void main() +void main(string[] args) { import std.stdio : writeln; + assert(args.length == 4 && args[1 .. 4] == ["foo", "--", "bar"]); writeln("Hello, World!"); } diff --git a/test/issue103-single-file-package.sh b/test/issue103-single-file-package.sh index f91fa2e..3b223d3 100755 --- a/test/issue103-single-file-package.sh +++ b/test/issue103-single-file-package.sh @@ -1,6 +1,6 @@ #!/bin/sh set -e cd ${CURR_DIR} -./issue103-single-file-package.d +./issue103-single-file-package.d foo -- bar ${DUB} run --single issue103-single-file-package-json.d --compiler=${DC} ${DUB} issue103-single-file-package-w-dep.d --compiler=${DC}