Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

fix #45 set command quoted #53

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from
Draft

Conversation

Timsonrobl
Copy link

In set command parameter value read from %~p* parameter extension needed to be quoted to avoid special characters (like &)from path breaking command.
Current implementation:

SET dp0=%~dp0

evaluates to

SET dp0=D:\CODE\dir-name-with & amp\vite-project\node_modules\.bin\

passing all characters after & as shell command (and failing):

"amp\vite-project\node_modules\.bin\" is not recognized as an internal or external command,
operable program or batch file.

Quoting set command parameters seems to fix this issue completely.

References

Fixes #45
Closes #45

in set command parameter value read from %~p* parameter extension needed to be quoted to avoid special characters from path breaking command
@Timsonrobl Timsonrobl marked this pull request as draft March 28, 2021 03:11
@Timsonrobl
Copy link
Author

It seems snapshots need to be regenerated

@Timsonrobl
Copy link
Author

It seems tests still fail:

 PASS  test/to-batch-syntax-tests.js 12 OK 19.984ms
 FAIL  test/basic.js
 ✖ expect rejected Promise

  test/basic.js
                        .resolve(fixtures, 'from.env')
                    th.resolve(fixtures, 'from.env/a/b/c')
  53 |   return t.rejects(cmdShim(from, to), { code: /^(ENOTDIR|EEXIST)$/ })
     | -----------^


                                    t => {

  --- expected
  +++ actual
  @@ -1,3 +1,3 @@
   Error: ENOENT: no such file or directory, open 'D:\CODE\cmd-shim\test\fixtures\from.env\a\b\c.ps1' {
  -  "code": /^(ENOTDIR|EEXIST)$/,
  +  "code": "ENOENT",
   }

 FAIL  test/basic.js 1 failed of 30 154.481ms
 ✖ expect rejected Promise

  🌈 SUMMARY RESULTS 🌈

 FAIL  test/basic.js 1 failed of 30 154.481ms
 ✖ expect rejected Promise

Suites:   1 failed, 1 passed, 2 of 2 completed
Asserts:  1 failed, 41 passed, of 42
Time:     3s
---------------------|----------|----------|----------|----------|-------------------|
File                 |  % Stmts | % Branch |  % Funcs |  % Lines | Uncovered Line #s |
---------------------|----------|----------|----------|----------|-------------------|
All files            |      100 |      100 |      100 |      100 |                   |
 cmd-shim            |      100 |      100 |      100 |      100 |                   |
  index.js           |      100 |      100 |      100 |      100 |                   |
 cmd-shim/lib        |      100 |      100 |      100 |      100 |                   |
  to-batch-syntax.js |      100 |      100 |      100 |      100 |                   |
---------------------|----------|----------|----------|----------|-------------------|

Any ideas why?

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[BUG] *.CMD shims don't work when they are in paths containing shell metachars
1 participant